/*
 *	UKC System changes which apply to this file:
 *	see changes.h
 *
 *	MAX_PROC
 *	WAITABAN
 *	NEW_EXEC
 *	NEW_SLEEP
 */
/*
 * One structure allocated per active
 * process. It contains all data needed
 * about the process while the
 * process may be swapped out.
 * Other per process data (user.h)
 * is swapped with the process.
 */
struct	proc
{
	char	p_stat;
	char	p_flag;
	char	p_pri;		/* priority, negative is high */
	char	p_sig;		/* signal number sent to this process */
	char	p_uid;		/* user id, used to direct tty signals */
	char	p_time;		/* resident time for scheduling */
	char	p_cpu;		/* cpu usage for scheduling */
	char	p_nice;		/* nice for scheduling */
	int	p_ttyp;		/* controlling tty */
	int	p_pid;		/* unique process id */
	int	p_ppid;		/* process id of parent */
	int	p_addr;		/* address of swappable image */
	int	p_size;		/* size of swappable image (*64 bytes) */
	int	p_wchan;	/* event process is awaiting */
	int	*p_textp;	/* pointer to text structure */
#ifdef NEW_SLEEP
	int	p_clktim;	/* Contains seconds to wakeup */
#endif
} proc[];

/* stat codes */
#define	SSLEEP	1		/* sleeping on high priority */
#ifdef WAITABAN
/* SWAIT state abandoned SSLEEP does instead */
#endif
#define	SWAIT	2		/* sleeping on low priority */
#define	SRUN	3		/* running */
#define	SIDL	4		/* intermediate state in process creation */
#define	SZOMB	5		/* intermediate state in process termination */
#define	SSTOP	6		/* process being traced */

/* flag codes */
#define	SLOAD	01		/* in core */
#define	SSYS	02		/* scheduling process */
#define	SLOCK	04		/* process cannot be swapped */
#define	SSWAP	010		/* process is being swapped out */
#define	STRC	020		/* process is being traced */
#define	SWTED	040		/* another tracing flag */
#ifdef NEW_SLEEP
#define SCLK	0100		/* Used to signify sleep rather than alarm usage of p_clktim */
#endif


struct proc *max_proc;		/* address of maximum entry in proc table */
