[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 07/11] sysbus: add irq_routing_notifier
From: |
Alex Williamson |
Subject: |
[Qemu-devel] [PULL 07/11] sysbus: add irq_routing_notifier |
Date: |
Mon, 06 Jul 2015 12:35:17 -0600 |
User-agent: |
StGit/0.17.1-dirty |
From: Eric Auger <address@hidden>
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 <address@hidden>
Reviewed-by: Peter Crosthwaite <address@hidden>
Tested-by: Vikram Sethi <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Alex Williamson <address@hidden>
---
hw/core/sysbus.c | 6 ++++++
include/hw/sysbus.h | 1 +
2 files changed, 7 insertions(+)
diff --git a/hw/core/sysbus.c b/hw/core/sysbus.c
index 278a2d1..3c58629 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 */
diff --git a/include/hw/sysbus.h b/include/hw/sysbus.h
index 34f93c3..cc1dba4 100644
--- a/include/hw/sysbus.h
+++ b/include/hw/sysbus.h
@@ -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 {
- [Qemu-devel] [PULL 00/11] VFIO updates for 2.4-rc0, Alex Williamson, 2015/07/06
- [Qemu-devel] [PULL 02/11] cpu-all: complete "real" host page size API, Alex Williamson, 2015/07/06
- [Qemu-devel] [PULL 06/11] intc: arm_gic_kvm: set the qemu_irq/gsi mapping, Alex Williamson, 2015/07/06
- [Qemu-devel] [PULL 07/11] sysbus: add irq_routing_notifier,
Alex Williamson <=
- [Qemu-devel] [PULL 08/11] kvm: some fixes to kvm_resamplefds_allowed, Alex Williamson, 2015/07/06
- [Qemu-devel] [PULL 09/11] hw/vfio/platform: add irqfd support, Alex Williamson, 2015/07/06
- [Qemu-devel] [PULL 10/11] vfio: Unregister IOMMU notifiers when container is destroyed, Alex Williamson, 2015/07/06
- [Qemu-devel] [PULL 11/11] vfio/pci : Add pba_offset PCI quirk for Chelsio T5 devices, Alex Williamson, 2015/07/06
- [Qemu-devel] [PULL 01/11] vfio: fix return type of pread, Alex Williamson, 2015/07/06
- [Qemu-devel] [PULL 03/11] vfio: cpu: Use "real" page size API, Alex Williamson, 2015/07/06
- [Qemu-devel] [PULL 05/11] kvm-all.c: add qemu_irq/gsi hash table and utility routines, Alex Williamson, 2015/07/06
- [Qemu-devel] [PULL 04/11] kvm: rename kvm_irqchip_[add, remove]_irqfd_notifier with gsi suffix, Alex Williamson, 2015/07/06
- Re: [Qemu-devel] [PULL 00/11] VFIO updates for 2.4-rc0, Peter Maydell, 2015/07/07