Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/vmm/intel/vmx.c
Show All 12 Lines | |||||
#define HANDLED 1 | #define HANDLED 1 | ||||
#define UNHANDLED 0 | #define UNHANDLED 0 | ||||
static MALLOC_DEFINE(M_VMX, "vmx", "vmx"); | static MALLOC_DEFINE(M_VMX, "vmx", "vmx"); | ||||
static MALLOC_DEFINE(M_VLAPIC, "vlapic", "vlapic"); | static MALLOC_DEFINE(M_VLAPIC, "vlapic", "vlapic"); | ||||
SYSCTL_DECL(_hw_vmm); | SYSCTL_DECL(_hw_vmm); | ||||
SYSCTL_NODE(_hw_vmm, OID_AUTO, vmx, CTLFLAG_RW, NULL, NULL); | SYSCTL_NODE(_hw_vmm, OID_AUTO, vmx, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, | ||||
NULL); | |||||
int vmxon_enabled[MAXCPU]; | int vmxon_enabled[MAXCPU]; | ||||
static char vmxon_region[MAXCPU][PAGE_SIZE] __aligned(PAGE_SIZE); | static char vmxon_region[MAXCPU][PAGE_SIZE] __aligned(PAGE_SIZE); | ||||
static uint32_t pinbased_ctls, procbased_ctls, procbased_ctls2; | static uint32_t pinbased_ctls, procbased_ctls, procbased_ctls2; | ||||
static uint32_t exit_ctls, entry_ctls; | static uint32_t exit_ctls, entry_ctls; | ||||
static uint64_t cr0_ones_mask, cr0_zeros_mask; | static uint64_t cr0_ones_mask, cr0_zeros_mask; | ||||
Show All 10 Lines | |||||
static int vmx_initialized; | static int vmx_initialized; | ||||
SYSCTL_INT(_hw_vmm_vmx, OID_AUTO, initialized, CTLFLAG_RD, | SYSCTL_INT(_hw_vmm_vmx, OID_AUTO, initialized, CTLFLAG_RD, | ||||
&vmx_initialized, 0, "Intel VMX initialized"); | &vmx_initialized, 0, "Intel VMX initialized"); | ||||
/* | /* | ||||
* Optional capabilities | * Optional capabilities | ||||
*/ | */ | ||||
static SYSCTL_NODE(_hw_vmm_vmx, OID_AUTO, cap, CTLFLAG_RW, NULL, NULL); | static SYSCTL_NODE(_hw_vmm_vmx, OID_AUTO, cap, | ||||
CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, | |||||
NULL); | |||||
static int cap_halt_exit; | static int cap_halt_exit; | ||||
SYSCTL_INT(_hw_vmm_vmx_cap, OID_AUTO, halt_exit, CTLFLAG_RD, &cap_halt_exit, 0, | SYSCTL_INT(_hw_vmm_vmx_cap, OID_AUTO, halt_exit, CTLFLAG_RD, &cap_halt_exit, 0, | ||||
"HLT triggers a VM-exit"); | "HLT triggers a VM-exit"); | ||||
static int cap_pause_exit; | static int cap_pause_exit; | ||||
SYSCTL_INT(_hw_vmm_vmx_cap, OID_AUTO, pause_exit, CTLFLAG_RD, &cap_pause_exit, | SYSCTL_INT(_hw_vmm_vmx_cap, OID_AUTO, pause_exit, CTLFLAG_RD, &cap_pause_exit, | ||||
0, "PAUSE triggers a VM-exit"); | 0, "PAUSE triggers a VM-exit"); | ||||
Show All 12 Lines |