summary refs log tree commit diff stats
path: root/hw/apic.c
diff options
context:
space:
mode:
authoraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-04-13 16:08:23 +0000
committeraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-04-13 16:08:23 +0000
commite2eb9d3e9192800e0526e88c186cecda4529d307 (patch)
treedfc854614f14428020644c0471df525cc43bc846 /hw/apic.c
parent474ea8494ae389fce546fdf3459e2a1c2ff22ac7 (diff)
downloadfocaccia-qemu-e2eb9d3e9192800e0526e88c186cecda4529d307.tar.gz
focaccia-qemu-e2eb9d3e9192800e0526e88c186cecda4529d307.zip
x86: Raise inter-processor NMI and SMI
(Jan Kiszka)


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4206 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'hw/apic.c')
-rw-r--r--hw/apic.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/hw/apic.c b/hw/apic.c
index 25f6f53a96..a6964e0a65 100644
--- a/hw/apic.c
+++ b/hw/apic.c
@@ -216,8 +216,14 @@ static void apic_bus_deliver(const uint32_t *deliver_bitmask,
             break;
 
         case APIC_DM_SMI:
+            foreach_apic(apic_iter, deliver_bitmask,
+                cpu_interrupt(apic_iter->cpu_env, CPU_INTERRUPT_SMI) );
+            return;
+
         case APIC_DM_NMI:
-            break;
+            foreach_apic(apic_iter, deliver_bitmask,
+                cpu_interrupt(apic_iter->cpu_env, CPU_INTERRUPT_NMI) );
+            return;
 
         case APIC_DM_INIT:
             /* normal INIT IPI sent to processors */