diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2012-06-27 14:50:45 +1000 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2012-06-27 16:33:26 -0500 |
commit | 5fa45de5623abd3a6d0b9575a4f014cbfe886b36 (patch) | |
tree | 31bc5582b36329cd3c277bb20bb776e0705833d1 /hw/pci_internals.h | |
parent | ad0ebb91cd8b5fdc4a583b03645677771f420a46 (diff) |
iommu: Allow PCI to use IOMMU infrastructure
This patch adds some hooks to let PCI devices and busses use the new IOMMU
infrastructure. When IOMMU support is enabled, each PCI device now
contains a DMAContext * which is used by the pci_dma_*() wrapper functions.
By default, the contexts are initialized to NULL, assuming no IOMMU.
However the platform or host bridge code which sets up the PCI bus can use
pci_setup_iommu() to set a function which will determine the correct
DMAContext for a given PCI device.
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'hw/pci_internals.h')
-rw-r--r-- | hw/pci_internals.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/hw/pci_internals.h b/hw/pci_internals.h index 399c6d475c..e8bc9f61eb 100644 --- a/hw/pci_internals.h +++ b/hw/pci_internals.h @@ -17,6 +17,8 @@ struct PCIBus { BusState qbus; + PCIDMAContextFunc dma_context_fn; + void *dma_context_opaque; uint8_t devfn_min; pci_set_irq_fn set_irq; pci_map_irq_fn map_irq; |