From 55e95b16db458b7f9abeca96e541acbdf8d7f85b Mon Sep 17 00:00:00 2001 From: rtm Date: Mon, 12 Jun 2006 15:22:12 +0000 Subject: import --- proc.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 proc.h (limited to 'proc.h') diff --git a/proc.h b/proc.h new file mode 100644 index 0000000..e5c230c --- /dev/null +++ b/proc.h @@ -0,0 +1,34 @@ +/* + * p->mem: + * text + * original data and bss + * fixed-size stack + * expandable heap + */ + +/* + * segments in proc->gdt + */ +#define SEG_KCODE 1 // kernel code +#define SEG_KDATA 2 // kernel data+stack +#define SEG_UCODE 3 +#define SEG_UDATA 4 +#define SEG_TSS 5 // this process's task state +#define NSEGS 6 + +struct proc{ + char *mem; // start of process's physical memory + unsigned sz; // total size of mem, including kernel stack + char *kstack; // kernel stack, separate from mem so it doesn't move + enum { UNUSED, RUNNABLE, WAITING } state; + + struct Taskstate ts; // only to give cpu address of kernel stack + struct Segdesc gdt[NSEGS]; + struct Pseudodesc gdt_pd; + unsigned esp; // kernel stack pointer + unsigned ebp; // kernel frame pointer + + struct Trapframe *tf; // points into kstack, used to find user regs +}; + +extern struct proc proc[]; -- cgit v1.2.3