gdt 6 proc.h struct segdesc gdt[NSEGS]; // x86 global descriptor table gdt 25 vm.c c->gdt[SEG_KCODE] = SEG(STA_X|STA_R, 0, 0xffffffff, 0); gdt 26 vm.c c->gdt[SEG_KDATA] = SEG(STA_W, 0, 0xffffffff, 0); gdt 27 vm.c c->gdt[SEG_UCODE] = SEG(STA_X|STA_R, 0, 0xffffffff, DPL_USER); gdt 28 vm.c c->gdt[SEG_UDATA] = SEG(STA_W, 0, 0xffffffff, DPL_USER); gdt 29 vm.c lgdt(c->gdt, sizeof(c->gdt)); gdt 167 vm.c mycpu()->gdt[SEG_TSS] = SEG16(STS_T32A, &mycpu()->ts, gdt 169 vm.c mycpu()->gdt[SEG_TSS].s = 0;