SEL_KPL
set_idtgate(&idt[ddb_vec], handler, 1, SDT_SYS386IGT, SEL_KPL,
GSEL(GCODE_SEL, SEL_KPL));
idx = IDXSEL(GDYNSEL(slot, SEL_KPL));
LDT_SIZE - 1, SDT_SYSLDT, SEL_KPL, 0);
SEL_KPL, 0);
return GDYNSEL(slot, SEL_KPL);
return GSEL(GNULL_SEL, SEL_KPL);
KASSERT(sel == GSEL(GNULL_SEL, SEL_KPL));
set_sys_gdt(slot, ldtp, len - 1, SDT_SYSLDT, SEL_KPL, 0);
return GDYNSEL(slot, SEL_KPL);
0xfffff, SDT_MEMERA, SEL_KPL, 1, 0, 1);
0xfffff, SDT_MEMRWA, SEL_KPL, 1, 0, 1);
LDT_SIZE - 1, SDT_SYSLDT, SEL_KPL, 0);
sel = SEL_KPL;
sel, GSEL(GCODE_SEL, SEL_KPL));
GSEL(GCODE_SEL, SEL_KPL));
HYPERVISOR_stack_switch(GSEL(GDATA_SEL, SEL_KPL), new->pcb_rsp0);
lldt(GSYSSEL(GLDT_SEL, SEL_KPL));
HYPERVISOR_stack_switch(GSEL(GDATA_SEL, SEL_KPL), pcb->pcb_rsp0);
pushq $GSEL(GCODE_SEL,SEL_KPL); \
#define IOPL_KPL SEL_KPL
#define GDYNSEL(s,r) ((((s) << 4) + DYNSEL_START) | r | SEL_KPL)
#define KERNELMODE(c) (ISPL(c) == SEL_KPL)
SEL_KPL, GSEL(GCODE_SEL, SEL_KPL));
idx = IDXSEL(GDYNSEL(slot, SEL_KPL));
sizeof(struct cpu_info) - 1, SDT_MEMRWA, SEL_KPL, 1, 0);
sizeof(struct cpu_info) - 1, SDT_MEMRWA, SEL_KPL, 1, 0);
SDT_SYS386TSS, SEL_KPL, 0, 0);
return GDYNSEL(slot, SEL_KPL);
setgdt(slot, ldtp, len - 1, SDT_SYSLDT, SEL_KPL, 0, 0);
return GDYNSEL(slot, SEL_KPL);
SDT_MEMERA, SEL_KPL, 1, 1);
SDT_MEMRWA, SEL_KPL, 1, 1);
SDT_MEMERA, SEL_KPL, 0, 0);
SDT_MEMRWA, SEL_KPL, 0, 0);
sizeof(struct cpu_info) - 1, SDT_MEMRWA, SEL_KPL, 1, 0);
NLDT * sizeof(ldtstore[0]) - 1, SDT_SYSLDT, SEL_KPL, 0, 0);
GSEL(GCODE_SEL, SEL_KPL), (unsigned long)hypervisor_callback,
GSEL(GCODE_SEL, SEL_KPL), (unsigned long)failsafe_callback);
sel = SEL_KPL;
sel, GSEL(GCODE_SEL, SEL_KPL));
GSEL(GCODE_SEL, SEL_KPL));
lldt(GSEL(GLDT_SEL, SEL_KPL));
lldt(GSEL(GLDT_SEL, SEL_KPL));
HYPERVISOR_stack_switch(GSEL(GDATA_SEL, SEL_KPL), pcb->pcb_esp0);
HYPERVISOR_stack_switch(GSEL(GDATA_SEL, SEL_KPL), pcb->pcb_esp0);
tss->tss_ss0 = GSEL(GDATA_SEL, SEL_KPL);
tss->__tss_cs = GSEL(GCODE_SEL, SEL_KPL);
tss->tss_fs = GSEL(GCPU_SEL, SEL_KPL);
tss->__tss_ss = GSEL(GDATA_SEL, SEL_KPL);
tss->tss_ldt = GSEL(GLDT_SEL, SEL_KPL);
SDT_SYS386TSS, SEL_KPL, 0, 0);
set_idtgate(&idt[8], NULL, 0, SDT_SYSTASKGT, SEL_KPL,
GSEL(GTRAPTSS_SEL, SEL_KPL));
SDT_SYS386TSS, SEL_KPL, 0, 0);
set_idtgate(&idt[ddb_vec], NULL, 0, SDT_SYSTASKGT, SEL_KPL,
GSEL(GIPITSS_SEL, SEL_KPL));
cputss->tss.tss_ss0 = GSEL(GDATA_SEL, SEL_KPL);
cputss->tss.tss_ldt = GSEL(GLDT_SEL, SEL_KPL);
movl $GSEL(GDATA_SEL, SEL_KPL),%eax ; \
movl $GSEL(GCPU_SEL, SEL_KPL),%eax ; \
#define IOPL_KPL SEL_KPL
#define GDYNSEL(s,r) ((((s) << 3) + DYNSEL_START) | r | SEL_KPL)
#define KERNELMODE(c) (ISPL(c) == SEL_KPL)
args.segment = GSEL(GDATA_SEL, SEL_KPL);
: "r" GSEL(GDATA_SEL, SEL_KPL), "0" (0xb10e), "1" (0),
: "r" GSEL(GDATA_SEL, SEL_KPL), "0" (0xb10f),
SDT_MEMERA, SEL_KPL, 0, 0);
SDT_MEMRWA, SEL_KPL, 0, 0);
SDT_MEMRWA, SEL_KPL, 0, 0);
SDT_MEMERA, SEL_KPL, 1, 0);
*--help = GSEL(GPNPBIOSDATA_SEL, SEL_KPL);
*--help = GSEL(GPNPBIOSSCRATCH_SEL, SEL_KPL);
*--help = GSEL(GPNPBIOSSCRATCH_SEL, SEL_KPL);
*--help = GSEL(GPNPBIOSDATA_SEL, SEL_KPL);
*--help = GSEL(GPNPBIOSSCRATCH_SEL, SEL_KPL);
*--help = GSEL(GPNPBIOSSCRATCH_SEL, SEL_KPL);
*--help = GSEL(GPNPBIOSDATA_SEL, SEL_KPL);
*--help = GSEL(GPNPBIOSSCRATCH_SEL, SEL_KPL);
*--help = GSEL(GPNPBIOSDATA_SEL, SEL_KPL);
*--help = GSEL(GPNPBIOSSCRATCH_SEL, SEL_KPL);
*--help = GSEL(GPNPBIOSDATA_SEL, SEL_KPL);
*--help = GSEL(GPNPBIOSDATA_SEL, SEL_KPL);
*--help = GSEL(GPNPBIOSSCRATCH_SEL, SEL_KPL);
*--help = GSEL(GPNPBIOSDATA_SEL, SEL_KPL);
*--help = GSEL(GPNPBIOSSCRATCH_SEL, SEL_KPL);
*--help = GSEL(GPNPBIOSSCRATCH_SEL, SEL_KPL);
bios32_entry.segment = GSEL(GCODE_SEL, SEL_KPL);
e->segment = GSEL(GCODE_SEL, SEL_KPL);
lldt(GSYSSEL(GLDT_SEL, SEL_KPL));
((uint64_t)GSEL(GCODE_SEL, SEL_KPL) << 32) |
set_idtgate(&idt[vec], function, 0, SDT_SYS386IGT, SEL_KPL,
GSEL(GCODE_SEL, SEL_KPL));
SDT_SYS386IGT, SEL_KPL, GSEL(GCODE_SEL, SEL_KPL));
kpm->pm_ldt_sel = GSYSSEL(GLDT_SEL, SEL_KPL);
pmap->pm_ldt_sel = GSYSSEL(GLDT_SEL, SEL_KPL);
pmap->pm_ldt_sel = GSYSSEL(GLDT_SEL, SEL_KPL);
if (__predict_false(sel != GSYSSEL(GLDT_SEL, SEL_KPL))) {
iopl = SEL_KPL;
lldt(GSEL(GLDT_SEL, SEL_KPL));
initctx->user_regs.cs = GSEL(GCODE_SEL, SEL_KPL);
initctx->user_regs.ss = GSEL(GDATA_SEL, SEL_KPL);
initctx->user_regs.es = GSEL(GDATA_SEL, SEL_KPL);
initctx->user_regs.ds = GSEL(GDATA_SEL, SEL_KPL);
initctx->kernel_ss = GSEL(GDATA_SEL, SEL_KPL);
initctx->user_regs.cs = GSEL(GCODE_SEL, SEL_KPL);
initctx->user_regs.ss = GSEL(GDATA_SEL, SEL_KPL);
initctx->user_regs.es = GSEL(GDATA_SEL, SEL_KPL);
initctx->user_regs.ds = GSEL(GDATA_SEL, SEL_KPL);
initctx->user_regs.fs = GSEL(GDATA_SEL, SEL_KPL);
initctx->kernel_ss = GSEL(GDATA_SEL, SEL_KPL);
initctx->event_callback_cs = GSEL(GCODE_SEL, SEL_KPL);
initctx->failsafe_callback_cs = GSEL(GCODE_SEL, SEL_KPL);
if (sel == GSEL(GLDT_SEL, SEL_KPL))
vmx_vmwrite(VMCS_HOST_CS_SELECTOR, GSEL(GCODE_SEL, SEL_KPL));
vmx_vmwrite(VMCS_HOST_SS_SELECTOR, GSEL(GDATA_SEL, SEL_KPL));
vmx_vmwrite(VMCS_HOST_DS_SELECTOR, GSEL(GDATA_SEL, SEL_KPL));
vmx_vmwrite(VMCS_HOST_ES_SELECTOR, GSEL(GDATA_SEL, SEL_KPL));
build_desc(&desc, ldt_base, PAGE_SIZE, SDT_MEMRW, SEL_KPL, 1, 0);
init_seg(&state->segs[NVMM_X64_SEG_CS], SDT_MEMERA, GSEL(GCODE_SEL, SEL_KPL));
init_seg(&state->segs[NVMM_X64_SEG_SS], SDT_MEMRWA, GSEL(GDATA_SEL, SEL_KPL));
init_seg(&state->segs[NVMM_X64_SEG_DS], SDT_MEMRWA, GSEL(GDATA_SEL, SEL_KPL));
init_seg(&state->segs[NVMM_X64_SEG_ES], SDT_MEMRWA, GSEL(GDATA_SEL, SEL_KPL));
init_seg(&state->segs[NVMM_X64_SEG_FS], SDT_MEMRWA, GSEL(GDATA_SEL, SEL_KPL));
init_seg(&state->segs[NVMM_X64_SEG_GS], SDT_MEMRWA, GSEL(GDATA_SEL, SEL_KPL));
init_seg(&state->segs[NVMM_X64_SEG_CS], SDT_MEMERA, GSEL(GCODE_SEL, SEL_KPL));
init_seg(&state->segs[NVMM_X64_SEG_SS], SDT_MEMRWA, GSEL(GDATA_SEL, SEL_KPL));
init_seg(&state->segs[NVMM_X64_SEG_DS], SDT_MEMRWA, GSEL(GDATA_SEL, SEL_KPL));
init_seg(&state->segs[NVMM_X64_SEG_ES], SDT_MEMRWA, GSEL(GDATA_SEL, SEL_KPL));
init_seg(&state->segs[NVMM_X64_SEG_FS], SDT_MEMRWA, GSEL(GDATA_SEL, SEL_KPL));
init_seg(&state->segs[NVMM_X64_SEG_GS], SDT_MEMRWA, GSEL(GDATA_SEL, SEL_KPL));