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édroniommu_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