]> Devi Nivas Git - cs3210-lab0.git/commitdiff
tiny clarifications to some gdt code.
authorRobert Morris <rtm@csail.mit.edu>
Wed, 10 Aug 2016 14:51:14 +0000 (10:51 -0400)
committerRobert Morris <rtm@csail.mit.edu>
Wed, 10 Aug 2016 14:51:14 +0000 (10:51 -0400)
mmu.h
proc.h
vm.c

diff --git a/mmu.h b/mmu.h
index 685f51dc3ac07118bef97c5e6cdfeffdf5122ecc..310d5de80af5f83015dd5d461a0227ac74d55cdc 100644 (file)
--- a/mmu.h
+++ b/mmu.h
@@ -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
diff --git a/proc.h b/proc.h
index 3b9c3ac242a71701a4a06346262599bccefb56d8..33a955848af21c7da0829c1c0c7926daead22140 100644 (file)
--- a/proc.h
+++ b/proc.h
@@ -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
diff --git a/vm.c b/vm.c
index 85f6ce23b4fe94f312fec0ba575613162bf529a8..cd36db501fb34c3a076196f4d0dd8d68bc4803cc 100644 (file)
--- a/vm.c
+++ b/vm.c
@@ -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));