]>
Commit | Line | Data |
---|---|---|
4ce63fcd MS |
1 | #ifndef ASMARM_DMA_IOMMU_H |
2 | #define ASMARM_DMA_IOMMU_H | |
3 | ||
4 | #ifdef __KERNEL__ | |
5 | ||
6 | #include <linux/mm_types.h> | |
7 | #include <linux/scatterlist.h> | |
8 | #include <linux/dma-debug.h> | |
9 | #include <linux/kmemcheck.h> | |
3e3a1823 | 10 | #include <linux/kref.h> |
4ce63fcd MS |
11 | |
12 | struct dma_iommu_mapping { | |
13 | /* iommu specific data */ | |
14 | struct iommu_domain *domain; | |
15 | ||
16 | void *bitmap; | |
17 | size_t bits; | |
18 | unsigned int order; | |
19 | dma_addr_t base; | |
20 | ||
21 | spinlock_t lock; | |
22 | struct kref kref; | |
23 | }; | |
24 | ||
25 | struct dma_iommu_mapping * | |
26 | arm_iommu_create_mapping(struct bus_type *bus, dma_addr_t base, size_t size, | |
27 | int order); | |
28 | ||
29 | void arm_iommu_release_mapping(struct dma_iommu_mapping *mapping); | |
30 | ||
31 | int arm_iommu_attach_device(struct device *dev, | |
32 | struct dma_iommu_mapping *mapping); | |
6fe36758 | 33 | void arm_iommu_detach_device(struct device *dev); |
4ce63fcd MS |
34 | |
35 | #endif /* __KERNEL__ */ | |
36 | #endif |