diff options
author | Robert Morris <[email protected]> | 2016-08-10 10:51:14 -0400 |
---|---|---|
committer | Robert Morris <[email protected]> | 2016-08-10 10:51:14 -0400 |
commit | 858475e4dfabb61dc72ab5b4f105e2a0a636e7e8 (patch) | |
tree | 16f960cc7005744d73e50bb55d2eecb8f080dafa | |
parent | 0a4a4230a32696ef7f1f6272ca24520826195b7f (diff) | |
download | xv6-labs-858475e4dfabb61dc72ab5b4f105e2a0a636e7e8.tar.gz xv6-labs-858475e4dfabb61dc72ab5b4f105e2a0a636e7e8.tar.bz2 xv6-labs-858475e4dfabb61dc72ab5b4f105e2a0a636e7e8.zip |
tiny clarifications to some gdt code.
-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)); |