1 #ifndef _MCHECK_VMCE_H 2 #define _MCHECK_VMCE_H 3 4 #include "x86_mca.h" 5 6 int vmce_init(struct cpuinfo_x86 *c); 7 8 #define dom0_vmce_enabled() (hardware_domain && hardware_domain->max_vcpus \ 9 && hardware_domain->vcpu[0] \ 10 && guest_enabled_event(hardware_domain->vcpu[0], VIRQ_MCA)) 11 12 int unmmap_broken_page(struct domain *d, mfn_t mfn, unsigned long gfn); 13 14 int vmce_intel_rdmsr(const struct vcpu *, uint32_t msr, uint64_t *val); 15 int vmce_intel_wrmsr(struct vcpu *, uint32_t msr, uint64_t val); 16 int vmce_amd_rdmsr(const struct vcpu *, uint32_t msr, uint64_t *val); 17 int vmce_amd_wrmsr(struct vcpu *, uint32_t msr, uint64_t val); 18 19 int fill_vmsr_data(struct mcinfo_bank *mc_bank, struct domain *d, 20 uint64_t gstatus, int vmce_vcpuid); 21 22 #define VMCE_INJECT_BROADCAST (-1) 23 int inject_vmce(struct domain *d, int vcpu); 24 25 #endif 26