Lines Matching refs:iovad
41 static inline unsigned long iova_shift(struct iova_domain *iovad) in iova_shift() argument
43 return __ffs(iovad->granule); in iova_shift()
46 static inline unsigned long iova_mask(struct iova_domain *iovad) in iova_mask() argument
48 return iovad->granule - 1; in iova_mask()
51 static inline size_t iova_offset(struct iova_domain *iovad, dma_addr_t iova) in iova_offset() argument
53 return iova & iova_mask(iovad); in iova_offset()
56 static inline size_t iova_align(struct iova_domain *iovad, size_t size) in iova_align() argument
58 return ALIGN(size, iovad->granule); in iova_align()
61 static inline dma_addr_t iova_dma_addr(struct iova_domain *iovad, struct iova *iova) in iova_dma_addr() argument
63 return (dma_addr_t)iova->pfn_lo << iova_shift(iovad); in iova_dma_addr()
66 static inline unsigned long iova_pfn(struct iova_domain *iovad, dma_addr_t iova) in iova_pfn() argument
68 return iova >> iova_shift(iovad); in iova_pfn()
76 void free_iova(struct iova_domain *iovad, unsigned long pfn);
77 void __free_iova(struct iova_domain *iovad, struct iova *iova);
78 struct iova *alloc_iova(struct iova_domain *iovad, unsigned long size,
81 struct iova *reserve_iova(struct iova_domain *iovad, unsigned long pfn_lo,
84 void init_iova_domain(struct iova_domain *iovad, unsigned long granule,
86 struct iova *find_iova(struct iova_domain *iovad, unsigned long pfn);
87 void put_iova_domain(struct iova_domain *iovad);
88 struct iova *split_and_remove_iova(struct iova_domain *iovad,