sys/dev/nvmm/x86/nvmm_x86_svm.c
1008
cpudata->vmcb->state.rax = 0;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1015
cpudata->vmcb->state.rax = 0;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1027
cpudata->vmcb->state.rax = SVM_CPUID_MAX_HYPERVISOR;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1040
cpudata->vmcb->state.rax = svm_cpuid_max_extended;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1043
cpudata->vmcb->state.rax &= nvmm_cpuid_80000001.eax;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1055
cpudata->vmcb->state.rax &= nvmm_cpuid_80000007.eax;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1061
cpudata->vmcb->state.rax &= nvmm_cpuid_80000008.eax;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1082
cpudata->vmcb->state.rax = 0;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1092
cpudata->vmcb->state.rax = 0;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1101
cpudata->vmcb->state.rax = 0;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1113
svm_exit_insn(struct vmcb *vmcb, struct nvmm_vcpu_exit *exit, uint64_t reason)
sys/dev/nvmm/x86/nvmm_x86_svm.c
1115
exit->u.insn.npc = vmcb->ctrl.nrip;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1128
eax = cpudata->vmcb->state.rax;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1143
svm_exit_insn(cpudata->vmcb, exit, NVMM_VCPU_EXIT_CPUID);
sys/dev/nvmm/x86/nvmm_x86_svm.c
1149
cpudata->vmcb->state.rax &= ~cpuid->u.mask.del.eax;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1155
cpudata->vmcb->state.rax |= cpuid->u.mask.set.eax;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1163
svm_inkernel_advance(cpudata->vmcb);
sys/dev/nvmm/x86/nvmm_x86_svm.c
1172
struct vmcb *vmcb = cpudata->vmcb;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1174
if (cpudata->int_window_exit && (vmcb->state.rflags & PSL_I)) {
sys/dev/nvmm/x86/nvmm_x86_svm.c
1178
svm_inkernel_advance(cpudata->vmcb);
sys/dev/nvmm/x86/nvmm_x86_svm.c
1199
uint64_t info = cpudata->vmcb->ctrl.exitinfo1;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1200
uint64_t nextpc = cpudata->vmcb->ctrl.exitinfo2;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1251
struct vmcb *vmcb = cpudata->vmcb;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1257
val = vmcb->state.efer & ~EFER_SVME;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1258
vmcb->state.rax = (val & 0xFFFFFFFF);
sys/dev/nvmm/x86/nvmm_x86_svm.c
1264
vmcb->state.rax = (val & 0xFFFFFFFF);
sys/dev/nvmm/x86/nvmm_x86_svm.c
1272
vmcb->state.rax = (val & 0xFFFFFFFF);
sys/dev/nvmm/x86/nvmm_x86_svm.c
1281
if ((vmcb->state.efer ^ exit->u.wrmsr.val) &
sys/dev/nvmm/x86/nvmm_x86_svm.c
1285
vmcb->state.efer = exit->u.wrmsr.val | EFER_SVME;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1286
svm_vmcb_cache_flush(vmcb, VMCB_CTRL_VMCB_CLEAN_CR);
sys/dev/nvmm/x86/nvmm_x86_svm.c
1304
svm_inkernel_advance(cpudata->vmcb);
sys/dev/nvmm/x86/nvmm_x86_svm.c
1320
exit->u.rdmsr.npc = cpudata->vmcb->ctrl.nrip;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1338
rax = cpudata->vmcb->state.rax;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1343
exit->u.wrmsr.npc = cpudata->vmcb->ctrl.nrip;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1358
uint64_t info = cpudata->vmcb->ctrl.exitinfo1;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1372
gpaddr_t gpa = cpudata->vmcb->ctrl.exitinfo2;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1375
if (cpudata->vmcb->ctrl.exitinfo1 & PGEX_W)
sys/dev/nvmm/x86/nvmm_x86_svm.c
1377
else if (cpudata->vmcb->ctrl.exitinfo1 & PGEX_I)
sys/dev/nvmm/x86/nvmm_x86_svm.c
1382
exit->u.mem.inst_len = cpudata->vmcb->ctrl.inst_len;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1383
memcpy(exit->u.mem.inst_bytes, cpudata->vmcb->ctrl.inst_bytes,
sys/dev/nvmm/x86/nvmm_x86_svm.c
1396
struct vmcb *vmcb = cpudata->vmcb;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1402
(vmcb->state.rax & 0xFFFFFFFF);
sys/dev/nvmm/x86/nvmm_x86_svm.c
1406
} else if (__predict_false(vmcb->state.cpl != 0)) {
sys/dev/nvmm/x86/nvmm_x86_svm.c
1420
svm_inkernel_advance(cpudata->vmcb);
sys/dev/nvmm/x86/nvmm_x86_svm.c
1670
struct vmcb *vmcb = cpudata->vmcb;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1678
vmcb->ctrl.tlb_ctrl = svm_ctrl_tlb_flush;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1685
struct vmcb *vmcb = cpudata->vmcb;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1687
if (__predict_true(vmcb->ctrl.exitcode != VMCB_EXITCODE_INVALID)) {
sys/dev/nvmm/x86/nvmm_x86_svm.c
1693
svm_exit_evt(struct svm_cpudata *cpudata, struct vmcb *vmcb)
sys/dev/nvmm/x86/nvmm_x86_svm.c
1697
if (__predict_false(vmcb->ctrl.exitintinfo & VMCB_CTRL_EXITINTINFO_V)) {
sys/dev/nvmm/x86/nvmm_x86_svm.c
1698
vmcb->ctrl.eventinj = vmcb->ctrl.exitintinfo;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1710
struct vmcb *vmcb = cpudata->vmcb;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1728
svm_vmcb_cache_flush_all(vmcb);
sys/dev/nvmm/x86/nvmm_x86_svm.c
1737
vmcb->ctrl.tlb_ctrl = svm_ctrl_tlb_flush;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1739
vmcb->ctrl.tlb_ctrl = 0;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1743
vmcb->ctrl.tsc_offset = cpudata->gtsc - rdtsc();
sys/dev/nvmm/x86/nvmm_x86_svm.c
1744
svm_vmcb_cache_flush(vmcb, VMCB_CTRL_VMCB_CLEAN_I);
sys/dev/nvmm/x86/nvmm_x86_svm.c
1755
svm_vmcb_cache_default(vmcb);
sys/dev/nvmm/x86/nvmm_x86_svm.c
1757
if (vmcb->ctrl.exitcode != VMCB_EXITCODE_INVALID) {
sys/dev/nvmm/x86/nvmm_x86_svm.c
1762
svm_exit_evt(cpudata, vmcb);
sys/dev/nvmm/x86/nvmm_x86_svm.c
1764
switch (vmcb->ctrl.exitcode) {
sys/dev/nvmm/x86/nvmm_x86_svm.c
1812
svm_exit_insn(vmcb, exit, NVMM_VCPU_EXIT_MONITOR);
sys/dev/nvmm/x86/nvmm_x86_svm.c
1816
svm_exit_insn(vmcb, exit, NVMM_VCPU_EXIT_MWAIT);
sys/dev/nvmm/x86/nvmm_x86_svm.c
1826
svm_exit_invalid(exit, vmcb->ctrl.exitcode);
sys/dev/nvmm/x86/nvmm_x86_svm.c
1839
cpudata->gtsc = rdtsc() + vmcb->ctrl.tsc_offset;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1846
exit->exitstate.rflags = vmcb->state.rflags;
sys/dev/nvmm/x86/nvmm_x86_svm.c
1847
exit->exitstate.cr8 = __SHIFTOUT(vmcb->ctrl.v, VMCB_CTRL_V_TPR);
sys/dev/nvmm/x86/nvmm_x86_svm.c
1849
((vmcb->ctrl.intr & VMCB_CTRL_INTR_SHADOW) != 0);
sys/dev/nvmm/x86/nvmm_x86_svm.c
1989
svm_state_tlb_flush(const struct vmcb *vmcb, const struct nvmm_x64_state *state,
sys/dev/nvmm/x86/nvmm_x86_svm.c
1993
if ((vmcb->state.cr0 ^
sys/dev/nvmm/x86/nvmm_x86_svm.c
1997
if (vmcb->state.cr3 != state->crs[NVMM_X64_CR_CR3]) {
sys/dev/nvmm/x86/nvmm_x86_svm.c
2000
if ((vmcb->state.cr4 ^
sys/dev/nvmm/x86/nvmm_x86_svm.c
2007
if ((vmcb->state.efer ^
sys/dev/nvmm/x86/nvmm_x86_svm.c
2022
struct vmcb *vmcb = cpudata->vmcb;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2028
if (svm_state_tlb_flush(vmcb, state, flags)) {
sys/dev/nvmm/x86/nvmm_x86_svm.c
2034
&vmcb->state.cs);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2036
&vmcb->state.ds);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2038
&vmcb->state.es);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2040
&vmcb->state.fs);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2042
&vmcb->state.gs);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2044
&vmcb->state.ss);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2046
&vmcb->state.gdt);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2048
&vmcb->state.idt);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2050
&vmcb->state.ldt);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2052
&vmcb->state.tr);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2054
vmcb->state.cpl = state->segs[NVMM_X64_SEG_SS].attrib.dpl;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2061
vmcb->state.rip = state->gprs[NVMM_X64_GPR_RIP];
sys/dev/nvmm/x86/nvmm_x86_svm.c
2062
vmcb->state.rsp = state->gprs[NVMM_X64_GPR_RSP];
sys/dev/nvmm/x86/nvmm_x86_svm.c
2063
vmcb->state.rax = state->gprs[NVMM_X64_GPR_RAX];
sys/dev/nvmm/x86/nvmm_x86_svm.c
2064
vmcb->state.rflags = state->gprs[NVMM_X64_GPR_RFLAGS];
sys/dev/nvmm/x86/nvmm_x86_svm.c
2068
vmcb->state.cr0 = state->crs[NVMM_X64_CR_CR0];
sys/dev/nvmm/x86/nvmm_x86_svm.c
2069
vmcb->state.cr2 = state->crs[NVMM_X64_CR_CR2];
sys/dev/nvmm/x86/nvmm_x86_svm.c
2070
vmcb->state.cr3 = state->crs[NVMM_X64_CR_CR3];
sys/dev/nvmm/x86/nvmm_x86_svm.c
2071
vmcb->state.cr4 = state->crs[NVMM_X64_CR_CR4];
sys/dev/nvmm/x86/nvmm_x86_svm.c
2072
vmcb->state.cr4 &= CR4_VALID;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2074
vmcb->ctrl.v &= ~VMCB_CTRL_V_TPR;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2075
vmcb->ctrl.v |= __SHIFTIN(state->crs[NVMM_X64_CR_CR8],
sys/dev/nvmm/x86/nvmm_x86_svm.c
2090
vmcb->state.dr6 = state->drs[NVMM_X64_DR_DR6];
sys/dev/nvmm/x86/nvmm_x86_svm.c
2091
vmcb->state.dr7 = state->drs[NVMM_X64_DR_DR7];
sys/dev/nvmm/x86/nvmm_x86_svm.c
2098
vmcb->state.efer = state->msrs[NVMM_X64_MSR_EFER] | EFER_SVME;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2099
vmcb->state.star = state->msrs[NVMM_X64_MSR_STAR];
sys/dev/nvmm/x86/nvmm_x86_svm.c
2100
vmcb->state.lstar = state->msrs[NVMM_X64_MSR_LSTAR];
sys/dev/nvmm/x86/nvmm_x86_svm.c
2101
vmcb->state.cstar = state->msrs[NVMM_X64_MSR_CSTAR];
sys/dev/nvmm/x86/nvmm_x86_svm.c
2102
vmcb->state.sfmask = state->msrs[NVMM_X64_MSR_SFMASK];
sys/dev/nvmm/x86/nvmm_x86_svm.c
2103
vmcb->state.kernelgsbase =
sys/dev/nvmm/x86/nvmm_x86_svm.c
2105
vmcb->state.sysenter_cs =
sys/dev/nvmm/x86/nvmm_x86_svm.c
2107
vmcb->state.sysenter_esp =
sys/dev/nvmm/x86/nvmm_x86_svm.c
2109
vmcb->state.sysenter_eip =
sys/dev/nvmm/x86/nvmm_x86_svm.c
2111
vmcb->state.g_pat = state->msrs[NVMM_X64_MSR_PAT];
sys/dev/nvmm/x86/nvmm_x86_svm.c
2119
vmcb->ctrl.intr |= VMCB_CTRL_INTR_SHADOW;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2121
vmcb->ctrl.intr &= ~VMCB_CTRL_INTR_SHADOW;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2156
svm_vmcb_cache_update(vmcb, flags);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2168
const struct vmcb *vmcb = cpudata->vmcb;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2175
&vmcb->state.cs);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2177
&vmcb->state.ds);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2179
&vmcb->state.es);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2181
&vmcb->state.fs);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2183
&vmcb->state.gs);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2185
&vmcb->state.ss);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2187
&vmcb->state.gdt);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2189
&vmcb->state.idt);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2191
&vmcb->state.ldt);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2193
&vmcb->state.tr);
sys/dev/nvmm/x86/nvmm_x86_svm.c
2195
state->segs[NVMM_X64_SEG_SS].attrib.dpl = vmcb->state.cpl;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2202
state->gprs[NVMM_X64_GPR_RIP] = vmcb->state.rip;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2203
state->gprs[NVMM_X64_GPR_RSP] = vmcb->state.rsp;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2204
state->gprs[NVMM_X64_GPR_RAX] = vmcb->state.rax;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2205
state->gprs[NVMM_X64_GPR_RFLAGS] = vmcb->state.rflags;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2209
state->crs[NVMM_X64_CR_CR0] = vmcb->state.cr0;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2210
state->crs[NVMM_X64_CR_CR2] = vmcb->state.cr2;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2211
state->crs[NVMM_X64_CR_CR3] = vmcb->state.cr3;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2212
state->crs[NVMM_X64_CR_CR4] = vmcb->state.cr4;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2213
state->crs[NVMM_X64_CR_CR8] = __SHIFTOUT(vmcb->ctrl.v,
sys/dev/nvmm/x86/nvmm_x86_svm.c
2222
state->drs[NVMM_X64_DR_DR6] = vmcb->state.dr6;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2223
state->drs[NVMM_X64_DR_DR7] = vmcb->state.dr7;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2227
state->msrs[NVMM_X64_MSR_EFER] = vmcb->state.efer;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2228
state->msrs[NVMM_X64_MSR_STAR] = vmcb->state.star;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2229
state->msrs[NVMM_X64_MSR_LSTAR] = vmcb->state.lstar;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2230
state->msrs[NVMM_X64_MSR_CSTAR] = vmcb->state.cstar;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2231
state->msrs[NVMM_X64_MSR_SFMASK] = vmcb->state.sfmask;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2233
vmcb->state.kernelgsbase;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2235
vmcb->state.sysenter_cs;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2237
vmcb->state.sysenter_esp;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2239
vmcb->state.sysenter_eip;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2240
state->msrs[NVMM_X64_MSR_PAT] = vmcb->state.g_pat;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2249
(vmcb->ctrl.intr & VMCB_CTRL_INTR_SHADOW) != 0;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2290
struct vmcb *vmcb = cpudata->vmcb;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2304
vmcb->ctrl.guest_asid = i;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2314
vmcb->ctrl.guest_asid = svm_maxasid - 1;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2322
struct vmcb *vmcb = cpudata->vmcb;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2329
oct = vmcb->ctrl.guest_asid / 8;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2330
bit = vmcb->ctrl.guest_asid % 8;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2341
struct vmcb *vmcb = cpudata->vmcb;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2344
vmcb->ctrl.intercept_cr = 0;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2347
vmcb->ctrl.intercept_dr = 0;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2350
vmcb->ctrl.intercept_vec = 0;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2376
vmcb->ctrl.intercept_misc1 =
sys/dev/nvmm/x86/nvmm_x86_svm.c
2399
vmcb->ctrl.intercept_misc2 =
sys/dev/nvmm/x86/nvmm_x86_svm.c
2416
vmcb->ctrl.intercept_misc3 =
sys/dev/nvmm/x86/nvmm_x86_svm.c
2424
vmcb->ctrl.iopm_base_pa = cpudata->iobm_pa;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2440
vmcb->ctrl.msrpm_base_pa = cpudata->msrbm_pa;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2446
vmcb->ctrl.v = VMCB_CTRL_V_INTR_MASKING;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2449
vmcb->ctrl.enable1 = VMCB_CTRL_ENABLE_NP;
sys/dev/nvmm/x86/nvmm_x86_svm.c
2450
vmcb->ctrl.n_cr3 = mach->vm->vm_map.pmap->pm_pdirpa[0];
sys/dev/nvmm/x86/nvmm_x86_svm.c
2502
error = svm_memalloc(&cpudata->vmcb_pa, (vaddr_t *)&cpudata->vmcb,
sys/dev/nvmm/x86/nvmm_x86_svm.c
2526
svm_memfree(cpudata->vmcb_pa, (vaddr_t)cpudata->vmcb,
sys/dev/nvmm/x86/nvmm_x86_svm.c
2549
svm_memfree(cpudata->vmcb_pa, (vaddr_t)cpudata->vmcb, VMCB_NPAGES);
sys/dev/nvmm/x86/nvmm_x86_svm.c
481
CTASSERT(sizeof(struct vmcb) == PAGE_SIZE);
sys/dev/nvmm/x86/nvmm_x86_svm.c
482
CTASSERT(offsetof(struct vmcb, state) == 0x400);
sys/dev/nvmm/x86/nvmm_x86_svm.c
575
struct vmcb *vmcb;
sys/dev/nvmm/x86/nvmm_x86_svm.c
622
svm_vmcb_cache_default(struct vmcb *vmcb)
sys/dev/nvmm/x86/nvmm_x86_svm.c
624
vmcb->ctrl.vmcb_clean =
sys/dev/nvmm/x86/nvmm_x86_svm.c
640
svm_vmcb_cache_update(struct vmcb *vmcb, uint64_t flags)
sys/dev/nvmm/x86/nvmm_x86_svm.c
643
vmcb->ctrl.vmcb_clean &=
sys/dev/nvmm/x86/nvmm_x86_svm.c
647
vmcb->ctrl.vmcb_clean &=
sys/dev/nvmm/x86/nvmm_x86_svm.c
652
vmcb->ctrl.vmcb_clean &= ~VMCB_CTRL_VMCB_CLEAN_DR;
sys/dev/nvmm/x86/nvmm_x86_svm.c
656
vmcb->ctrl.vmcb_clean &=
sys/dev/nvmm/x86/nvmm_x86_svm.c
662
svm_vmcb_cache_flush(struct vmcb *vmcb, uint64_t flags)
sys/dev/nvmm/x86/nvmm_x86_svm.c
664
vmcb->ctrl.vmcb_clean &= ~flags;
sys/dev/nvmm/x86/nvmm_x86_svm.c
668
svm_vmcb_cache_flush_all(struct vmcb *vmcb)
sys/dev/nvmm/x86/nvmm_x86_svm.c
670
vmcb->ctrl.vmcb_clean = 0;
sys/dev/nvmm/x86/nvmm_x86_svm.c
682
struct vmcb *vmcb = cpudata->vmcb;
sys/dev/nvmm/x86/nvmm_x86_svm.c
685
vmcb->ctrl.intercept_misc1 |= VMCB_CTRL_INTERCEPT_IRET;
sys/dev/nvmm/x86/nvmm_x86_svm.c
688
vmcb->ctrl.intercept_misc1 |= VMCB_CTRL_INTERCEPT_VINTR;
sys/dev/nvmm/x86/nvmm_x86_svm.c
689
vmcb->ctrl.v |= (VMCB_CTRL_V_IRQ | VMCB_CTRL_V_IGN_TPR);
sys/dev/nvmm/x86/nvmm_x86_svm.c
690
svm_vmcb_cache_flush(vmcb, VMCB_CTRL_VMCB_CLEAN_TPR);
sys/dev/nvmm/x86/nvmm_x86_svm.c
694
svm_vmcb_cache_flush(vmcb, VMCB_CTRL_VMCB_CLEAN_I);
sys/dev/nvmm/x86/nvmm_x86_svm.c
701
struct vmcb *vmcb = cpudata->vmcb;
sys/dev/nvmm/x86/nvmm_x86_svm.c
704
vmcb->ctrl.intercept_misc1 &= ~VMCB_CTRL_INTERCEPT_IRET;
sys/dev/nvmm/x86/nvmm_x86_svm.c
707
vmcb->ctrl.intercept_misc1 &= ~VMCB_CTRL_INTERCEPT_VINTR;
sys/dev/nvmm/x86/nvmm_x86_svm.c
708
vmcb->ctrl.v &= ~(VMCB_CTRL_V_IRQ | VMCB_CTRL_V_IGN_TPR);
sys/dev/nvmm/x86/nvmm_x86_svm.c
709
svm_vmcb_cache_flush(vmcb, VMCB_CTRL_VMCB_CLEAN_TPR);
sys/dev/nvmm/x86/nvmm_x86_svm.c
713
svm_vmcb_cache_flush(vmcb, VMCB_CTRL_VMCB_CLEAN_I);
sys/dev/nvmm/x86/nvmm_x86_svm.c
754
struct vmcb *vmcb = cpudata->vmcb;
sys/dev/nvmm/x86/nvmm_x86_svm.c
773
vmcb->state.rflags |= PSL_RF;
sys/dev/nvmm/x86/nvmm_x86_svm.c
789
vmcb->ctrl.eventinj =
sys/dev/nvmm/x86/nvmm_x86_svm.c
840
svm_inkernel_advance(struct vmcb *vmcb)
sys/dev/nvmm/x86/nvmm_x86_svm.c
847
vmcb->state.rip = vmcb->ctrl.nrip;
sys/dev/nvmm/x86/nvmm_x86_svm.c
848
vmcb->state.rflags &= ~PSL_RF;
sys/dev/nvmm/x86/nvmm_x86_svm.c
849
vmcb->ctrl.intr &= ~VMCB_CTRL_INTR_SHADOW;
sys/dev/nvmm/x86/nvmm_x86_svm.c
864
cpudata->vmcb->state.rax = descs[0];
sys/dev/nvmm/x86/nvmm_x86_svm.c
916
cpudata->vmcb->state.rax = svm_cpuid_max_basic;
sys/dev/nvmm/x86/nvmm_x86_svm.c
919
cpudata->vmcb->state.rax &= nvmm_cpuid_00000001.eax;
sys/dev/nvmm/x86/nvmm_x86_svm.c
931
cr4 = cpudata->vmcb->state.cr4;
sys/dev/nvmm/x86/nvmm_x86_svm.c
941
cpudata->vmcb->state.rax = 0;
sys/dev/nvmm/x86/nvmm_x86_svm.c
949
cpudata->vmcb->state.rax = 0;
sys/dev/nvmm/x86/nvmm_x86_svm.c
955
cpudata->vmcb->state.rax = 0;
sys/dev/nvmm/x86/nvmm_x86_svm.c
967
cpudata->vmcb->state.rax = 0;
sys/dev/nvmm/x86/nvmm_x86_svm.c
974
cpudata->vmcb->state.rax = 0;
sys/dev/nvmm/x86/nvmm_x86_svm.c
982
cpudata->vmcb->state.rax =
sys/dev/nvmm/x86/nvmm_x86_svm.c
992
cpudata->vmcb->state.rax &=