|
@@ -37,11 +37,18 @@ struct iommu_domain;
|
|
|
typedef int (*iommu_fault_handler_t)(struct iommu_domain *,
|
|
|
struct device *, unsigned long, int, void *);
|
|
|
|
|
|
+struct iommu_domain_geometry {
|
|
|
+ dma_addr_t aperture_start; /* First address that can be mapped */
|
|
|
+ dma_addr_t aperture_end; /* Last address that can be mapped */
|
|
|
+ bool force_aperture; /* DMA only allowed in mappable range? */
|
|
|
+};
|
|
|
+
|
|
|
struct iommu_domain {
|
|
|
struct iommu_ops *ops;
|
|
|
void *priv;
|
|
|
iommu_fault_handler_t handler;
|
|
|
void *handler_token;
|
|
|
+ struct iommu_domain_geometry geometry;
|
|
|
};
|
|
|
|
|
|
#define IOMMU_CAP_CACHE_COHERENCY 0x1
|
|
@@ -49,6 +56,7 @@ struct iommu_domain {
|
|
|
|
|
|
enum iommu_attr {
|
|
|
DOMAIN_ATTR_MAX,
|
|
|
+ DOMAIN_ATTR_GEOMETRY,
|
|
|
};
|
|
|
|
|
|
#ifdef CONFIG_IOMMU_API
|