Annotation of coherent/a/usr/include/sys/uproc.h, revision 1.1.1.1

1.1       root        1: /* (-lgl
                      2:  *     COHERENT Version 4.0
                      3:  *     Copyright (c) 1982, 1992 by Mark Williams Company.
                      4:  *     All rights reserved. May not be copied without permission.
                      5:  -lgl) */
                      6: /*
                      7:  * The user process area.
                      8:  */
                      9: 
                     10: #ifndef         UPROC_H
                     11: #define         UPROC_H        UPROC_H
                     12: 
                     13: #include <sys/param.h>
                     14: #include <sys/types.h>
                     15: #include <sys/dir.h>
                     16: #include <sys/io.h>
                     17: #include <sys/proc.h>
                     18: #include <signal.h>
                     19: 
                     20: #ifdef _I386
                     21: #include <sys/reg.h>
                     22: #else
                     23: #include <sys/machine.h>
                     24: #endif
                     25: /*
                     26:  * Open segment structure.
                     27:  */
                     28: typedef struct sr {
                     29:        int      sr_flag;               /* Flags for this reference */
                     30:        vaddr_t  sr_base;               /* Virtual address base */
                     31: #ifdef _I386
                     32:        off_t    sr_size;               /* Mapped in window size */
                     33: #else
                     34:        vaddr_t  sr_size;               /* Mapped in window size */
                     35: #endif
                     36:        struct   seg *sr_segp;          /* Segment pointer */
                     37: } SR;
                     38: 
                     39: /*
                     40:  * Flags (sr_flag).
                     41:  */
                     42: #define SRFPMAP        01                      /* Segment is mapped in process */
                     43: #define SRFDUMP        02                      /* Dump segment */
                     44: #define        SRFDATA 04                      /* Data segment */
                     45: 
                     46: /*
                     47:  * User process structure.
                     48:  *
                     49:  * Remember to update UPROC_VERSION whenever you change this struct.
                     50:  */
                     51: typedef struct uproc {
                     52: #ifdef _I386
                     53:        /* Magic number UPROC_VERSION identifies this uproc struct.  */
                     54: #define UPROC_VERSION 0x0101
                     55:        unsigned short u_version;       /* Version number for uproc struct */
                     56: #endif /* _I386 */
                     57:        char     u_error;               /* Error number (must be first) */
                     58:        char     u_flag;                /* Flags (for accounting) */
                     59:        int      u_uid;                 /* User id */
                     60:        int      u_gid;                 /* Group id */
                     61:        int      u_ruid;                /* Real user id */
                     62:        int      u_rgid;                /* Real group id */
                     63:        unsigned u_umask;               /* Mask for file creation */
                     64:        struct   inode *u_cdir;         /* Current working directory */
                     65:        struct   inode *u_rdir;         /* Current root directory */
                     66:        struct   fd *u_filep[NUFILE];   /* Open files */
                     67:        struct   sr u_segl[NUSEG];      /* User segment descriptions */
                     68: #ifdef _I386
                     69:        int      (*u_sfunc[MAXSIG])();  /* Signal functions */
                     70: #else
                     71:        int      (*u_sfunc[NSIG])();    /* Signal functions */
                     72: #endif
                     73: 
                     74:        /*
                     75:         * System working area.
                     76:         */
                     77:        struct   seg *u_sege[NUSEG];    /* Exec segment descriptors */
                     78:        MPROTO   u_sproto;              /* User prototype */
                     79:        MCON     u_syscon;              /* System context save */
                     80:        MENV     u_sigenv;              /* Signal return */
                     81:        MGEN     u_sysgen;              /* General purpose area */
                     82: #ifdef _I386
                     83:        int      u_args[MSACOUNT];
                     84: #else
                     85:        int      u_args[(MSASIZE*sizeof(char)+sizeof(int)-1)/sizeof(int)];
                     86: #endif
                     87:        struct   io u_io;               /* User area I/O template */
                     88: 
                     89:        /*
                     90:         * Set by ftoi.
                     91:         */
                     92:        ino_t    u_cdirn;               /* Child inode number */
                     93:        struct   inode *u_cdiri;        /* Child inode pointer */
                     94:        struct   inode *u_pdiri;        /* Parent inode pointer */
                     95:        struct   direct u_direct;       /* Directory name */
                     96: 
                     97:        /*
                     98:         * Accounting fields.
                     99:         */
                    100:        char     u_comm[10];            /* Command name */
                    101: #ifdef _I386
                    102:        char     u_sleep[10];           /* Reason for sleeping */
                    103: #endif
                    104:        time_t   u_btime;               /* Beginning time of process */
                    105:        int      u_memuse;              /* Average memory usage */
                    106:        long     u_block;               /* Count of disk blocks */
                    107: 
                    108:        /*
                    109:         * Profiler fields.
                    110:         */
                    111:        vaddr_t  u_ppc;                 /* Profile pc from clock */
                    112:        vaddr_t  u_pbase;               /* Profiler base */
                    113:        vaddr_t  u_pbend;               /* Profiler base end */
                    114: #ifdef _I386
                    115:        off_t    u_pofft;               /* Offset from base */
                    116:        off_t    u_pscale;              /* Scaling factor */
                    117: #else
                    118:        vaddr_t  u_pofft;               /* Offset from base */
                    119:        vaddr_t  u_pscale;              /* Scaling factor */
                    120: #endif
                    121: 
                    122:        /*
                    123:         * Miscellaneous things.
                    124:         */
                    125:        int     u_argc;                 /* Argument count (for ps) */
                    126:        unsigned u_argp;                /* Offset of argv[0] (for ps) */
                    127:        int     u_signo;                /* Signal number (for debugger) */
                    128: #ifdef _I386
                    129:        int     *u_regl;
                    130:        int     u_rval2;
                    131:        void    (*u_sigreturn)();
                    132: #endif
                    133: } UPROC;
                    134: 
                    135: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.