diff options
author | Eric Auger <eric.auger@linaro.org> | 2015-07-06 12:15:14 -0600 |
---|---|---|
committer | Alex Williamson <alex.williamson@redhat.com> | 2015-07-06 12:15:14 -0600 |
commit | 715ca691daca081108b33306faa6fa102f0df8d8 (patch) | |
tree | 9c4288ee4bfca1ee39e85b800141a4ae6eb5f9f5 /hw/core/sysbus.c | |
parent | 6a1a9cfa1c4a3e5b521d82e6adb94311fc5b9f8b (diff) |
sysbus: add irq_routing_notifier
Add a new connect_irq_notifier notifier in the SysBusDeviceClass. This
notifier, if populated, is called after sysbus_connect_irq.
This mechanism is used to setup VFIO signaling once VFIO platform
devices get attached to their platform bus, on a machine init done
notifier.
Signed-off-by: Eric Auger <eric.auger@linaro.org>
Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Tested-by: Vikram Sethi <vikrams@codeaurora.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Diffstat (limited to 'hw/core/sysbus.c')
-rw-r--r-- | hw/core/sysbus.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/hw/core/sysbus.c b/hw/core/sysbus.c index 278a2d1bdd..3c58629894 100644 --- a/hw/core/sysbus.c +++ b/hw/core/sysbus.c @@ -109,7 +109,13 @@ qemu_irq sysbus_get_connected_irq(SysBusDevice *dev, int n) void sysbus_connect_irq(SysBusDevice *dev, int n, qemu_irq irq) { + SysBusDeviceClass *sbd = SYS_BUS_DEVICE_GET_CLASS(dev); + qdev_connect_gpio_out_named(DEVICE(dev), SYSBUS_DEVICE_GPIO_IRQ, n, irq); + + if (sbd->connect_irq_notifier) { + sbd->connect_irq_notifier(dev, irq); + } } /* Check whether an MMIO region exists */ |