Lines Matching refs:iovad
105 static inline unsigned long iova_shift(struct iova_domain *iovad) in iova_shift() argument
107 return __ffs(iovad->granule); in iova_shift()
110 static inline unsigned long iova_mask(struct iova_domain *iovad) in iova_mask() argument
112 return iovad->granule - 1; in iova_mask()
115 static inline size_t iova_offset(struct iova_domain *iovad, dma_addr_t iova) in iova_offset() argument
117 return iova & iova_mask(iovad); in iova_offset()
120 static inline size_t iova_align(struct iova_domain *iovad, size_t size) in iova_align() argument
122 return ALIGN(size, iovad->granule); in iova_align()
125 static inline dma_addr_t iova_dma_addr(struct iova_domain *iovad, struct iova *iova) in iova_dma_addr() argument
127 return (dma_addr_t)iova->pfn_lo << iova_shift(iovad); in iova_dma_addr()
130 static inline unsigned long iova_pfn(struct iova_domain *iovad, dma_addr_t iova) in iova_pfn() argument
132 return iova >> iova_shift(iovad); in iova_pfn()
141 void free_iova(struct iova_domain *iovad, unsigned long pfn);
142 void __free_iova(struct iova_domain *iovad, struct iova *iova);
143 struct iova *alloc_iova(struct iova_domain *iovad, unsigned long size,
146 void free_iova_fast(struct iova_domain *iovad, unsigned long pfn,
148 void queue_iova(struct iova_domain *iovad,
151 unsigned long alloc_iova_fast(struct iova_domain *iovad, unsigned long size,
153 struct iova *reserve_iova(struct iova_domain *iovad, unsigned long pfn_lo,
156 void init_iova_domain(struct iova_domain *iovad, unsigned long granule,
158 bool has_iova_flush_queue(struct iova_domain *iovad);
159 int init_iova_flush_queue(struct iova_domain *iovad,
161 struct iova *find_iova(struct iova_domain *iovad, unsigned long pfn);
162 void put_iova_domain(struct iova_domain *iovad);
163 struct iova *split_and_remove_iova(struct iova_domain *iovad,
165 void free_cpu_cached_iovas(unsigned int cpu, struct iova_domain *iovad);
185 static inline void free_iova(struct iova_domain *iovad, unsigned long pfn) in free_iova() argument
189 static inline void __free_iova(struct iova_domain *iovad, struct iova *iova) in __free_iova() argument
193 static inline struct iova *alloc_iova(struct iova_domain *iovad, in alloc_iova() argument
201 static inline void free_iova_fast(struct iova_domain *iovad, in free_iova_fast() argument
207 static inline void queue_iova(struct iova_domain *iovad, in queue_iova() argument
213 static inline unsigned long alloc_iova_fast(struct iova_domain *iovad, in alloc_iova_fast() argument
221 static inline struct iova *reserve_iova(struct iova_domain *iovad, in reserve_iova() argument
233 static inline void init_iova_domain(struct iova_domain *iovad, in init_iova_domain() argument
239 static inline bool has_iova_flush_queue(struct iova_domain *iovad) in has_iova_flush_queue() argument
244 static inline int init_iova_flush_queue(struct iova_domain *iovad, in init_iova_flush_queue() argument
251 static inline struct iova *find_iova(struct iova_domain *iovad, in find_iova() argument
257 static inline void put_iova_domain(struct iova_domain *iovad) in put_iova_domain() argument
261 static inline struct iova *split_and_remove_iova(struct iova_domain *iovad, in split_and_remove_iova() argument
270 struct iova_domain *iovad) in free_cpu_cached_iovas() argument