Lines Matching refs:iovad
48 static inline unsigned long iova_shift(struct iova_domain *iovad) in iova_shift() argument
50 return __ffs(iovad->granule); in iova_shift()
53 static inline unsigned long iova_mask(struct iova_domain *iovad) in iova_mask() argument
55 return iovad->granule - 1; in iova_mask()
58 static inline size_t iova_offset(struct iova_domain *iovad, dma_addr_t iova) in iova_offset() argument
60 return iova & iova_mask(iovad); in iova_offset()
63 static inline size_t iova_align(struct iova_domain *iovad, size_t size) in iova_align() argument
65 return ALIGN(size, iovad->granule); in iova_align()
68 static inline size_t iova_align_down(struct iova_domain *iovad, size_t size) in iova_align_down() argument
70 return ALIGN_DOWN(size, iovad->granule); in iova_align_down()
73 static inline dma_addr_t iova_dma_addr(struct iova_domain *iovad, struct iova *iova) in iova_dma_addr() argument
75 return (dma_addr_t)iova->pfn_lo << iova_shift(iovad); in iova_dma_addr()
78 static inline unsigned long iova_pfn(struct iova_domain *iovad, dma_addr_t iova) in iova_pfn() argument
80 return iova >> iova_shift(iovad); in iova_pfn()
89 void free_iova(struct iova_domain *iovad, unsigned long pfn);
90 void __free_iova(struct iova_domain *iovad, struct iova *iova);
91 struct iova *alloc_iova(struct iova_domain *iovad, unsigned long size,
94 void free_iova_fast(struct iova_domain *iovad, unsigned long pfn,
96 unsigned long alloc_iova_fast(struct iova_domain *iovad, unsigned long size,
98 struct iova *reserve_iova(struct iova_domain *iovad, unsigned long pfn_lo,
100 void init_iova_domain(struct iova_domain *iovad, unsigned long granule,
102 int iova_domain_init_rcaches(struct iova_domain *iovad);
103 struct iova *find_iova(struct iova_domain *iovad, unsigned long pfn);
104 void put_iova_domain(struct iova_domain *iovad);
115 static inline void free_iova(struct iova_domain *iovad, unsigned long pfn) in free_iova() argument
119 static inline void __free_iova(struct iova_domain *iovad, struct iova *iova) in __free_iova() argument
123 static inline struct iova *alloc_iova(struct iova_domain *iovad, in alloc_iova() argument
131 static inline void free_iova_fast(struct iova_domain *iovad, in free_iova_fast() argument
137 static inline unsigned long alloc_iova_fast(struct iova_domain *iovad, in alloc_iova_fast() argument
145 static inline struct iova *reserve_iova(struct iova_domain *iovad, in reserve_iova() argument
152 static inline void init_iova_domain(struct iova_domain *iovad, in init_iova_domain() argument
158 static inline struct iova *find_iova(struct iova_domain *iovad, in find_iova() argument
164 static inline void put_iova_domain(struct iova_domain *iovad) in put_iova_domain() argument