qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v2 5/5] cpus: Enable nmi() callback use


From: Alexey Kardashevskiy
Subject: [Qemu-devel] [PATCH v2 5/5] cpus: Enable nmi() callback use
Date: Fri, 28 Mar 2014 23:51:52 +1100

Signed-off-by: Alexey Kardashevskiy <address@hidden>
---
 cpus.c | 33 +++++++--------------------------
 1 file changed, 7 insertions(+), 26 deletions(-)

diff --git a/cpus.c b/cpus.c
index 1104d61..2c8d620 100644
--- a/cpus.c
+++ b/cpus.c
@@ -1469,33 +1469,14 @@ exit:
 
 void qmp_inject_nmi(Error **errp)
 {
-#if defined(TARGET_I386)
-    CPUState *cs;
+    CPUState *cs = qemu_get_cpu(monitor_get_cpu_index());
+    CPUClass *cc = CPU_GET_CLASS(cs);
+    int ret = -1;
 
-    CPU_FOREACH(cs) {
-        X86CPU *cpu = X86_CPU(cs);
-
-        if (!cpu->apic_state) {
-            cpu_interrupt(cs, CPU_INTERRUPT_NMI);
-        } else {
-            apic_deliver_nmi(cpu->apic_state);
-        }
+    if (cs && cc->nmi) {
+        ret = cc->nmi(cs);
     }
-#elif defined(TARGET_S390X)
-    CPUState *cs;
-    S390CPU *cpu;
-
-    CPU_FOREACH(cs) {
-        cpu = S390_CPU(cs);
-        if (cpu->env.cpu_num == monitor_get_cpu_index()) {
-            if (s390_cpu_restart(S390_CPU(cs)) == -1) {
-                error_set(errp, QERR_UNSUPPORTED);
-                return;
-            }
-            break;
-        }
+    if (ret) {
+        error_set(errp, QERR_UNSUPPORTED);
     }
-#else
-    error_set(errp, QERR_UNSUPPORTED);
-#endif
 }
-- 
1.8.4.rc4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]