GPROC0_SEL
ASSYM(TSSSEL, GSEL(GPROC0_SEL, SEL_KPL));
PCPU_SET(tss, (struct system_segment_descriptor *)&gdt[GPROC0_SEL]);
if (x != GPROC0_SEL && x != (GPROC0_SEL + 1) &&
gdt_segs[GPROC0_SEL].ssd_base = (uintptr_t)&pc->pc_common_tss;
ssdtosyssd(&gdt_segs[GPROC0_SEL],
(struct system_segment_descriptor *)&gdt[GPROC0_SEL]);
gsel_tss = GSEL(GPROC0_SEL, SEL_KPL);
[GPROC0_SEL] = { /* 9 Proc 0 TSS Descriptor */
[GPROC0_SEL + 1] = { /* 10 Proc 0 TSS descriptor, double size */
pc->pc_tss = (struct system_segment_descriptor *)&gdt[GPROC0_SEL];
gdt_segs[GPROC0_SEL].ssd_base = (long)&pc->pc_common_tss;
if (x != GPROC0_SEL && x != GPROC0_SEL + 1 &&
ssdtosyssd(&gdt_segs[GPROC0_SEL],
(struct system_segment_descriptor *)&gdt[GPROC0_SEL]);
gsel_tss = GSEL(GPROC0_SEL, SEL_KPL);
gdt_segs[GPROC0_SEL].ssd_base = (uintptr_t)&__pcpu[0].pc_common_tss;
ssdtosyssd(&gdt_segs[GPROC0_SEL],
(struct system_segment_descriptor *)&__pcpu[0].pc_gdt[GPROC0_SEL]);
ltr(GSEL(GPROC0_SEL, SEL_KPL));
ltr(GSEL(GPROC0_SEL, SEL_KPL));
ltr(GSEL(GPROC0_SEL, SEL_KPL));
return (GSEL(GPROC0_SEL, SEL_KPL));
ASSYM(GPROC0_SEL, GPROC0_SEL);
gdt_segs[GPROC0_SEL].ssd_base = (int)&common_tss0;
gsel_tss = GSEL(GPROC0_SEL, SEL_KPL);
PCPU_SET(tss_gdt, &gdt[GPROC0_SEL].sd);
gdt[GPROC0_SEL].sd.sd_type = SDT_SYS386TSS; /* clear busy bit */
gdt[GPROC0_SEL].sd.sd_lobase = (int)tss;
gdt[GPROC0_SEL].sd.sd_hibase = (u_int)tss >> 24;
gdt[GPROC0_SEL].sd.sd_type = SDT_SYS386TSS;
PCPU_SET(tss_gdt, &gdt[GPROC0_SEL].sd);
ltr(GSEL(GPROC0_SEL, SEL_KPL));
gdt_segs[GPROC0_SEL].ssd_base = (int)common_tssp;
gsel_tss = GSEL(GPROC0_SEL, SEL_KPL);
gdt[myid * NGDT + GPROC0_SEL].sd.sd_type = SDT_SYS386TSS;
PCPU_SET(tss_gdt, &gdt[myid * NGDT + GPROC0_SEL].sd);
ltr(GSEL(GPROC0_SEL, SEL_KPL));