root/sys/user.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


    1 /*      $OpenBSD: user.h,v 1.6 2003/06/02 23:28:22 millert Exp $        */
    2 /*      $NetBSD: user.h,v 1.10 1996/04/09 20:55:49 cgd Exp $    */
    3 
    4 /*
    5  * Copyright (c) 1982, 1986, 1989, 1991, 1993
    6  *      The Regents of the University of California.  All rights reserved.
    7  *
    8  * Redistribution and use in source and binary forms, with or without
    9  * modification, are permitted provided that the following conditions
   10  * are met:
   11  * 1. Redistributions of source code must retain the above copyright
   12  *    notice, this list of conditions and the following disclaimer.
   13  * 2. Redistributions in binary form must reproduce the above copyright
   14  *    notice, this list of conditions and the following disclaimer in the
   15  *    documentation and/or other materials provided with the distribution.
   16  * 3. Neither the name of the University nor the names of its contributors
   17  *    may be used to endorse or promote products derived from this software
   18  *    without specific prior written permission.
   19  *
   20  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
   21  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   23  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   24  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   25  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   26  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   27  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   28  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   29  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   30  * SUCH DAMAGE.
   31  *
   32  *      @(#)user.h      8.2 (Berkeley) 9/23/93
   33  */
   34 
   35 #include <machine/pcb.h>
   36 #ifndef _KERNEL
   37 /* stuff that *used* to be included by user.h, or is now needed */
   38 #include <errno.h>
   39 #include <sys/time.h>
   40 #include <sys/resource.h>
   41 #include <sys/ucred.h>
   42 #include <sys/uio.h>
   43 #endif
   44 #include <sys/resourcevar.h>
   45 #include <uvm/uvm_extern.h>             /* XXX */
   46 #include <sys/sysctl.h>
   47 
   48 
   49 /*
   50  * Per process structure containing data that isn't needed in core
   51  * when the process isn't running (esp. when swapped out).
   52  * This structure may or may not be at the same kernel address
   53  * in all processes.
   54  */
   55 
   56 struct  user {
   57         struct  pcb u_pcb;
   58 
   59         struct  pstats u_stats;         /* p_stats points here (use it!) */
   60 
   61         /*
   62          * Remaining fields only for core dump and/or ptrace--
   63          * not valid at other times!
   64          */
   65         struct  kinfo_proc u_kproc;     /* proc + eproc */
   66         struct  md_coredump u_md;       /* machine dependent glop */
   67 };
   68 
   69 /*
   70  * Redefinitions to make the debuggers happy for now...  This subterfuge
   71  * brought to you by coredump() and trace_req().  These fields are *only*
   72  * valid at those times!
   73  */
   74 #define U_ar0   u_kproc.kp_proc.p_md.md_regs /* copy of curproc->p_md.md_regs */
   75 #define U_tsize u_kproc.kp_eproc.e_vm.vm_tsize
   76 #define U_dsize u_kproc.kp_eproc.e_vm.vm_dsize
   77 #define U_ssize u_kproc.kp_eproc.e_vm.vm_ssize
   78 
   79 #ifndef _KERNEL
   80 #define u_ar0   U_ar0
   81 #define u_tsize U_tsize
   82 #define u_dsize U_dsize
   83 #define u_ssize U_ssize
   84 #endif /* _KERNEL */

/* [<][>][^][v][top][bottom][index][help] */