1 /* SPDX-License-Identifier: GPL-2.0-only */ << 2 /* 1 /* 3 * omap iommu: simple virtual address space ma 2 * omap iommu: simple virtual address space management 4 * 3 * 5 * Copyright (C) 2008-2009 Nokia Corporation 4 * Copyright (C) 2008-2009 Nokia Corporation 6 * 5 * 7 * Written by Hiroshi DOYU <Hiroshi.DOYU@nokia 6 * Written by Hiroshi DOYU <Hiroshi.DOYU@nokia.com> >> 7 * >> 8 * This program is free software; you can redistribute it and/or modify >> 9 * it under the terms of the GNU General Public License version 2 as >> 10 * published by the Free Software Foundation. 8 */ 11 */ 9 12 10 #ifndef _OMAP_IOMMU_H_ !! 13 #ifndef _INTEL_IOMMU_H_ 11 #define _OMAP_IOMMU_H_ !! 14 #define _INTEL_IOMMU_H_ >> 15 >> 16 struct iovm_struct { >> 17 struct omap_iommu *iommu; /* iommu object which this belongs to */ >> 18 u32 da_start; /* area definition */ >> 19 u32 da_end; >> 20 u32 flags; /* IOVMF_: see below */ >> 21 struct list_head list; /* linked in ascending order */ >> 22 const struct sg_table *sgt; /* keep 'page' <-> 'da' mapping */ >> 23 void *va; /* mpu side mapped address */ >> 24 }; >> 25 >> 26 #define MMU_RAM_ENDIAN_SHIFT 9 >> 27 #define MMU_RAM_ENDIAN_LITTLE (0 << MMU_RAM_ENDIAN_SHIFT) >> 28 #define MMU_RAM_ELSZ_8 (0 << MMU_RAM_ELSZ_SHIFT) >> 29 #define IOVMF_ENDIAN_LITTLE MMU_RAM_ENDIAN_LITTLE >> 30 #define MMU_RAM_ELSZ_SHIFT 7 >> 31 #define IOVMF_ELSZ_8 MMU_RAM_ELSZ_8 12 32 13 struct iommu_domain; 33 struct iommu_domain; 14 34 15 #ifdef CONFIG_OMAP_IOMMU !! 35 extern struct iovm_struct *omap_find_iovm_area(struct device *dev, u32 da); >> 36 extern u32 >> 37 omap_iommu_vmap(struct iommu_domain *domain, struct device *dev, u32 da, >> 38 const struct sg_table *sgt, u32 flags); >> 39 extern struct sg_table *omap_iommu_vunmap(struct iommu_domain *domain, >> 40 struct device *dev, u32 da); >> 41 extern u32 >> 42 omap_iommu_vmalloc(struct iommu_domain *domain, struct device *dev, >> 43 u32 da, size_t bytes, u32 flags); >> 44 extern void >> 45 omap_iommu_vfree(struct iommu_domain *domain, struct device *dev, >> 46 const u32 da); >> 47 extern void *omap_da_to_va(struct device *dev, u32 da); >> 48 16 extern void omap_iommu_save_ctx(struct device 49 extern void omap_iommu_save_ctx(struct device *dev); 17 extern void omap_iommu_restore_ctx(struct devi 50 extern void omap_iommu_restore_ctx(struct device *dev); 18 << 19 int omap_iommu_domain_deactivate(struct iommu_ << 20 int omap_iommu_domain_activate(struct iommu_do << 21 #else << 22 static inline void omap_iommu_save_ctx(struct << 23 static inline void omap_iommu_restore_ctx(stru << 24 << 25 static inline int omap_iommu_domain_deactivate << 26 { << 27 return -ENODEV; << 28 } << 29 << 30 static inline int omap_iommu_domain_activate(s << 31 { << 32 return -ENODEV; << 33 } << 34 #endif << 35 51 36 #endif 52 #endif 37 53
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.