diff --git a/hw/irq.c b/hw/irq.c index eca707dd06..7703f62c6c 100644 --- a/hw/irq.c +++ b/hw/irq.c @@ -56,6 +56,12 @@ qemu_irq *qemu_allocate_irqs(qemu_irq_handler handler, void *opaque, int n) return s; } +void qemu_free_irqs(qemu_irq *s) +{ + qemu_free(s[0]); + qemu_free(s); +} + static void qemu_notirq(void *opaque, int line, int level) { struct IRQState *irq = opaque; diff --git a/hw/irq.h b/hw/irq.h index 0880ad21b0..5daae44909 100644 --- a/hw/irq.h +++ b/hw/irq.h @@ -27,6 +27,7 @@ static inline void qemu_irq_pulse(qemu_irq irq) /* Returns an array of N IRQs. */ qemu_irq *qemu_allocate_irqs(qemu_irq_handler handler, void *opaque, int n); +void qemu_free_irqs(qemu_irq *s); /* Returns a new IRQ with opposite polarity. */ qemu_irq qemu_irq_invert(qemu_irq irq);