summaryrefslogtreecommitdiffstats
path: root/include/linux/iommu.h
diff options
context:
space:
mode:
authorRobin Murphy <robin.murphy@arm.com>2015-10-01 20:13:58 +0100
committerJoerg Roedel <jroedel@suse.de>2015-10-15 16:41:04 +0200
commit0db2e5d18f76a66ca945447d9f610bed0a94ca5a (patch)
tree0c3d896165c2bd071eacdb06879082fcc0c32a12 /include/linux/iommu.h
parent25cb62b76430a91cc6195f902e61c2cb84ade622 (diff)
downloadop-kernel-dev-0db2e5d18f76a66ca945447d9f610bed0a94ca5a.zip
op-kernel-dev-0db2e5d18f76a66ca945447d9f610bed0a94ca5a.tar.gz
iommu: Implement common IOMMU ops for DMA mapping
Taking inspiration from the existing arch/arm code, break out some generic functions to interface the DMA-API to the IOMMU-API. This will do the bulk of the heavy lifting for IOMMU-backed dma-mapping. Since associating an IOVA allocator with an IOMMU domain is a fairly common need, rather than introduce yet another private structure just to do this for ourselves, extend the top-level struct iommu_domain with the notion. A simple opaque cookie allows reuse by other IOMMU API users with their various different incompatible allocator types. Signed-off-by: Robin Murphy <robin.murphy@arm.com> Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'include/linux/iommu.h')
-rw-r--r--include/linux/iommu.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/iommu.h b/include/linux/iommu.h
index f9c1b6d..f174506 100644
--- a/include/linux/iommu.h
+++ b/include/linux/iommu.h
@@ -81,6 +81,7 @@ struct iommu_domain {
iommu_fault_handler_t handler;
void *handler_token;
struct iommu_domain_geometry geometry;
+ void *iova_cookie;
};
enum iommu_cap {
OpenPOWER on IntegriCloud