PCI subsystem
API Reference
- 
struct PCIIOMMUOps
- callbacks structure for specific IOMMU handlers of a PCIBus 
Definition
struct PCIIOMMUOps {
  AddressSpace * (*get_address_space)(PCIBus *bus, void *opaque, int devfn);
  bool (*set_iommu_device)(PCIBus *bus, void *opaque, int devfn, HostIOMMUDevice *dev, Error **errp);
  void (*unset_iommu_device)(PCIBus *bus, void *opaque, int devfn);
};
Members
- get_address_space
- get the address space for a set of devices on a PCI bus. - Mandatory callback which returns a pointer to an - AddressSpace- bus: the - PCIBusbeing accessed.- opaque: the data passed to pci_setup_iommu(). - devfn: device and function number 
- set_iommu_device
- attach a HostIOMMUDevice to a vIOMMU - Optional callback, if not implemented in vIOMMU, then vIOMMU can’t retrieve host information from the associated HostIOMMUDevice. - bus: the - PCIBusof the PCI device.- opaque: the data passed to pci_setup_iommu(). - devfn: device and function number of the PCI device. - dev: the - HostIOMMUDeviceto attach.- errp: pass an Error out only when return false - Returns: true if HostIOMMUDevice is attached or else false with errp set. 
- unset_iommu_device
- detach a HostIOMMUDevice from a vIOMMU - Optional callback. - bus: the - PCIBusof the PCI device.- opaque: the data passed to pci_setup_iommu(). - devfn: device and function number of the PCI device. 
Description
Allows to modify the behavior of some IOMMU operations of the PCI framework for a set of devices on a PCI bus.
- 
void pci_setup_iommu(PCIBus *bus, const PCIIOMMUOps *ops, void *opaque)
- Initialize specific IOMMU handlers for a PCIBus 
Parameters
- PCIBus *bus
- the - PCIBusbeing updated.
- const PCIIOMMUOps *ops
- the - PCIIOMMUOps
- void *opaque
- passed to callbacks of the ops structure. 
Description
Let PCI host bridges define specific operations.