aboutsummaryrefslogtreecommitdiff
path: root/hw/irq.h
diff options
context:
space:
mode:
Diffstat (limited to 'hw/irq.h')
-rw-r--r--hw/irq.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/hw/irq.h b/hw/irq.h
index 652fd6abe..0880ad21b 100644
--- a/hw/irq.h
+++ b/hw/irq.h
@@ -1,8 +1,11 @@
+#ifndef QEMU_IRQ_H
+#define QEMU_IRQ_H
+
/* Generic IRQ/GPIO pin infrastructure. */
+/* FIXME: Rmove one of these. */
typedef void (*qemu_irq_handler)(void *opaque, int n, int level);
-
-typedef struct IRQState *qemu_irq;
+typedef void SetIRQFunc(void *opaque, int irq_num, int level);
void qemu_set_irq(qemu_irq irq, int level);
@@ -16,6 +19,16 @@ static inline void qemu_irq_lower(qemu_irq irq)
qemu_set_irq(irq, 0);
}
+static inline void qemu_irq_pulse(qemu_irq irq)
+{
+ qemu_set_irq(irq, 1);
+ qemu_set_irq(irq, 0);
+}
+
/* Returns an array of N IRQs. */
qemu_irq *qemu_allocate_irqs(qemu_irq_handler handler, void *opaque, int n);
+/* Returns a new IRQ with opposite polarity. */
+qemu_irq qemu_irq_invert(qemu_irq irq);
+
+#endif