/* By Marcus Xing include/proc.h 与进程有关的头文件 */ /* forward include: type.h protect.h */ #ifndef _PROC_H_ #define _PROC_H_ #define MAX_PROC 50 /* 进程的最大个数 */ #define STACK_A 1024 /* 进程A的堆栈大小 */ #define STACK_B 1024 /* 进程B的堆栈大小 */ #define STACK_C 1024 /* 进程C的堆栈大小 */ #define STACK_PROC_TTY 1024 /* 终端进程的堆栈大小 */ /* 所有进程的堆栈大小 */ #define ALL_PROC_STACK_SPACE (STACK_A + / STACK_B + / STACK_C + / STACK_PROC_TTY / ) /* PCB中的栈结构 */ typedef struct s_stack_frame { u32 fs; u32 gs; u32 es; u32 ds; u32 edi; u32 esi; u32 ebp; u32 dummy_esp; u32 ebx; u32 edx; u32 ecx; u32 eax; u32 save_ret_addr; /* 中断程序中的SAVE函数的返回地址 */ u32 eip; u32 cs; u32 eflags; u32 esp; u32 ss; }Stack_Frame; /* PCB结构 */ typedef struct s_pcb { Stack_Frame stack_frame; /* 栈结构