diff options
author | rtm <rtm> | 2006-06-12 15:22:12 +0000 |
---|---|---|
committer | rtm <rtm> | 2006-06-12 15:22:12 +0000 |
commit | 55e95b16db458b7f9abeca96e541acbdf8d7f85b (patch) | |
tree | 92a1fcb6f1cdede7ab83b37acabf76e1bc1b10f4 /proc.h | |
download | xv6-labs-55e95b16db458b7f9abeca96e541acbdf8d7f85b.tar.gz xv6-labs-55e95b16db458b7f9abeca96e541acbdf8d7f85b.tar.bz2 xv6-labs-55e95b16db458b7f9abeca96e541acbdf8d7f85b.zip |
import
Diffstat (limited to 'proc.h')
-rw-r--r-- | proc.h | 34 |
1 files changed, 34 insertions, 0 deletions
@@ -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[]; |