diff options
author | Huang Ying <ying.huang@intel.com> | 2009-07-20 10:00:53 +0800 |
---|---|---|
committer | Marcelo Tosatti <mtosatti@redhat.com> | 2009-07-20 12:37:47 -0300 |
commit | c68b2374c9048812f488e00ffb95db66c0bc07a7 (patch) | |
tree | 799e2a2cb6250b117462bcb955cef8e1bf1fbdbb /qemu-kvm.h | |
parent | replace qemu_kvm_cpu_env (diff) | |
download | qemu-kvm-c68b2374c9048812f488e00ffb95db66c0bc07a7.tar.gz qemu-kvm-c68b2374c9048812f488e00ffb95db66c0bc07a7.tar.bz2 qemu-kvm-c68b2374c9048812f488e00ffb95db66c0bc07a7.zip |
Add MCE simulation support to qemu/kvm
KVM ioctls are used to initialize MCE simulation and inject MCE. The
real MCE simulation is implemented in Linux kernel. The Kernel part
has been merged.
ChangeLog:
v7:
- Re-based on qemu-kvm.git/next branch
v6:
- Re-based on latest qemu-kvm.git
v5:
- Re-based on latest qemu-kvm.git
v3:
- Re-based on qemu/tcg MCE support patch
v2:
- Use new kernel MCE capability exportion interface.
Signed-off-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'qemu-kvm.h')
-rw-r--r-- | qemu-kvm.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/qemu-kvm.h b/qemu-kvm.h index d5291a371..c90639e54 100644 --- a/qemu-kvm.h +++ b/qemu-kvm.h @@ -116,6 +116,10 @@ int try_push_interrupts(kvm_context_t kvm); struct kvm_msr_list *kvm_get_msr_list(kvm_context_t); int kvm_get_msrs(kvm_vcpu_context_t, struct kvm_msr_entry *msrs, int n); int kvm_set_msrs(kvm_vcpu_context_t, struct kvm_msr_entry *msrs, int n); +int kvm_get_mce_cap_supported(kvm_context_t, uint64_t *mce_cap, int *max_banks); +int kvm_setup_mce(kvm_vcpu_context_t vcpu, uint64_t *mcg_cap); +struct kvm_x86_mce; +int kvm_set_mce(kvm_vcpu_context_t vcpu, struct kvm_x86_mce *mce); #endif /*! @@ -620,6 +624,21 @@ int kvm_inject_nmi(kvm_vcpu_context_t vcpu); #endif /*! + * \brief Simulate an x86 MCE + * + * This allows you to simulate a x86 MCE. + * + * \param cenv Which virtual CPU should get MCE injected + * \param bank Bank number + * \param status MSR_MCI_STATUS + * \param mcg_status MSR_MCG_STATUS + * \param addr MSR_MCI_ADDR + * \param misc MSR_MCI_MISC + */ +void kvm_inject_x86_mce(CPUState *cenv, int bank, uint64_t status, + uint64_t mcg_status, uint64_t addr, uint64_t misc); + +/*! * \brief Query wheather in kernel pit is used * * \param kvm Pointer to the current kvm_context |