diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2012-03-28 15:42:03 +0200 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2012-03-30 08:14:11 -0500 |
commit | 2028834574e75de9d34995fbaf09a8b35cb9daa0 (patch) | |
tree | cc9f2793d563582b1aa8fa7666293260753cac11 /hw/irq.c | |
parent | c7f0f3b1c826901358a0656f80a5fabb88f73c61 (diff) | |
download | qemu-2028834574e75de9d34995fbaf09a8b35cb9daa0.zip qemu-2028834574e75de9d34995fbaf09a8b35cb9daa0.tar.gz qemu-2028834574e75de9d34995fbaf09a8b35cb9daa0.tar.bz2 |
qtest: IRQ interception infrastructure
Since /i440fx/piix3 is being removed from the composition tree, the
IO-APIC is placed under /i440fx. This is wrong and should be changed
as soon as the /i440fx/piix3 path is put back.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'hw/irq.c')
-rw-r--r-- | hw/irq.c | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -104,3 +104,20 @@ qemu_irq *qemu_irq_proxy(qemu_irq **target, int n) { return qemu_allocate_irqs(proxy_irq_handler, target, n); } + +void qemu_irq_intercept_in(qemu_irq *gpio_in, qemu_irq_handler handler, int n) +{ + int i; + qemu_irq *old_irqs = qemu_allocate_irqs(NULL, NULL, n); + for (i = 0; i < n; i++) { + *old_irqs[i] = *gpio_in[i]; + gpio_in[i]->handler = handler; + gpio_in[i]->opaque = old_irqs; + } +} + +void qemu_irq_intercept_out(qemu_irq **gpio_out, qemu_irq_handler handler, int n) +{ + qemu_irq *old_irqs = *gpio_out; + *gpio_out = qemu_allocate_irqs(handler, old_irqs, n); +} |