📄 procs.h
字号:
/****************************************************************************** * Proc.h Proccess table ****************************************************************************** */#define STACKROOM 8192 /* Room for stack when doing sbrk */#define SYSSTACK 2048 /* size of system stack per proccess *//* * Object Full address of an object eg file */struct Object { struct dev *majdev; /* Pointer to device table entry */ short mindev; /* Minor device number */ short inode; /* Inode number */};/* * Psize Process size definitions */struct Psize { long fmagic; /* Program magic number */ long tsize; /* Text size in bytes */ long dsize; /* Data size */ long bsize; /* Bss size */ long entry; /* Program entry point */ long ebss; /* End of bss address */ long ustack; /* Top of user stack */ long stacks; /* Stack size */};/* * U_regs Proccesor registers as held on system stack 74 bytes */struct u_regs { long laststate; /* Previous state pointer */ long d0; /* Data registers */ long d1; long d2; long d3; long d4; long d5; long d6; long d7; long a0; /* Address registers (you don't say!) */ long a1; long a2; long a3; long a4; long a5; long a6; long usp; /* User stack pointer */ long ret; /* Return from wrapper address */ long func; /* Function being called */ short sr; /* Status register */ long pc; /* Program counter */ short vec; /* Exception vector (68010 only) */};# define CARRY 1 /* Carry flag in status register *//* * Signal Signals structure (very tempary) */struct signal { int (*func)(); /* Signal function call */};/* * Procs Proccess structure one per process * note no user structure everything is here. */struct procs { struct u_regs *reg; /* Procesor registers and sysstack */ struct inode *wd; /* Working dir */ struct Psize psize; /* Process size definitions */ char name[PATHLEN]; /* Path name of process */ struct Object object; /* Object name of process */ struct file *slots[NFPERU]; /* File slots */ short stat; /* Process state 0 - none */ short flag; /* Process flags */ short pid; /* Process number */ short ppid; /* Proccess number of parent */ short tty; /* Proccess control tty */ short cpu; /* Cpu usage */ short pri; /* Proccess priority */ short nice; /* Priority */ short sigmode; /* Signal mode */ unsigned long sig; /* Signals pending bit map */ unsigned long sigmask; /* Signals Mask bit map */ struct signal signals[NSIG]; /* Signals */ unsigned long evenfile; /* File event enable bit map */ unsigned long evfile; /* File event pending bit map */ short evcom; /* Comms event pending */ long evcoma[3]; /* Comms event arguments */ caddr_t pwakechan; /* Pre-wake value */ short pwakeevent; /* Pre-wake event occured */ caddr_t wchan; /* Waiting on channel sleep */ short exitstatus; /* Exit status of process */ short errno; /* Error number */ long umask; /* File creation mode mask */ long alarm; /* Alarm counter */ short smask; /* Software interupt mask */ short majseg; /* Major memory segment being used */ short minseg; /* Minor memory segment being used */ short uid; /* Users id */ short gid; /* Users group id */ short euid; /* Users effective id */ short egid; /* Users effective group id */ short stackover; /* Stack overflow test location */ char sysstack[SYSSTACK];/* System stack for proccess temp */};/* * Stat codes */# define SSLEEP 1 /* Awaiting event ie asleep */# define SWAIT 2 /* Abandoned state */# define SRUN 3 /* Running */# define SIDL 4 /* Indeterminate state (in creation) */# define SZOMB 5 /* Indeterminate state (in termination) */# define SSTOP 6 /* Process being traced *//* * Flag codes */# define SLOAD 1 /* In core ie runable directly */# define SSYS 2 /* Sceduling process not implemented */# define SLOCK 4 /* Process cannot be swapped stays in core */# define SSWAP 8 /* Process is being swapped out, not imp */# define STRC 0x10 /* Process is being traced, not imp */# define SWTED 0x20 /* Trace flag2, not imp */# define SULOCK 0x40 /* User setable lock locks process into core *//* * Smask Software interupt mask (Function bits set are masked) * and Event checking flags (Only function bits set are checked) */# define EVOFF 0 /* Nothing masked */# define EVSWTCH 1 /* Checks if process switch required */# define EVSIGQUIT 2 /* Checks signals to quit process */# define EVSIGUSER 4 /* Checks signals to jump to user func*/# define EVALLSIG 6 /* Checks all signal events */# define EVALL 7 /* Checks all events this process *//* Prewake This entry if pwakechan is set to a valid event pre-empting * of the event sleep system will occur. * ie If this event occurs the pwakeevent entry will be set * to indicate that the prewake has occured * if the process go's to sleep on this event it will be * immediatly awoken. */# define PWAKEOFF 0 /* No prewake */# define PWAKEEVENT 1 /* Prewake event occured */extern struct procs *cur_proc;extern struct procs proc_table[];extern int proc_index;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -