Lines Matching refs:bcontainer

66     const VFIOContainerBase *bcontainer = &container->bcontainer;  in vfio_dma_unmap_bitmap()  local
94 if (vbmap.size > bcontainer->max_dirty_bitmap_size) { in vfio_dma_unmap_bitmap()
118 static int vfio_legacy_dma_unmap(const VFIOContainerBase *bcontainer, in vfio_legacy_dma_unmap() argument
122 const VFIOContainer *container = container_of(bcontainer, VFIOContainer, in vfio_legacy_dma_unmap()
123 bcontainer); in vfio_legacy_dma_unmap()
134 if (iotlb && vfio_devices_all_running_and_mig_active(bcontainer)) { in vfio_legacy_dma_unmap()
135 if (!vfio_devices_all_device_dirty_tracking(bcontainer) && in vfio_legacy_dma_unmap()
136 bcontainer->dirty_pages_supported) { in vfio_legacy_dma_unmap()
159 unmap.size -= 1ULL << ctz64(bcontainer->pgsizes); in vfio_legacy_dma_unmap()
167 ret = vfio_get_dirty_bitmap(bcontainer, iova, size, in vfio_legacy_dma_unmap()
178 static int vfio_legacy_dma_map(const VFIOContainerBase *bcontainer, hwaddr iova, in vfio_legacy_dma_map() argument
181 const VFIOContainer *container = container_of(bcontainer, VFIOContainer, in vfio_legacy_dma_map()
182 bcontainer); in vfio_legacy_dma_map()
202 vfio_legacy_dma_unmap(bcontainer, iova, size, NULL) == 0 && in vfio_legacy_dma_map()
212 vfio_legacy_set_dirty_page_tracking(const VFIOContainerBase *bcontainer, in vfio_legacy_set_dirty_page_tracking() argument
215 const VFIOContainer *container = container_of(bcontainer, VFIOContainer, in vfio_legacy_set_dirty_page_tracking()
216 bcontainer); in vfio_legacy_set_dirty_page_tracking()
238 static int vfio_legacy_query_dirty_bitmap(const VFIOContainerBase *bcontainer, in vfio_legacy_query_dirty_bitmap() argument
241 const VFIOContainer *container = container_of(bcontainer, VFIOContainer, in vfio_legacy_query_dirty_bitmap()
242 bcontainer); in vfio_legacy_query_dirty_bitmap()
310 VFIOContainerBase *bcontainer) in vfio_get_info_iova_range() argument
328 bcontainer->iova_ranges = in vfio_get_info_iova_range()
329 range_list_insert(bcontainer->iova_ranges, range); in vfio_get_info_iova_range()
490 VFIOContainerBase *bcontainer = &container->bcontainer; in vfio_get_iommu_info_migration() local
505 bcontainer->dirty_pages_supported = true; in vfio_get_iommu_info_migration()
506 bcontainer->max_dirty_bitmap_size = cap_mig->max_dirty_bitmap_size; in vfio_get_iommu_info_migration()
507 bcontainer->dirty_pgsizes = cap_mig->pgsize_bitmap; in vfio_get_iommu_info_migration()
511 static bool vfio_legacy_setup(VFIOContainerBase *bcontainer, Error **errp) in vfio_legacy_setup() argument
513 VFIOContainer *container = container_of(bcontainer, VFIOContainer, in vfio_legacy_setup()
514 bcontainer); in vfio_legacy_setup()
525 bcontainer->pgsizes = info->iova_pgsizes; in vfio_legacy_setup()
527 bcontainer->pgsizes = qemu_real_host_page_size(); in vfio_legacy_setup()
530 if (!vfio_get_info_dma_avail(info, &bcontainer->dma_max_mappings)) { in vfio_legacy_setup()
531 bcontainer->dma_max_mappings = 65535; in vfio_legacy_setup()
534 vfio_get_info_iova_range(info, bcontainer); in vfio_legacy_setup()
544 VFIOContainerBase *bcontainer; in vfio_connect_container() local
582 QLIST_FOREACH(bcontainer, &space->containers, next) { in vfio_connect_container()
583 container = container_of(bcontainer, VFIOContainer, bcontainer); in vfio_connect_container()
619 bcontainer = &container->bcontainer; in vfio_connect_container()
621 if (!vfio_cpr_register_container(bcontainer, errp)) { in vfio_connect_container()
631 vioc = VFIO_IOMMU_GET_CLASS(bcontainer); in vfio_connect_container()
634 if (!vioc->setup(bcontainer, errp)) { in vfio_connect_container()
640 vfio_address_space_insert(space, bcontainer); in vfio_connect_container()
645 bcontainer->listener = vfio_memory_listener; in vfio_connect_container()
646 memory_listener_register(&bcontainer->listener, bcontainer->space->as); in vfio_connect_container()
648 if (bcontainer->error) { in vfio_connect_container()
649 error_propagate_prepend(errp, bcontainer->error, in vfio_connect_container()
654 bcontainer->initialized = true; in vfio_connect_container()
660 memory_listener_unregister(&bcontainer->listener); in vfio_connect_container()
662 vioc->release(bcontainer); in vfio_connect_container()
669 vfio_cpr_unregister_container(bcontainer); in vfio_connect_container()
686 VFIOContainerBase *bcontainer = &container->bcontainer; in vfio_disconnect_container() local
687 VFIOIOMMUClass *vioc = VFIO_IOMMU_GET_CLASS(bcontainer); in vfio_disconnect_container()
698 memory_listener_unregister(&bcontainer->listener); in vfio_disconnect_container()
700 vioc->release(bcontainer); in vfio_disconnect_container()
710 VFIOAddressSpace *space = bcontainer->space; in vfio_disconnect_container()
713 vfio_cpr_unregister_container(bcontainer); in vfio_disconnect_container()
731 if (group->container->bcontainer.space->as == as) { in vfio_get_group()
909 VFIOContainerBase *bcontainer; in vfio_legacy_attach_device() local
938 bcontainer = &group->container->bcontainer; in vfio_legacy_attach_device()
939 vbasedev->bcontainer = bcontainer; in vfio_legacy_attach_device()
940 QLIST_INSERT_HEAD(&bcontainer->device_list, vbasedev, container_next); in vfio_legacy_attach_device()
952 vbasedev->bcontainer = NULL; in vfio_legacy_detach_device()
1171 return vfio_container_get_iova_ranges(vdev->bcontainer); in hiod_legacy_vfio_get_iova_ranges()
1180 return vfio_container_get_page_size_mask(vdev->bcontainer); in hiod_legacy_vfio_get_page_size_mask()