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