summary refs log tree commit diff stats
path: root/include
diff options
context:
space:
mode:
authorBALATON Zoltan <balaton@eik.bme.hu>2024-06-29 22:01:53 +0200
committerMichael S. Tsirkin <mst@redhat.com>2024-09-11 07:20:30 -0400
commite72a7f65c11565d2f216711588a4e767a1f6cd80 (patch)
tree2e0d2eaaf20ede9ddf8d9ba7248eb1f3af69d2ab /include
parent2688e8df60f5a655dc34c5e38523e425556f8483 (diff)
downloadfocaccia-qemu-e72a7f65c11565d2f216711588a4e767a1f6cd80.tar.gz
focaccia-qemu-e72a7f65c11565d2f216711588a4e767a1f6cd80.zip
hw: Move declaration of IRQState to header and add init function
To allow embedding a qemu_irq in a struct move its definition to the
header and add a function to init it in place without allocating it.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <e3ffd0f6ef8845d0f7247c9b6ff33f7ee8b432cf.1719690591.git.balaton@eik.bme.hu>
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Diffstat (limited to 'include')
-rw-r--r--include/hw/irq.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/include/hw/irq.h b/include/hw/irq.h
index 645b73d251..c861c1debd 100644
--- a/include/hw/irq.h
+++ b/include/hw/irq.h
@@ -1,9 +1,20 @@
 #ifndef QEMU_IRQ_H
 #define QEMU_IRQ_H
 
+#include "qom/object.h"
+
 /* Generic IRQ/GPIO pin infrastructure.  */
 
 #define TYPE_IRQ "irq"
+OBJECT_DECLARE_SIMPLE_TYPE(IRQState, IRQ)
+
+struct IRQState {
+    Object parent_obj;
+
+    qemu_irq_handler handler;
+    void *opaque;
+    int n;
+};
 
 void qemu_set_irq(qemu_irq irq, int level);
 
@@ -23,6 +34,13 @@ static inline void qemu_irq_pulse(qemu_irq irq)
     qemu_set_irq(irq, 0);
 }
 
+/*
+ * Init a single IRQ. The irq is assigned with a handler, an opaque data
+ * and the interrupt number.
+ */
+void qemu_init_irq(IRQState *irq, qemu_irq_handler handler, void *opaque,
+                   int n);
+
 /* Returns an array of N IRQs. Each IRQ is assigned the argument handler and
  * opaque data.
  */