Lines Matching refs:iovad

106 static inline unsigned long iova_shift(struct iova_domain *iovad)
108 return __ffs(iovad->granule);
111 static inline unsigned long iova_mask(struct iova_domain *iovad)
113 return iovad->granule - 1;
116 static inline size_t iova_offset(struct iova_domain *iovad, dma_addr_t iova)
118 return iova & iova_mask(iovad);
121 static inline size_t iova_align(struct iova_domain *iovad, size_t size)
123 return ALIGN(size, iovad->granule);
126 static inline dma_addr_t iova_dma_addr(struct iova_domain *iovad, struct iova *iova)
128 return (dma_addr_t)iova->pfn_lo << iova_shift(iovad);
131 static inline unsigned long iova_pfn(struct iova_domain *iovad, dma_addr_t iova)
133 return iova >> iova_shift(iovad);
142 void free_iova(struct iova_domain *iovad, unsigned long pfn);
143 void __free_iova(struct iova_domain *iovad, struct iova *iova);
144 struct iova *alloc_iova(struct iova_domain *iovad, unsigned long size, unsigned long limit_pfn, bool size_aligned);
145 void free_iova_fast(struct iova_domain *iovad, unsigned long pfn, unsigned long size);
146 void queue_iova(struct iova_domain *iovad, unsigned long pfn, unsigned long pages, unsigned long data);
147 unsigned long alloc_iova_fast(struct iova_domain *iovad, unsigned long size, unsigned long limit_pfn,
149 struct iova *reserve_iova(struct iova_domain *iovad, unsigned long pfn_lo, unsigned long pfn_hi);
151 void init_iova_domain(struct iova_domain *iovad, unsigned long granule, unsigned long start_pfn);
152 bool has_iova_flush_queue(struct iova_domain *iovad);
153 int init_iova_flush_queue(struct iova_domain *iovad, iova_flush_cb flush_cb, iova_entry_dtor entry_dtor);
154 struct iova *find_iova(struct iova_domain *iovad, unsigned long pfn);
155 void put_iova_domain(struct iova_domain *iovad);
156 struct iova *split_and_remove_iova(struct iova_domain *iovad, struct iova *iova, unsigned long pfn_lo,
158 void free_cpu_cached_iovas(unsigned int cpu, struct iova_domain *iovad);
178 static inline void free_iova(struct iova_domain *iovad, unsigned long pfn)
182 static inline void __free_iova(struct iova_domain *iovad, struct iova *iova)
186 static inline struct iova *alloc_iova(struct iova_domain *iovad, unsigned long size, unsigned long limit_pfn,
192 static inline void free_iova_fast(struct iova_domain *iovad, unsigned long pfn, unsigned long size)
196 static inline void queue_iova(struct iova_domain *iovad, unsigned long pfn, unsigned long pages, unsigned long data)
200 static inline unsigned long alloc_iova_fast(struct iova_domain *iovad, unsigned long size, unsigned long limit_pfn,
206 static inline struct iova *reserve_iova(struct iova_domain *iovad, unsigned long pfn_lo, unsigned long pfn_hi)
215 static inline void init_iova_domain(struct iova_domain *iovad, unsigned long granule, unsigned long start_pfn)
219 static inline bool has_iova_flush_queue(struct iova_domain *iovad)
224 static inline int init_iova_flush_queue(struct iova_domain *iovad, iova_flush_cb flush_cb, iova_entry_dtor entry_dtor)
229 static inline struct iova *find_iova(struct iova_domain *iovad, unsigned long pfn)
234 static inline void put_iova_domain(struct iova_domain *iovad)
238 static inline struct iova *split_and_remove_iova(struct iova_domain *iovad, struct iova *iova, unsigned long pfn_lo,
244 static inline void free_cpu_cached_iovas(unsigned int cpu, struct iova_domain *iovad)