summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHuang Ying <ying.huang@intel.com>2009-06-23 10:05:14 +0800
committerAnthony Liguori <aliguori@us.ibm.com>2009-07-09 16:04:53 -0500
commit79c4f6b08009a1d23177c2be8bd003253cf3686a (patch)
treec9a9e72451d20ba2ae8e0f5a14301522281add70 /cpu-exec.c
parentMerge commit 'linux-user/linux-user-for-upstream' into tmp-staging (diff)
downloadqemu-kvm-79c4f6b08009a1d23177c2be8bd003253cf3686a.tar.gz
qemu-kvm-79c4f6b08009a1d23177c2be8bd003253cf3686a.tar.bz2
qemu-kvm-79c4f6b08009a1d23177c2be8bd003253cf3686a.zip
QEMU: MCE: Add MCE simulation to qemu/tcg
- MCE features are initialized when VCPU is intialized according to CPUID. - A monitor command "mce" is added to inject a MCE. - A new interrupt mask: CPU_INTERRUPT_MCE is added to inject the MCE. aliguori: fix build for linux-user Signed-off-by: Huang Ying <ying.huang@intel.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'cpu-exec.c')
-rw-r--r--cpu-exec.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/cpu-exec.c b/cpu-exec.c
index db5cb5730..38335f8b4 100644
--- a/cpu-exec.c
+++ b/cpu-exec.c
@@ -400,6 +400,10 @@ int cpu_exec(CPUState *env1)
env->hflags2 |= HF2_NMI_MASK;
do_interrupt(EXCP02_NMI, 0, 0, 0, 1);
next_tb = 0;
+ } else if (interrupt_request & CPU_INTERRUPT_MCE) {
+ env->interrupt_request &= ~CPU_INTERRUPT_MCE;
+ do_interrupt(EXCP12_MCHK, 0, 0, 0, 0);
+ next_tb = 0;
} else if ((interrupt_request & CPU_INTERRUPT_HARD) &&
(((env->hflags2 & HF2_VINTR_MASK) &&
(env->hflags2 & HF2_HIF_MASK)) ||