202 return xtf_failure(
"Fail: unexpected vmptrld failure %08x\n", ex);
static unsigned long read_cr4(void)
static void write_cr4(unsigned long cr4)
#define __page_aligned_bss
void printk(const char *fmt,...)
#define EXINFO_SYM(exc, ec)
unsigned int exinfo_t
Packed exception and error code information.
static unsigned long exec_user(unsigned long(*fn)(void))
#define _u(v)
Express an arbitrary value v as unsigned long.
void xtf_failure(const char *fmt,...)
Report a test failure.
void check(const char *func, exinfo_t got, exinfo_t exp)
Compare an expectation against what really happenend, printing human-readable information in case of ...
uint32_t vmcs_revid
Hardware VMCS Revision ID.
exinfo_t stub_vmxon_user(uint64_t paddr)
exinfo_t stub_vmptrld(uint64_t paddr)
static void clear_vmcs(void *_vmcs, uint32_t rev)
exinfo_t stub_vmxon(uint64_t paddr)
static void test_vmxon_novmxe_in_user(void)
vmxon in CPL=3 outside of VMX operation
static void test_vmxon_revid_bit31(void)
vmxon with VMCS revision ID[31] set
static void test_vmxon_novmcs_in_root_user(void)
vmxon in VMX root w/ CPL = 3 and w/o current VMCS
static void test_vmxon_novmcs_in_root_cpl0(void)
vmxon in VMX root w/ CPL = 0 and w/o current VMCS
static void test_vmxon_in_root_cpl0(void)
vmxon in VMX root w/ CPL = 0 and w/ current VMCS
static unsigned long vmxon_in_user(void)
static void test_vmxon_novmxe(void)
vmxon with CR4.VMXE cleared
static uint8_t vmcs[PAGE_SIZE]
static uint8_t vmxon_region_unused[PAGE_SIZE]
static void test_vmxon_overly_wide_paddr(void)
vmxon with a physical address that exceeds the maximum address width
static void test_vmxon_unaligned_paddr(void)
vmxon with an unaligned physical address
static void test_vmxon_in_user(void)
vmxon in CPL=3 in VMX operation
static void test_vmxon_mismatched_revid(void)
vmxon with VMCS revision ID mismatched with MSR_IA32_VMX_BASIC
static void test_vmxon_correct(void)
vmxon expected to succeed
static void test_vmxon_in_root_user(void)
vmxon in VMX root w/ CPL = 3 and w/ current VMCS
static uint8_t vmxon_region_real[PAGE_SIZE]
#define VMERR_VMXON_IN_ROOT