16 :
"=a" (lo),
"=d" (hi)
34 for ( i = 0; i < t->
nr_vals; ++i )
43 xtf_failure(
"Fail: MSR %08x, real write, real read\n" 53 xtf_failure(
"Fail: MSR %08x, real write, emul read\n" 54 " Got %016"PRIx64
", Expected %016"PRIx64
"\n",
61 for ( i = 0; i < t->
nr_vals; ++i )
70 xtf_failure(
"Fail: MSR %08x, emul write, real read\n" 77 xtf_failure(
"Fail: MSR %08x, emul write, emul read\n" 78 " Got %016"PRIx64
", Expected %016"PRIx64
"\n",
static void wrmsr(uint32_t idx, uint64_t val)
Thin wrapper around an wrmsr instruction.
#define _ASM_XEN_FEP
Xen Forced Emulation Prefix.
static uint64_t force_rdmsr(uint32_t idx)
static uint64_t rdmsr(uint32_t idx)
Thin wrapper around an rdmsr instruction.
bool xtf_has_fep
Boolean indicating whether generic Force Emulation Prefix support is available for the test to use...
void xtf_failure(const char *fmt,...)
Report a test failure.
static void force_wrmsr(uint32_t idx, uint64_t val)
void xtf_msr_consistency_test(const struct xtf_msr_consistency_test_data *t)
Run consistency tests as described by t.
const struct xtf_msr_consistency_test_data::xtf_msr_consistency_test_vals * vals
Model Specific Register mnemonics and bit definitions.
API for reporting test status.