Lines Matching full:domain

119  * iommu_set_fault_handler() - set a fault handler for an iommu domain
120 * @domain: iommu domain
129 void iommu_set_fault_handler(struct iommu_domain *domain, in iommu_set_fault_handler() argument
132 BUG_ON(!domain); in iommu_set_fault_handler()
134 domain->handler = handler; in iommu_set_fault_handler()
140 struct iommu_domain *domain; in iommu_domain_alloc() local
146 domain = kzalloc(sizeof(*domain), GFP_KERNEL); in iommu_domain_alloc()
147 if (!domain) in iommu_domain_alloc()
150 domain->ops = bus->iommu_ops; in iommu_domain_alloc()
152 ret = domain->ops->domain_init(domain); in iommu_domain_alloc()
156 return domain; in iommu_domain_alloc()
159 kfree(domain); in iommu_domain_alloc()
165 void iommu_domain_free(struct iommu_domain *domain) in iommu_domain_free() argument
167 if (likely(domain->ops->domain_destroy != NULL)) in iommu_domain_free()
168 domain->ops->domain_destroy(domain); in iommu_domain_free()
170 kfree(domain); in iommu_domain_free()
174 int iommu_attach_device(struct iommu_domain *domain, struct device *dev) in iommu_attach_device() argument
176 if (unlikely(domain->ops->attach_dev == NULL)) in iommu_attach_device()
179 return domain->ops->attach_dev(domain, dev); in iommu_attach_device()
183 void iommu_detach_device(struct iommu_domain *domain, struct device *dev) in iommu_detach_device() argument
185 if (unlikely(domain->ops->detach_dev == NULL)) in iommu_detach_device()
188 domain->ops->detach_dev(domain, dev); in iommu_detach_device()
192 phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain, in iommu_iova_to_phys() argument
195 if (unlikely(domain->ops->iova_to_phys == NULL)) in iommu_iova_to_phys()
198 return domain->ops->iova_to_phys(domain, iova); in iommu_iova_to_phys()
202 int iommu_domain_has_cap(struct iommu_domain *domain, in iommu_domain_has_cap() argument
205 if (unlikely(domain->ops->domain_has_cap == NULL)) in iommu_domain_has_cap()
208 return domain->ops->domain_has_cap(domain, cap); in iommu_domain_has_cap()
212 int iommu_map(struct iommu_domain *domain, unsigned long iova, in iommu_map() argument
220 if (unlikely(domain->ops->map == NULL)) in iommu_map()
224 min_pagesz = 1 << __ffs(domain->ops->pgsize_bitmap); in iommu_map()
260 pgsize &= domain->ops->pgsize_bitmap; in iommu_map()
272 ret = domain->ops->map(domain, iova, paddr, pgsize, prot); in iommu_map()
283 iommu_unmap(domain, orig_iova, orig_size - size); in iommu_map()
289 size_t iommu_unmap(struct iommu_domain *domain, unsigned long iova, size_t size) in iommu_unmap() argument
294 if (unlikely(domain->ops->unmap == NULL)) in iommu_unmap()
298 min_pagesz = 1 << __ffs(domain->ops->pgsize_bitmap); in iommu_unmap()
321 unmapped_page = domain->ops->unmap(domain, iova, left); in iommu_unmap()