Annotation of coherent/a/usr/include/sys/uproc.h, revision 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.