summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorSergio Andres Gomez Del Real <sergio.g.delreal@gmail.com>2017-09-13 04:05:15 -0500
committerPaolo Bonzini <pbonzini@redhat.com>2017-12-22 15:01:19 +0100
commit2cb9f06e3d2c8649166a95e01b05433fa9d14384 (patch)
tree34df01dea4f23c5440f91cffc83187d58481cd5e
parent43ab9a5376c95c61ae898a222c4d04bdf60e239b (diff)
downloadfocaccia-qemu-2cb9f06e3d2c8649166a95e01b05433fa9d14384.tar.gz
focaccia-qemu-2cb9f06e3d2c8649166a95e01b05433fa9d14384.zip
apic: add function to apic that will be used by hvf
This patch adds the function apic_get_highest_priority_irr to
apic.c and exports it through the interface in apic.h for use by hvf.

Signed-off-by: Sergio Andres Gomez Del Real <Sergio.G.DelReal@gmail.com>
Message-Id: <20170913090522.4022-8-Sergio.G.DelReal@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--hw/intc/apic.c12
-rw-r--r--include/hw/i386/apic.h1
2 files changed, 13 insertions, 0 deletions
diff --git a/hw/intc/apic.c b/hw/intc/apic.c
index fe15fb6024..6fda52b86c 100644
--- a/hw/intc/apic.c
+++ b/hw/intc/apic.c
@@ -305,6 +305,18 @@ static void apic_set_tpr(APICCommonState *s, uint8_t val)
     }
 }
 
+int apic_get_highest_priority_irr(DeviceState *dev)
+{
+    APICCommonState *s;
+
+    if (!dev) {
+        /* no interrupts */
+        return -1;
+    }
+    s = APIC_COMMON(dev);
+    return get_highest_priority_int(s->irr);
+}
+
 static uint8_t apic_get_tpr(APICCommonState *s)
 {
     apic_sync_vapic(s, SYNC_FROM_VAPIC);
diff --git a/include/hw/i386/apic.h b/include/hw/i386/apic.h
index ea48ea9389..a9f6c0aa33 100644
--- a/include/hw/i386/apic.h
+++ b/include/hw/i386/apic.h
@@ -20,6 +20,7 @@ void apic_init_reset(DeviceState *s);
 void apic_sipi(DeviceState *s);
 void apic_poll_irq(DeviceState *d);
 void apic_designate_bsp(DeviceState *d, bool bsp);
+int apic_get_highest_priority_irr(DeviceState *dev);
 
 /* pc.c */
 DeviceState *cpu_get_current_apic(void);