mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 16:53: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
7
hw/pci.h
7
hw/pci.h
|
@ -182,6 +182,7 @@ typedef struct PCIDeviceClass {
|
|||
const char *romfile;
|
||||
} PCIDeviceClass;
|
||||
|
||||
typedef void (*PCIINTxRoutingNotifier)(PCIDevice *dev);
|
||||
typedef int (*MSIVectorUseNotifier)(PCIDevice *dev, unsigned int vector,
|
||||
MSIMessage msg);
|
||||
typedef void (*MSIVectorReleaseNotifier)(PCIDevice *dev, unsigned int vector);
|
||||
|
@ -259,6 +260,9 @@ struct PCIDevice {
|
|||
MemoryRegion rom;
|
||||
uint32_t rom_bar;
|
||||
|
||||
/* INTx routing notifier */
|
||||
PCIINTxRoutingNotifier intx_routing_notifier;
|
||||
|
||||
/* MSI-X notifiers */
|
||||
MSIVectorUseNotifier msix_vector_use_notifier;
|
||||
MSIVectorReleaseNotifier msix_vector_release_notifier;
|
||||
|
@ -318,6 +322,9 @@ PCIBus *pci_register_bus(DeviceState *parent, const char *name,
|
|||
uint8_t devfn_min, int nirq);
|
||||
void pci_bus_set_route_irq_fn(PCIBus *, pci_route_irq_fn);
|
||||
PCIINTxRoute pci_device_route_intx_to_irq(PCIDevice *dev, int pin);
|
||||
void pci_bus_fire_intx_routing_notifier(PCIBus *bus);
|
||||
void pci_device_set_intx_routing_notifier(PCIDevice *dev,
|
||||
PCIINTxRoutingNotifier notifier);
|
||||
void pci_device_reset(PCIDevice *dev);
|
||||
void pci_bus_reset(PCIBus *bus);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue