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>
This commit is contained in:
parent
6a1a9cfa1c
commit
715ca691da
@ -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 */
|
||||
|
@ -58,6 +58,7 @@ typedef struct SysBusDeviceClass {
|
||||
* omitted then. (This is not considered a fatal error.)
|
||||
*/
|
||||
char *(*explicit_ofw_unit_address)(const SysBusDevice *dev);
|
||||
void (*connect_irq_notifier)(SysBusDevice *dev, qemu_irq irq);
|
||||
} SysBusDeviceClass;
|
||||
|
||||
struct SysBusDevice {
|
||||
|
Loading…
Reference in New Issue
Block a user