GUSERLDT_SEL
ASSYM(LDTSEL, GSEL(GUSERLDT_SEL, SEL_KPL));
PCPU_SET(ldt, (struct system_segment_descriptor *)&gdt[GUSERLDT_SEL]);
x != GUSERLDT_SEL && x != (GUSERLDT_SEL + 1))
[GUSERLDT_SEL] = { /* 11 LDT Descriptor */
[GUSERLDT_SEL + 1] = { /* 12 LDT Descriptor, double size */
pc->pc_ldt = (struct system_segment_descriptor *)&gdt[GUSERLDT_SEL];
x != GUSERLDT_SEL && x != GUSERLDT_SEL + 1)
lldt(GSEL(GUSERLDT_SEL, SEL_KPL));
gdt_idx = GUSERLDT_SEL;
lldt(GSEL(GUSERLDT_SEL, SEL_KPL));
PCPU_SET(currentldt, GSEL(GUSERLDT_SEL, SEL_KPL));
gdt_segs[GUSERLDT_SEL].ssd_base = (unsigned)new_ldt->ldt_base;
gdt_segs[GUSERLDT_SEL].ssd_limit = len * sizeof(union descriptor) - 1;
ssdtosd(&gdt_segs[GUSERLDT_SEL], &new_ldt->ldt_sd);