mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
pci: Add INTx routing notifier
This per-device notifier shall be triggered by any interrupt router along the path of a device's legacy interrupt signal on routing changes. For simplicity reasons and as this is a slow path anyway, no further details on the routing changes are provided. Instead, the callback is expected to use pci_device_route_intx_to_irq to check the effect of the change. Will be used by KVM PCI device assignment and VFIO. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
3afa9bb488
commit
0ae1625177
3 changed files with 32 additions and 0 deletions
23
hw/pci.c
23
hw/pci.c
|
@ -1086,6 +1086,29 @@ PCIINTxRoute pci_device_route_intx_to_irq(PCIDevice *dev, int pin)
|
|||
return bus->route_intx_to_irq(bus->irq_opaque, pin);
|
||||
}
|
||||
|
||||
void pci_bus_fire_intx_routing_notifier(PCIBus *bus)
|
||||
{
|
||||
PCIDevice *dev;
|
||||
PCIBus *sec;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(bus->devices); ++i) {
|
||||
dev = bus->devices[i];
|
||||
if (dev && dev->intx_routing_notifier) {
|
||||
dev->intx_routing_notifier(dev);
|
||||
}
|
||||
QLIST_FOREACH(sec, &bus->child, sibling) {
|
||||
pci_bus_fire_intx_routing_notifier(sec);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void pci_device_set_intx_routing_notifier(PCIDevice *dev,
|
||||
PCIINTxRoutingNotifier notifier)
|
||||
{
|
||||
dev->intx_routing_notifier = notifier;
|
||||
}
|
||||
|
||||
/***********************************************************/
|
||||
/* monitor info on PCI */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue