Lines Matching refs:dev
27 int iommu_assign_dt_device(struct domain *d, struct dt_device_node *dev) in iommu_assign_dt_device() argument
35 if ( !dt_device_is_protected(dev) ) in iommu_assign_dt_device()
40 if ( !list_empty(&dev->domain_list) ) in iommu_assign_dt_device()
56 rc = hd->platform_ops->assign_device(d, 0, dt_to_dev(dev), 0); in iommu_assign_dt_device()
61 list_add(&dev->domain_list, &hd->dt_devices); in iommu_assign_dt_device()
62 dt_device_set_used_by(dev, d->domain_id); in iommu_assign_dt_device()
70 int iommu_deassign_dt_device(struct domain *d, struct dt_device_node *dev) in iommu_deassign_dt_device() argument
78 if ( !dt_device_is_protected(dev) ) in iommu_deassign_dt_device()
83 rc = hd->platform_ops->reassign_device(d, NULL, 0, dt_to_dev(dev)); in iommu_deassign_dt_device()
87 list_del_init(&dev->domain_list); in iommu_deassign_dt_device()
88 dt_device_set_used_by(dev, DOMID_IO); in iommu_deassign_dt_device()
96 static bool_t iommu_dt_device_is_assigned(const struct dt_device_node *dev) in iommu_dt_device_is_assigned() argument
100 if ( !dt_device_is_protected(dev) ) in iommu_dt_device_is_assigned()
104 assigned = !list_empty(&dev->domain_list); in iommu_dt_device_is_assigned()
120 struct dt_device_node *dev, *_dev; in iommu_release_dt_devices() local
123 list_for_each_entry_safe(dev, _dev, &hd->dt_devices, domain_list) in iommu_release_dt_devices()
125 rc = iommu_deassign_dt_device(d, dev); in iommu_release_dt_devices()
129 dt_node_full_name(dev), d->domain_id); in iommu_release_dt_devices()
141 struct dt_device_node *dev; in iommu_do_dt_domctl() local
150 if ( domctl->u.assign_device.dev != XEN_DOMCTL_DEV_DT ) in iommu_do_dt_domctl()
159 &dev); in iommu_do_dt_domctl()
163 ret = xsm_assign_dtdevice(XSM_HOOK, d, dt_node_full_name(dev)); in iommu_do_dt_domctl()
169 if ( iommu_dt_device_is_assigned(dev) ) in iommu_do_dt_domctl()
172 dt_node_full_name(dev)); in iommu_do_dt_domctl()
178 ret = iommu_assign_dt_device(d, dev); in iommu_do_dt_domctl()
183 dt_node_full_name(dev), d->domain_id, ret); in iommu_do_dt_domctl()
188 if ( domctl->u.assign_device.dev != XEN_DOMCTL_DEV_DT ) in iommu_do_dt_domctl()
197 &dev); in iommu_do_dt_domctl()
201 ret = xsm_deassign_dtdevice(XSM_HOOK, d, dt_node_full_name(dev)); in iommu_do_dt_domctl()
203 ret = iommu_deassign_dt_device(d, dev); in iommu_do_dt_domctl()
208 dt_node_full_name(dev), d->domain_id, ret); in iommu_do_dt_domctl()