Lines Matching refs:ep

82     VirtIOIOMMUEndpoint *ep;  in virtio_iommu_device_bypassed()  local
93 ep = g_tree_lookup(s->endpoints, GUINT_TO_POINTER(sid)); in virtio_iommu_device_bypassed()
94 if (!ep || !ep->domain) { in virtio_iommu_device_bypassed()
97 bypassed = ep->domain->bypass; in virtio_iommu_device_bypassed()
298 static void virtio_iommu_detach_endpoint_from_domain(VirtIOIOMMUEndpoint *ep) in virtio_iommu_detach_endpoint_from_domain() argument
300 VirtIOIOMMUDomain *domain = ep->domain; in virtio_iommu_detach_endpoint_from_domain()
301 IOMMUDevice *sdev = container_of(ep->iommu_mr, IOMMUDevice, iommu_mr); in virtio_iommu_detach_endpoint_from_domain()
303 if (!ep->domain) { in virtio_iommu_detach_endpoint_from_domain()
307 ep->iommu_mr); in virtio_iommu_detach_endpoint_from_domain()
308 QLIST_REMOVE(ep, next); in virtio_iommu_detach_endpoint_from_domain()
309 ep->domain = NULL; in virtio_iommu_detach_endpoint_from_domain()
316 VirtIOIOMMUEndpoint *ep; in virtio_iommu_get_endpoint() local
319 ep = g_tree_lookup(s->endpoints, GUINT_TO_POINTER(ep_id)); in virtio_iommu_get_endpoint()
320 if (ep) { in virtio_iommu_get_endpoint()
321 return ep; in virtio_iommu_get_endpoint()
327 ep = g_malloc0(sizeof(*ep)); in virtio_iommu_get_endpoint()
328 ep->id = ep_id; in virtio_iommu_get_endpoint()
329 ep->iommu_mr = mr; in virtio_iommu_get_endpoint()
331 g_tree_insert(s->endpoints, GUINT_TO_POINTER(ep_id), ep); in virtio_iommu_get_endpoint()
332 return ep; in virtio_iommu_get_endpoint()
337 VirtIOIOMMUEndpoint *ep = (VirtIOIOMMUEndpoint *)data; in virtio_iommu_put_endpoint() local
339 if (ep->domain) { in virtio_iommu_put_endpoint()
340 virtio_iommu_detach_endpoint_from_domain(ep); in virtio_iommu_put_endpoint()
343 trace_virtio_iommu_put_endpoint(ep->id); in virtio_iommu_put_endpoint()
344 g_free(ep); in virtio_iommu_put_endpoint()
476 VirtIOIOMMUEndpoint *ep; in virtio_iommu_attach() local
485 ep = virtio_iommu_get_endpoint(s, ep_id); in virtio_iommu_attach()
486 if (!ep) { in virtio_iommu_attach()
490 if (ep->domain) { in virtio_iommu_attach()
491 VirtIOIOMMUDomain *previous_domain = ep->domain; in virtio_iommu_attach()
496 virtio_iommu_detach_endpoint_from_domain(ep); in virtio_iommu_attach()
508 QLIST_INSERT_HEAD(&domain->endpoint_list, ep, next); in virtio_iommu_attach()
510 ep->domain = domain; in virtio_iommu_attach()
511 sdev = container_of(ep->iommu_mr, IOMMUDevice, iommu_mr); in virtio_iommu_attach()
516 ep->iommu_mr); in virtio_iommu_attach()
527 VirtIOIOMMUEndpoint *ep; in virtio_iommu_detach() local
531 ep = g_tree_lookup(s->endpoints, GUINT_TO_POINTER(ep_id)); in virtio_iommu_detach()
532 if (!ep) { in virtio_iommu_detach()
536 domain = ep->domain; in virtio_iommu_detach()
542 virtio_iommu_detach_endpoint_from_domain(ep); in virtio_iommu_detach()
561 VirtIOIOMMUEndpoint *ep; in virtio_iommu_map() local
595 QLIST_FOREACH(ep, &domain->endpoint_list, next) { in virtio_iommu_map()
596 virtio_iommu_notify_map(ep->iommu_mr, virt_start, virt_end, phys_start, in virtio_iommu_map()
612 VirtIOIOMMUEndpoint *ep; in virtio_iommu_unmap() local
635 QLIST_FOREACH(ep, &domain->endpoint_list, next) { in virtio_iommu_unmap()
636 virtio_iommu_notify_unmap(ep->iommu_mr, current_low, in virtio_iommu_unmap()
649 static ssize_t virtio_iommu_fill_resv_mem_prop(IOMMUDevice *sdev, uint32_t ep, in virtio_iommu_fill_resv_mem_prop() argument
676 trace_virtio_iommu_fill_resv_property(ep, prop.subtype, in virtio_iommu_fill_resv_mem_prop()
882 VirtIOIOMMUEndpoint *ep; in virtio_iommu_translate() local
908 ep = g_tree_lookup(s->endpoints, GUINT_TO_POINTER(sid)); in virtio_iommu_translate()
911 assert(ep && ep->domain && !ep->domain->bypass); in virtio_iommu_translate()
913 if (!ep) { in virtio_iommu_translate()
944 if (!ep->domain) { in virtio_iommu_translate()
956 } else if (ep->domain->bypass) { in virtio_iommu_translate()
961 found = g_tree_lookup_extended(ep->domain->mappings, (gpointer)(&interval), in virtio_iommu_translate()
1079 VirtIOIOMMUEndpoint *ep; in virtio_iommu_replay() local
1089 ep = g_tree_lookup(s->endpoints, GUINT_TO_POINTER(sid)); in virtio_iommu_replay()
1090 if (!ep || !ep->domain) { in virtio_iommu_replay()
1094 g_tree_foreach(ep->domain->mappings, virtio_iommu_remap, mr); in virtio_iommu_replay()