0350: /* 0351: * One structure allocated per active 0352: * process. It contains all data needed 0353: * about the process while the 0354: * process may be swapped out. 0355: * Other per process data (user.h) 0356: * is swapped with the process. 0357: */ 0358: struct proc 0359: { 0360: char p_stat; 0361: char p_flag; 0362: char p_pri; /* priority, negative is high */ 0363: char p_sig; /* signal number sent to this process */ 0364: char p_uid; /* user id, used to direct tty signals */ 0365: char p_time; /* resident time for scheduling */ 0366: char p_cpu; /* cpu usage for scheduling */ 0367: char p_nice; /* nice for scheduling */ 0368: int p_ttyp; /* controlling tty */ 0369: int p_pid; /* unique process id */ 0370: int p_ppid; /* process id of parent */ 0371: int p_addr; /* address of swappable image */ 0372: int p_size; /* size of swappable image (*64 bytes) */ 0373: int p_wchan; /* event process is awaiting */ 0374: int *p_textp; /* pointer to text structure */ 0375: 0376: } proc[NPROC]; 0377: /* --------------------------- */ 0378: 0379: /* stat codes */ 0380: 0381: 0382: #define SSLEEP 1 /* sleeping on high priority */ 0383: #define SWAIT 2 /* sleeping on low priority */ 0384: #define SRUN 3 /* running */ 0385: #define SIDL 4 /* intermediate state in process creation */ 0386: #define SZOMB 5 /* intermediate state in process termination */ 0387: #define SSTOP 6 /* process being traced */ 0388: 0389: /* flag codes */ 0390: 0391: #define SLOAD 01 /* in core */ 0392: #define SSYS 02 /* scheduling process */ 0393: #define SLOCK 04 /* process cannot be swapped */ 0394: #define SSWAP 010 /* process is being swapped out */ 0395: #define STRC 020 /* process is being traced */ 0396: #define SWTED 040 /* another tracing flag */