diff options
-rw-r--r-- | mmu.h | 4 | ||||
-rw-r--r-- | proc.h | 3 | ||||
-rw-r--r-- | vm.c | 3 |
3 files changed, 5 insertions, 5 deletions
@@ -39,6 +39,7 @@ #define CR4_PSE 0x00000010 // Page size extension +// various segment selectors. #define SEG_KCODE 1 // kernel code #define SEG_KDATA 2 // kernel data+stack #define SEG_KCPU 3 // kernel per-cpu data @@ -46,6 +47,9 @@ #define SEG_UDATA 5 // user data+stack #define SEG_TSS 6 // this process's task state +// cpu->gdt[NSEGS] holds the above segments. +#define NSEGS 7 + //PAGEBREAK! #ifndef __ASSEMBLER__ // Segment Descriptor @@ -1,6 +1,3 @@ -// Segments in proc->gdt. -#define NSEGS 7 - // Per-CPU state struct cpu { uchar id; // Local APIC ID; index into cpus[] below @@ -9,7 +9,6 @@ extern char data[]; // defined by kernel.ld pde_t *kpgdir; // for use in scheduler() -struct segdesc gdt[NSEGS]; // Set up CPU's kernel segment descriptors. // Run once on entry on each CPU. @@ -28,7 +27,7 @@ seginit(void) c->gdt[SEG_UCODE] = SEG(STA_X|STA_R, 0, 0xffffffff, DPL_USER); c->gdt[SEG_UDATA] = SEG(STA_W, 0, 0xffffffff, DPL_USER); - // Map cpu, and curproc + // Map cpu and curproc -- these are private per cpu. c->gdt[SEG_KCPU] = SEG(STA_W, &c->cpu, 8, 0); lgdt(c->gdt, sizeof(c->gdt)); |