src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1005
cpudata->vmcb->state.rax &= nvmm_cpuid_80000007.eax;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1012
cpudata->vmcb->state.rax &= nvmm_cpuid_80000008.eax;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1035
cpudata->vmcb->state.rax = 0;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1045
cpudata->vmcb->state.rax = 0;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1054
cpudata->vmcb->state.rax = 0;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1066
svm_exit_insn(struct vmcb *vmcb, struct nvmm_vcpu_exit *exit, uint64_t reason)
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1068
exit->u.insn.npc = vmcb->ctrl.nrip;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1081
eax = (cpudata->vmcb->state.rax & 0xFFFFFFFF);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1096
svm_exit_insn(cpudata->vmcb, exit, NVMM_VCPU_EXIT_CPUID);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1102
cpudata->vmcb->state.rax &= ~cpuid->u.mask.del.eax;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1108
cpudata->vmcb->state.rax |= cpuid->u.mask.set.eax;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1116
svm_inkernel_advance(cpudata->vmcb);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1125
struct vmcb *vmcb = cpudata->vmcb;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1127
if (cpudata->int_window_exit && (vmcb->state.rflags & PSL_I)) {
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1131
svm_inkernel_advance(cpudata->vmcb);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1152
uint64_t info = cpudata->vmcb->ctrl.exitinfo1;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1153
uint64_t nextpc = cpudata->vmcb->ctrl.exitinfo2;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1204
struct vmcb *vmcb = cpudata->vmcb;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1210
val = vmcb->state.efer & ~EFER_SVME;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1211
vmcb->state.rax = (val & 0xFFFFFFFF);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1217
vmcb->state.rax = (val & 0xFFFFFFFF);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1225
vmcb->state.rax = (val & 0xFFFFFFFF);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1234
if ((vmcb->state.efer ^ exit->u.wrmsr.val) &
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1238
vmcb->state.efer = exit->u.wrmsr.val | EFER_SVME;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1239
svm_vmcb_cache_flush(vmcb, VMCB_CTRL_VMCB_CLEAN_CR);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1257
svm_inkernel_advance(cpudata->vmcb);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1273
exit->u.rdmsr.npc = cpudata->vmcb->ctrl.nrip;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1291
rax = cpudata->vmcb->state.rax;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1296
exit->u.wrmsr.npc = cpudata->vmcb->ctrl.nrip;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1311
uint64_t info = cpudata->vmcb->ctrl.exitinfo1;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1325
gpaddr_t gpa = cpudata->vmcb->ctrl.exitinfo2;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1328
if (cpudata->vmcb->ctrl.exitinfo1 & PGEX_W)
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1330
else if (cpudata->vmcb->ctrl.exitinfo1 & PGEX_I)
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1335
exit->u.mem.inst_len = cpudata->vmcb->ctrl.inst_len;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1336
memcpy(exit->u.mem.inst_bytes, cpudata->vmcb->ctrl.inst_bytes,
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1349
struct vmcb *vmcb = cpudata->vmcb;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1355
(vmcb->state.rax & 0xFFFFFFFF);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1359
} else if (__predict_false(vmcb->state.cpl != 0)) {
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1369
svm_inkernel_advance(cpudata->vmcb);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1503
struct vmcb *vmcb = cpudata->vmcb;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1517
vmcb->ctrl.tlb_ctrl = svm_ctrl_tlb_flush;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1524
struct vmcb *vmcb = cpudata->vmcb;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1526
if (__predict_true(vmcb->ctrl.exitcode != VMCB_EXITCODE_INVALID)) {
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1533
svm_exit_evt(struct svm_cpudata *cpudata, struct vmcb *vmcb)
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1537
if (__predict_false(vmcb->ctrl.exitintinfo & VMCB_CTRL_EXITINTINFO_V)) {
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1538
vmcb->ctrl.eventinj = vmcb->ctrl.exitintinfo;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1549
struct vmcb *vmcb = cpudata->vmcb;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1570
svm_vmcb_cache_flush_all(vmcb);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1590
vmcb->ctrl.tlb_ctrl = svm_ctrl_tlb_flush;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1592
vmcb->ctrl.tlb_ctrl = 0;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1596
vmcb->ctrl.tsc_offset = cpudata->gtsc_offset;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1597
svm_vmcb_cache_flush(vmcb, VMCB_CTRL_VMCB_CLEAN_I);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1644
svm_vmcb_cache_default(vmcb);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1646
if (vmcb->ctrl.exitcode != VMCB_EXITCODE_INVALID) {
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1651
svm_exit_evt(cpudata, vmcb);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1653
switch (vmcb->ctrl.exitcode) {
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1701
svm_exit_insn(vmcb, exit, NVMM_VCPU_EXIT_MONITOR);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1705
svm_exit_insn(vmcb, exit, NVMM_VCPU_EXIT_MWAIT);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1715
svm_exit_invalid(exit, vmcb->ctrl.exitcode);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1733
exit->exitstate.rflags = vmcb->state.rflags;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1734
exit->exitstate.cr8 = __SHIFTOUT(vmcb->ctrl.v, VMCB_CTRL_V_TPR);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1736
((vmcb->ctrl.intr & VMCB_CTRL_INTR_SHADOW) != 0);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1822
svm_state_gtlb_flush(const struct vmcb *vmcb, const struct nvmm_x64_state *state,
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1826
if ((vmcb->state.cr0 ^
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1830
if (vmcb->state.cr3 != state->crs[NVMM_X64_CR_CR3]) {
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1833
if ((vmcb->state.cr4 ^
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1840
if ((vmcb->state.efer ^
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1855
struct vmcb *vmcb = cpudata->vmcb;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1861
if (svm_state_gtlb_flush(vmcb, state, flags)) {
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1867
&vmcb->state.cs);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1869
&vmcb->state.ds);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1871
&vmcb->state.es);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1873
&vmcb->state.fs);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1875
&vmcb->state.gs);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1877
&vmcb->state.ss);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1879
&vmcb->state.gdt);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1881
&vmcb->state.idt);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1883
&vmcb->state.ldt);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1885
&vmcb->state.tr);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1887
vmcb->state.cpl = state->segs[NVMM_X64_SEG_SS].attrib.dpl;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1894
vmcb->state.rip = state->gprs[NVMM_X64_GPR_RIP];
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1895
vmcb->state.rsp = state->gprs[NVMM_X64_GPR_RSP];
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1896
vmcb->state.rax = state->gprs[NVMM_X64_GPR_RAX];
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1897
vmcb->state.rflags = state->gprs[NVMM_X64_GPR_RFLAGS];
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1901
vmcb->state.cr0 = state->crs[NVMM_X64_CR_CR0];
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1902
vmcb->state.cr2 = state->crs[NVMM_X64_CR_CR2];
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1903
vmcb->state.cr3 = state->crs[NVMM_X64_CR_CR3];
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1904
vmcb->state.cr4 = state->crs[NVMM_X64_CR_CR4];
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1906
vmcb->ctrl.v &= ~VMCB_CTRL_V_TPR;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1907
vmcb->ctrl.v |= __SHIFTIN(state->crs[NVMM_X64_CR_CR8],
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1922
vmcb->state.dr6 = state->drs[NVMM_X64_DR_DR6];
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1923
vmcb->state.dr7 = state->drs[NVMM_X64_DR_DR7];
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1930
vmcb->state.efer = state->msrs[NVMM_X64_MSR_EFER] | EFER_SVME;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1931
vmcb->state.star = state->msrs[NVMM_X64_MSR_STAR];
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1932
vmcb->state.lstar = state->msrs[NVMM_X64_MSR_LSTAR];
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1933
vmcb->state.cstar = state->msrs[NVMM_X64_MSR_CSTAR];
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1934
vmcb->state.sfmask = state->msrs[NVMM_X64_MSR_SFMASK];
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1935
vmcb->state.kernelgsbase =
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1937
vmcb->state.sysenter_cs =
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1939
vmcb->state.sysenter_esp =
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1941
vmcb->state.sysenter_eip =
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1943
vmcb->state.g_pat = state->msrs[NVMM_X64_MSR_PAT];
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1964
vmcb->ctrl.intr |= VMCB_CTRL_INTR_SHADOW;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1966
vmcb->ctrl.intr &= ~VMCB_CTRL_INTR_SHADOW;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
1996
svm_vmcb_cache_update(vmcb, flags);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2008
struct vmcb *vmcb = cpudata->vmcb;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2015
&vmcb->state.cs);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2017
&vmcb->state.ds);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2019
&vmcb->state.es);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2021
&vmcb->state.fs);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2023
&vmcb->state.gs);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2025
&vmcb->state.ss);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2027
&vmcb->state.gdt);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2029
&vmcb->state.idt);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2031
&vmcb->state.ldt);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2033
&vmcb->state.tr);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2035
state->segs[NVMM_X64_SEG_SS].attrib.dpl = vmcb->state.cpl;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2042
state->gprs[NVMM_X64_GPR_RIP] = vmcb->state.rip;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2043
state->gprs[NVMM_X64_GPR_RSP] = vmcb->state.rsp;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2044
state->gprs[NVMM_X64_GPR_RAX] = vmcb->state.rax;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2045
state->gprs[NVMM_X64_GPR_RFLAGS] = vmcb->state.rflags;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2049
state->crs[NVMM_X64_CR_CR0] = vmcb->state.cr0;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2050
state->crs[NVMM_X64_CR_CR2] = vmcb->state.cr2;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2051
state->crs[NVMM_X64_CR_CR3] = vmcb->state.cr3;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2052
state->crs[NVMM_X64_CR_CR4] = vmcb->state.cr4;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2053
state->crs[NVMM_X64_CR_CR8] = __SHIFTOUT(vmcb->ctrl.v,
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2062
state->drs[NVMM_X64_DR_DR6] = vmcb->state.dr6;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2063
state->drs[NVMM_X64_DR_DR7] = vmcb->state.dr7;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2067
state->msrs[NVMM_X64_MSR_EFER] = vmcb->state.efer;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2068
state->msrs[NVMM_X64_MSR_STAR] = vmcb->state.star;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2069
state->msrs[NVMM_X64_MSR_LSTAR] = vmcb->state.lstar;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2070
state->msrs[NVMM_X64_MSR_CSTAR] = vmcb->state.cstar;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2071
state->msrs[NVMM_X64_MSR_SFMASK] = vmcb->state.sfmask;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2073
vmcb->state.kernelgsbase;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2075
vmcb->state.sysenter_cs;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2077
vmcb->state.sysenter_esp;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2079
vmcb->state.sysenter_eip;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2080
state->msrs[NVMM_X64_MSR_PAT] = vmcb->state.g_pat;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2092
(vmcb->ctrl.intr & VMCB_CTRL_INTR_SHADOW) != 0;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2128
struct vmcb *vmcb = cpudata->vmcb;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2142
vmcb->ctrl.guest_asid = i;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2152
vmcb->ctrl.guest_asid = svm_maxasid - 1;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2160
struct vmcb *vmcb = cpudata->vmcb;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2167
oct = vmcb->ctrl.guest_asid / 8;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2168
bit = vmcb->ctrl.guest_asid % 8;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2179
struct vmcb *vmcb = cpudata->vmcb;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2182
vmcb->ctrl.intercept_cr = 0;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2185
vmcb->ctrl.intercept_dr = 0;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2188
vmcb->ctrl.intercept_vec = 0;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2214
vmcb->ctrl.intercept_misc1 =
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2237
vmcb->ctrl.intercept_misc2 =
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2254
vmcb->ctrl.intercept_misc3 =
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2262
vmcb->ctrl.iopm_base_pa = cpudata->iobm_pa;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2278
vmcb->ctrl.msrpm_base_pa = cpudata->msrbm_pa;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2284
vmcb->ctrl.v = VMCB_CTRL_V_INTR_MASKING;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2287
vmcb->ctrl.enable1 = VMCB_CTRL_ENABLE_NP;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2288
vmcb->ctrl.n_cr3 = os_vmspace_pdirpa(mach->vm);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2317
(vaddr_t *)&cpudata->vmcb, VMCB_NPAGES);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2340
os_contigpa_free(cpudata->vmcb_pa, (vaddr_t)cpudata->vmcb,
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
2362
os_contigpa_free(cpudata->vmcb_pa, (vaddr_t)cpudata->vmcb,
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
485
CTASSERT(sizeof(struct vmcb) == PAGE_SIZE);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
486
CTASSERT(offsetof(struct vmcb, state) == 0x400);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
571
struct vmcb *vmcb;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
611
svm_vmcb_cache_default(struct vmcb *vmcb)
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
613
vmcb->ctrl.vmcb_clean =
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
629
svm_vmcb_cache_update(struct vmcb *vmcb, uint64_t flags)
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
632
vmcb->ctrl.vmcb_clean &=
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
636
vmcb->ctrl.vmcb_clean &=
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
641
vmcb->ctrl.vmcb_clean &= ~VMCB_CTRL_VMCB_CLEAN_DR;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
645
vmcb->ctrl.vmcb_clean &=
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
651
svm_vmcb_cache_flush(struct vmcb *vmcb, uint64_t flags)
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
653
vmcb->ctrl.vmcb_clean &= ~flags;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
657
svm_vmcb_cache_flush_all(struct vmcb *vmcb)
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
659
vmcb->ctrl.vmcb_clean = 0;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
671
struct vmcb *vmcb = cpudata->vmcb;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
674
vmcb->ctrl.intercept_misc1 |= VMCB_CTRL_INTERCEPT_IRET;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
677
vmcb->ctrl.intercept_misc1 |= VMCB_CTRL_INTERCEPT_VINTR;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
678
vmcb->ctrl.v |= (VMCB_CTRL_V_IRQ | VMCB_CTRL_V_IGN_TPR);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
679
svm_vmcb_cache_flush(vmcb, VMCB_CTRL_VMCB_CLEAN_TPR);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
683
svm_vmcb_cache_flush(vmcb, VMCB_CTRL_VMCB_CLEAN_I);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
690
struct vmcb *vmcb = cpudata->vmcb;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
693
vmcb->ctrl.intercept_misc1 &= ~VMCB_CTRL_INTERCEPT_IRET;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
696
vmcb->ctrl.intercept_misc1 &= ~VMCB_CTRL_INTERCEPT_VINTR;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
697
vmcb->ctrl.v &= ~(VMCB_CTRL_V_IRQ | VMCB_CTRL_V_IGN_TPR);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
698
svm_vmcb_cache_flush(vmcb, VMCB_CTRL_VMCB_CLEAN_TPR);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
702
svm_vmcb_cache_flush(vmcb, VMCB_CTRL_VMCB_CLEAN_I);
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
743
struct vmcb *vmcb = cpudata->vmcb;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
762
vmcb->state.rflags |= PSL_RF;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
778
vmcb->ctrl.eventinj =
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
829
svm_inkernel_advance(struct vmcb *vmcb)
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
836
vmcb->state.rip = vmcb->ctrl.nrip;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
837
vmcb->state.rflags &= ~PSL_RF;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
838
vmcb->ctrl.intr &= ~VMCB_CTRL_INTR_SHADOW;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
853
cpudata->vmcb->state.rax = descs.eax;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
886
cpudata->vmcb->state.rax = svm_cpuid_max_basic;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
889
cpudata->vmcb->state.rax &= nvmm_cpuid_00000001.eax;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
906
cr4 = cpudata->vmcb->state.cr4;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
916
cpudata->vmcb->state.rax = 0;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
924
cpudata->vmcb->state.rax = 0;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
930
cpudata->vmcb->state.rax = 0;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
942
cpudata->vmcb->state.rax = 0;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
954
cpudata->vmcb->state.rax = svm_xcr0_mask & 0xFFFFFFFF;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
962
cpudata->vmcb->state.rax &=
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
971
cpudata->vmcb->state.rax = 0;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
980
cpudata->vmcb->state.rax = SVM_CPUID_MAX_HYPERVISOR;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
990
cpudata->vmcb->state.rax = svm_cpuid_max_extended;
src/add-ons/kernel/drivers/nvmm/x86/nvmm_x86_svm.c
993
cpudata->vmcb->state.rax &= nvmm_cpuid_80000001.eax;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1005
cpudata->vmcb->state.rax &= nvmm_cpuid_80000007.eax;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1012
cpudata->vmcb->state.rax &= nvmm_cpuid_80000008.eax;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1035
cpudata->vmcb->state.rax = 0;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1045
cpudata->vmcb->state.rax = 0;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1054
cpudata->vmcb->state.rax = 0;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1066
svm_exit_insn(struct vmcb *vmcb, struct nvmm_vcpu_exit *exit, uint64_t reason)
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1068
exit->u.insn.npc = vmcb->ctrl.nrip;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1081
eax = (cpudata->vmcb->state.rax & 0xFFFFFFFF);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1096
svm_exit_insn(cpudata->vmcb, exit, NVMM_VCPU_EXIT_CPUID);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1102
cpudata->vmcb->state.rax &= ~cpuid->u.mask.del.eax;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1108
cpudata->vmcb->state.rax |= cpuid->u.mask.set.eax;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1116
svm_inkernel_advance(cpudata->vmcb);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1125
struct vmcb *vmcb = cpudata->vmcb;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1127
if (cpudata->int_window_exit && (vmcb->state.rflags & PSL_I)) {
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1131
svm_inkernel_advance(cpudata->vmcb);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1152
uint64_t info = cpudata->vmcb->ctrl.exitinfo1;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1153
uint64_t nextpc = cpudata->vmcb->ctrl.exitinfo2;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1204
struct vmcb *vmcb = cpudata->vmcb;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1210
val = vmcb->state.efer & ~EFER_SVME;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1211
vmcb->state.rax = (val & 0xFFFFFFFF);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1217
vmcb->state.rax = (val & 0xFFFFFFFF);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1225
vmcb->state.rax = (val & 0xFFFFFFFF);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1234
if ((vmcb->state.efer ^ exit->u.wrmsr.val) &
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1238
vmcb->state.efer = exit->u.wrmsr.val | EFER_SVME;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1239
svm_vmcb_cache_flush(vmcb, VMCB_CTRL_VMCB_CLEAN_CR);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1257
svm_inkernel_advance(cpudata->vmcb);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1273
exit->u.rdmsr.npc = cpudata->vmcb->ctrl.nrip;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1291
rax = cpudata->vmcb->state.rax;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1296
exit->u.wrmsr.npc = cpudata->vmcb->ctrl.nrip;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1311
uint64_t info = cpudata->vmcb->ctrl.exitinfo1;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1325
gpaddr_t gpa = cpudata->vmcb->ctrl.exitinfo2;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1328
if (cpudata->vmcb->ctrl.exitinfo1 & PGEX_W)
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1330
else if (cpudata->vmcb->ctrl.exitinfo1 & PGEX_I)
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1335
exit->u.mem.inst_len = cpudata->vmcb->ctrl.inst_len;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1336
memcpy(exit->u.mem.inst_bytes, cpudata->vmcb->ctrl.inst_bytes,
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1349
struct vmcb *vmcb = cpudata->vmcb;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1355
(vmcb->state.rax & 0xFFFFFFFF);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1359
} else if (__predict_false(vmcb->state.cpl != 0)) {
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1369
svm_inkernel_advance(cpudata->vmcb);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1503
struct vmcb *vmcb = cpudata->vmcb;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1517
vmcb->ctrl.tlb_ctrl = svm_ctrl_tlb_flush;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1524
struct vmcb *vmcb = cpudata->vmcb;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1526
if (__predict_true(vmcb->ctrl.exitcode != VMCB_EXITCODE_INVALID)) {
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1533
svm_exit_evt(struct svm_cpudata *cpudata, struct vmcb *vmcb)
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1537
if (__predict_false(vmcb->ctrl.exitintinfo & VMCB_CTRL_EXITINTINFO_V)) {
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1538
vmcb->ctrl.eventinj = vmcb->ctrl.exitintinfo;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1549
struct vmcb *vmcb = cpudata->vmcb;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1570
svm_vmcb_cache_flush_all(vmcb);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1590
vmcb->ctrl.tlb_ctrl = svm_ctrl_tlb_flush;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1592
vmcb->ctrl.tlb_ctrl = 0;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1596
vmcb->ctrl.tsc_offset = cpudata->gtsc_offset;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1597
svm_vmcb_cache_flush(vmcb, VMCB_CTRL_VMCB_CLEAN_I);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1644
svm_vmcb_cache_default(vmcb);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1646
if (vmcb->ctrl.exitcode != VMCB_EXITCODE_INVALID) {
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1651
svm_exit_evt(cpudata, vmcb);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1653
switch (vmcb->ctrl.exitcode) {
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1701
svm_exit_insn(vmcb, exit, NVMM_VCPU_EXIT_MONITOR);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1705
svm_exit_insn(vmcb, exit, NVMM_VCPU_EXIT_MWAIT);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1715
svm_exit_invalid(exit, vmcb->ctrl.exitcode);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1733
exit->exitstate.rflags = vmcb->state.rflags;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1734
exit->exitstate.cr8 = __SHIFTOUT(vmcb->ctrl.v, VMCB_CTRL_V_TPR);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1736
((vmcb->ctrl.intr & VMCB_CTRL_INTR_SHADOW) != 0);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1822
svm_state_gtlb_flush(const struct vmcb *vmcb, const struct nvmm_x64_state *state,
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1826
if ((vmcb->state.cr0 ^
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1830
if (vmcb->state.cr3 != state->crs[NVMM_X64_CR_CR3]) {
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1833
if ((vmcb->state.cr4 ^
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1840
if ((vmcb->state.efer ^
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1855
struct vmcb *vmcb = cpudata->vmcb;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1861
if (svm_state_gtlb_flush(vmcb, state, flags)) {
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1867
&vmcb->state.cs);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1869
&vmcb->state.ds);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1871
&vmcb->state.es);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1873
&vmcb->state.fs);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1875
&vmcb->state.gs);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1877
&vmcb->state.ss);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1879
&vmcb->state.gdt);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1881
&vmcb->state.idt);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1883
&vmcb->state.ldt);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1885
&vmcb->state.tr);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1887
vmcb->state.cpl = state->segs[NVMM_X64_SEG_SS].attrib.dpl;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1894
vmcb->state.rip = state->gprs[NVMM_X64_GPR_RIP];
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1895
vmcb->state.rsp = state->gprs[NVMM_X64_GPR_RSP];
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1896
vmcb->state.rax = state->gprs[NVMM_X64_GPR_RAX];
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1897
vmcb->state.rflags = state->gprs[NVMM_X64_GPR_RFLAGS];
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1901
vmcb->state.cr0 = state->crs[NVMM_X64_CR_CR0];
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1902
vmcb->state.cr2 = state->crs[NVMM_X64_CR_CR2];
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1903
vmcb->state.cr3 = state->crs[NVMM_X64_CR_CR3];
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1904
vmcb->state.cr4 = state->crs[NVMM_X64_CR_CR4];
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1906
vmcb->ctrl.v &= ~VMCB_CTRL_V_TPR;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1907
vmcb->ctrl.v |= __SHIFTIN(state->crs[NVMM_X64_CR_CR8],
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1922
vmcb->state.dr6 = state->drs[NVMM_X64_DR_DR6];
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1923
vmcb->state.dr7 = state->drs[NVMM_X64_DR_DR7];
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1930
vmcb->state.efer = state->msrs[NVMM_X64_MSR_EFER] | EFER_SVME;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1931
vmcb->state.star = state->msrs[NVMM_X64_MSR_STAR];
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1932
vmcb->state.lstar = state->msrs[NVMM_X64_MSR_LSTAR];
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1933
vmcb->state.cstar = state->msrs[NVMM_X64_MSR_CSTAR];
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1934
vmcb->state.sfmask = state->msrs[NVMM_X64_MSR_SFMASK];
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1935
vmcb->state.kernelgsbase =
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1937
vmcb->state.sysenter_cs =
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1939
vmcb->state.sysenter_esp =
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1941
vmcb->state.sysenter_eip =
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1943
vmcb->state.g_pat = state->msrs[NVMM_X64_MSR_PAT];
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1964
vmcb->ctrl.intr |= VMCB_CTRL_INTR_SHADOW;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1966
vmcb->ctrl.intr &= ~VMCB_CTRL_INTR_SHADOW;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
1996
svm_vmcb_cache_update(vmcb, flags);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2008
struct vmcb *vmcb = cpudata->vmcb;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2015
&vmcb->state.cs);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2017
&vmcb->state.ds);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2019
&vmcb->state.es);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2021
&vmcb->state.fs);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2023
&vmcb->state.gs);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2025
&vmcb->state.ss);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2027
&vmcb->state.gdt);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2029
&vmcb->state.idt);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2031
&vmcb->state.ldt);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2033
&vmcb->state.tr);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2035
state->segs[NVMM_X64_SEG_SS].attrib.dpl = vmcb->state.cpl;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2042
state->gprs[NVMM_X64_GPR_RIP] = vmcb->state.rip;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2043
state->gprs[NVMM_X64_GPR_RSP] = vmcb->state.rsp;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2044
state->gprs[NVMM_X64_GPR_RAX] = vmcb->state.rax;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2045
state->gprs[NVMM_X64_GPR_RFLAGS] = vmcb->state.rflags;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2049
state->crs[NVMM_X64_CR_CR0] = vmcb->state.cr0;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2050
state->crs[NVMM_X64_CR_CR2] = vmcb->state.cr2;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2051
state->crs[NVMM_X64_CR_CR3] = vmcb->state.cr3;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2052
state->crs[NVMM_X64_CR_CR4] = vmcb->state.cr4;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2053
state->crs[NVMM_X64_CR_CR8] = __SHIFTOUT(vmcb->ctrl.v,
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2062
state->drs[NVMM_X64_DR_DR6] = vmcb->state.dr6;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2063
state->drs[NVMM_X64_DR_DR7] = vmcb->state.dr7;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2067
state->msrs[NVMM_X64_MSR_EFER] = vmcb->state.efer;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2068
state->msrs[NVMM_X64_MSR_STAR] = vmcb->state.star;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2069
state->msrs[NVMM_X64_MSR_LSTAR] = vmcb->state.lstar;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2070
state->msrs[NVMM_X64_MSR_CSTAR] = vmcb->state.cstar;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2071
state->msrs[NVMM_X64_MSR_SFMASK] = vmcb->state.sfmask;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2073
vmcb->state.kernelgsbase;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2075
vmcb->state.sysenter_cs;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2077
vmcb->state.sysenter_esp;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2079
vmcb->state.sysenter_eip;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2080
state->msrs[NVMM_X64_MSR_PAT] = vmcb->state.g_pat;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2092
(vmcb->ctrl.intr & VMCB_CTRL_INTR_SHADOW) != 0;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2128
struct vmcb *vmcb = cpudata->vmcb;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2142
vmcb->ctrl.guest_asid = i;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2152
vmcb->ctrl.guest_asid = svm_maxasid - 1;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2160
struct vmcb *vmcb = cpudata->vmcb;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2167
oct = vmcb->ctrl.guest_asid / 8;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2168
bit = vmcb->ctrl.guest_asid % 8;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2179
struct vmcb *vmcb = cpudata->vmcb;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2182
vmcb->ctrl.intercept_cr = 0;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2185
vmcb->ctrl.intercept_dr = 0;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2188
vmcb->ctrl.intercept_vec = 0;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2214
vmcb->ctrl.intercept_misc1 =
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2237
vmcb->ctrl.intercept_misc2 =
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2254
vmcb->ctrl.intercept_misc3 =
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2262
vmcb->ctrl.iopm_base_pa = cpudata->iobm_pa;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2278
vmcb->ctrl.msrpm_base_pa = cpudata->msrbm_pa;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2284
vmcb->ctrl.v = VMCB_CTRL_V_INTR_MASKING;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2287
vmcb->ctrl.enable1 = VMCB_CTRL_ENABLE_NP;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2288
vmcb->ctrl.n_cr3 = os_vmspace_pdirpa(mach->vm);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2317
(vaddr_t *)&cpudata->vmcb, VMCB_NPAGES);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2340
os_contigpa_free(cpudata->vmcb_pa, (vaddr_t)cpudata->vmcb,
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
2362
os_contigpa_free(cpudata->vmcb_pa, (vaddr_t)cpudata->vmcb,
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
485
CTASSERT(sizeof(struct vmcb) == PAGE_SIZE);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
486
CTASSERT(offsetof(struct vmcb, state) == 0x400);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
571
struct vmcb *vmcb;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
611
svm_vmcb_cache_default(struct vmcb *vmcb)
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
613
vmcb->ctrl.vmcb_clean =
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
629
svm_vmcb_cache_update(struct vmcb *vmcb, uint64_t flags)
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
632
vmcb->ctrl.vmcb_clean &=
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
636
vmcb->ctrl.vmcb_clean &=
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
641
vmcb->ctrl.vmcb_clean &= ~VMCB_CTRL_VMCB_CLEAN_DR;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
645
vmcb->ctrl.vmcb_clean &=
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
651
svm_vmcb_cache_flush(struct vmcb *vmcb, uint64_t flags)
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
653
vmcb->ctrl.vmcb_clean &= ~flags;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
657
svm_vmcb_cache_flush_all(struct vmcb *vmcb)
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
659
vmcb->ctrl.vmcb_clean = 0;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
671
struct vmcb *vmcb = cpudata->vmcb;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
674
vmcb->ctrl.intercept_misc1 |= VMCB_CTRL_INTERCEPT_IRET;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
677
vmcb->ctrl.intercept_misc1 |= VMCB_CTRL_INTERCEPT_VINTR;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
678
vmcb->ctrl.v |= (VMCB_CTRL_V_IRQ | VMCB_CTRL_V_IGN_TPR);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
679
svm_vmcb_cache_flush(vmcb, VMCB_CTRL_VMCB_CLEAN_TPR);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
683
svm_vmcb_cache_flush(vmcb, VMCB_CTRL_VMCB_CLEAN_I);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
690
struct vmcb *vmcb = cpudata->vmcb;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
693
vmcb->ctrl.intercept_misc1 &= ~VMCB_CTRL_INTERCEPT_IRET;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
696
vmcb->ctrl.intercept_misc1 &= ~VMCB_CTRL_INTERCEPT_VINTR;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
697
vmcb->ctrl.v &= ~(VMCB_CTRL_V_IRQ | VMCB_CTRL_V_IGN_TPR);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
698
svm_vmcb_cache_flush(vmcb, VMCB_CTRL_VMCB_CLEAN_TPR);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
702
svm_vmcb_cache_flush(vmcb, VMCB_CTRL_VMCB_CLEAN_I);
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
743
struct vmcb *vmcb = cpudata->vmcb;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
762
vmcb->state.rflags |= PSL_RF;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
778
vmcb->ctrl.eventinj =
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
829
svm_inkernel_advance(struct vmcb *vmcb)
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
836
vmcb->state.rip = vmcb->ctrl.nrip;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
837
vmcb->state.rflags &= ~PSL_RF;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
838
vmcb->ctrl.intr &= ~VMCB_CTRL_INTR_SHADOW;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
853
cpudata->vmcb->state.rax = descs.eax;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
886
cpudata->vmcb->state.rax = svm_cpuid_max_basic;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
889
cpudata->vmcb->state.rax &= nvmm_cpuid_00000001.eax;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
906
cr4 = cpudata->vmcb->state.cr4;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
916
cpudata->vmcb->state.rax = 0;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
924
cpudata->vmcb->state.rax = 0;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
930
cpudata->vmcb->state.rax = 0;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
942
cpudata->vmcb->state.rax = 0;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
954
cpudata->vmcb->state.rax = svm_xcr0_mask & 0xFFFFFFFF;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
962
cpudata->vmcb->state.rax &=
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
971
cpudata->vmcb->state.rax = 0;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
980
cpudata->vmcb->state.rax = SVM_CPUID_MAX_HYPERVISOR;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
990
cpudata->vmcb->state.rax = svm_cpuid_max_extended;
src/libs/nvmm/driver/x86/nvmm_x86_svm.c
993
cpudata->vmcb->state.rax &= nvmm_cpuid_80000001.eax;