1eef905a8SJean-Sébastien Pédron /* Public domain. */
2eef905a8SJean-Sébastien Pédron 
3eef905a8SJean-Sébastien Pédron #ifndef _LINUXKPI_LINUX_IOMMU_H_
4eef905a8SJean-Sébastien Pédron #define	_LINUXKPI_LINUX_IOMMU_H_
5eef905a8SJean-Sébastien Pédron 
6eef905a8SJean-Sébastien Pédron #include <linux/device.h>
7eef905a8SJean-Sébastien Pédron 
8eef905a8SJean-Sébastien Pédron #define	__IOMMU_DOMAIN_PAGING	(1U << 0)
9eef905a8SJean-Sébastien Pédron #define	__IOMMU_DOMAIN_DMA_API	(1U << 1)
10eef905a8SJean-Sébastien Pédron #define	__IOMMU_DOMAIN_PT	(1U << 2)
11eef905a8SJean-Sébastien Pédron #define	__IOMMU_DOMAIN_DMA_FQ	(1U << 3)
12eef905a8SJean-Sébastien Pédron 
13eef905a8SJean-Sébastien Pédron #define	IOMMU_DOMAIN_BLOCKED	(0U)
14eef905a8SJean-Sébastien Pédron #define	IOMMU_DOMAIN_IDENTITY	(__IOMMU_DOMAIN_PT)
15eef905a8SJean-Sébastien Pédron #define	IOMMU_DOMAIN_UNMANAGED	(__IOMMU_DOMAIN_PAGING)
16eef905a8SJean-Sébastien Pédron #define	IOMMU_DOMAIN_DMA	(__IOMMU_DOMAIN_PAGING | __IOMMU_DOMAIN_DMA_API)
17eef905a8SJean-Sébastien Pédron #define	IOMMU_DOMAIN_DMA_FQ	(__IOMMU_DOMAIN_PAGING | __IOMMU_DOMAIN_DMA_API | __IOMMU_DOMAIN_DMA_FQ)
18eef905a8SJean-Sébastien Pédron 
19eef905a8SJean-Sébastien Pédron struct iommu_domain {
20eef905a8SJean-Sébastien Pédron 	unsigned int type;
21eef905a8SJean-Sébastien Pédron };
22eef905a8SJean-Sébastien Pédron 
23eef905a8SJean-Sébastien Pédron static inline struct iommu_domain *
iommu_get_domain_for_dev(struct device * dev __unused)24eef905a8SJean-Sébastien Pédron iommu_get_domain_for_dev(struct device *dev __unused)
25eef905a8SJean-Sébastien Pédron {
26eef905a8SJean-Sébastien Pédron 	return (NULL);
27eef905a8SJean-Sébastien Pédron }
28eef905a8SJean-Sébastien Pédron 
29eef905a8SJean-Sébastien Pédron #endif /* _LINUXKPI_LINUX_IOMMU_H_ */
30