NGDT
for (x = 0; x < NGDT; x++) {
r_gdt.rd_limit = NGDT * sizeof(gdt[0]) - 1;
_Static_assert(nitems(gdt_segs) == NGDT, "Stale NGDT");
for (x = 0; x < NGDT; x++) {
ap_gdt.rd_limit = NGDT * sizeof(gdt[0]) - 1;
memcpy(__pcpu[0].pc_gdt, temp_bsp_pcpu.pc_gdt, NGDT *
r_gdt.rd_limit = NGDT * sizeof(struct user_segment_descriptor) - 1;
struct user_segment_descriptor pc_gdt[NGDT]; \
p_gdt = &gdt[PCPU_GET(cpuid) * NGDT];
sdp = &gdt[PCPU_GET(cpuid) * NGDT].sd;
for (x = 0; x < NGDT; x++)
r_gdt.rd_limit = NGDT * sizeof(gdt0[0]) - 1;
gdt = pmap_trm_alloc(sizeof(union descriptor) * NGDT * mp_ncpus,
bcopy(gdt0, gdt, sizeof(union descriptor) * NGDT);
r_gdt.rd_limit = NGDT * sizeof(gdt[0]) - 1;
union descriptor gdt0[NGDT]; /* initial global descriptor table */
for (x = 0; x < NGDT; x++) {
ssdtosd(&gdt_segs[x], &gdt[myid * NGDT + x].sd);
r_gdt.rd_limit = NGDT * sizeof(gdt[0]) - 1;
r_gdt.rd_base = (int) &gdt[myid * NGDT];
gdt[myid * NGDT + GPROC0_SEL].sd.sd_type = SDT_SYS386TSS;
PCPU_SET(tss_gdt, &gdt[myid * NGDT + GPROC0_SEL].sd);
PCPU_SET(fsgs_gdt, &gdt[myid * NGDT + GUFS_SEL].sd);
gdt_idx += PCPU_GET(cpuid) * NGDT; /* always 0 on UP */