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 /* null 0 not assigned */ 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 */ 0397 0398 0399