|
|
1.1 ! root 1: /* (-lgl ! 2: * COHERENT Version 3.0 ! 3: * Copyright (c) 1982, 1990 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/machine.h> ! 16: #include <sys/dir.h> ! 17: #include <sys/io.h> ! 18: #include <sys/proc.h> ! 19: #include <signal.h> ! 20: ! 21: /* ! 22: * Open segment structure. ! 23: */ ! 24: typedef struct sr { ! 25: int sr_flag; /* Flags for this reference */ ! 26: vaddr_t sr_base; /* Virtual address base */ ! 27: vaddr_t sr_size; /* Mapped in window size */ ! 28: struct seg *sr_segp; /* Segment pointer */ ! 29: } SR; ! 30: ! 31: /* ! 32: * Flags (sr_flag). ! 33: */ ! 34: #define SRFPMAP 01 /* Segment is mapped in process */ ! 35: #define SRFDUMP 02 /* Dump segment */ ! 36: #define SRFDATA 04 /* Data segment */ ! 37: ! 38: /* ! 39: * User process structure. ! 40: */ ! 41: typedef struct uproc { ! 42: char u_error; /* Error number (must be first) */ ! 43: char u_flag; /* Flags (for accounting) */ ! 44: int u_uid; /* User id */ ! 45: int u_gid; /* Group id */ ! 46: int u_ruid; /* Real user id */ ! 47: int u_rgid; /* Real group id */ ! 48: unsigned u_umask; /* Mask for file creation */ ! 49: struct inode *u_cdir; /* Current working directory */ ! 50: struct inode *u_rdir; /* Current root directory */ ! 51: struct fd *u_filep[NUFILE]; /* Open files */ ! 52: struct sr u_segl[NUSEG]; /* User segment descriptions */ ! 53: int (*u_sfunc[NSIG])(); /* Signal functions */ ! 54: ! 55: /* ! 56: * System working area. ! 57: */ ! 58: struct seg *u_sege[NUSEG]; /* Exec segment descriptors */ ! 59: MPROTO u_sproto; /* User prototype */ ! 60: MCON u_syscon; /* System context save */ ! 61: MENV u_sigenv; /* Signal return */ ! 62: MGEN u_sysgen; /* General purpose area */ ! 63: int u_args[(MSASIZE*sizeof(char)+sizeof(int)-1)/sizeof(int)]; ! 64: struct io u_io; /* User area I/O template */ ! 65: ! 66: /* ! 67: * Set by ftoi. ! 68: */ ! 69: ino_t u_cdirn; /* Child inode number */ ! 70: struct inode *u_cdiri; /* Child inode pointer */ ! 71: struct inode *u_pdiri; /* Parent inode pointer */ ! 72: struct direct u_direct; /* Directory name */ ! 73: ! 74: /* ! 75: * Accounting fields. ! 76: */ ! 77: char u_comm[10]; /* Command name */ ! 78: time_t u_btime; /* Beginning time of process */ ! 79: int u_memuse; /* Average memory usage */ ! 80: long u_block; /* Count of disk blocks */ ! 81: ! 82: /* ! 83: * Profiler fields. ! 84: */ ! 85: vaddr_t u_ppc; /* Profile pc from clock */ ! 86: vaddr_t u_pbase; /* Profiler base */ ! 87: vaddr_t u_pbend; /* Profiler base end */ ! 88: vaddr_t u_pofft; /* Offset from base */ ! 89: vaddr_t u_pscale; /* Scaling factor */ ! 90: ! 91: /* ! 92: * Miscellaneous things. ! 93: */ ! 94: int u_argc; /* Argument count (for ps) */ ! 95: unsigned u_argp; /* Offset of argv[0] (for ps) */ ! 96: int u_signo; /* Signal number (for debugger) */ ! 97: } UPROC; ! 98: ! 99: #ifdef KERNEL ! 100: /* ! 101: * Current user area. ! 102: */ ! 103: extern UPROC u; ! 104: ! 105: #endif ! 106: ! 107: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.