Lines Matching refs:container

39 static int vfio_ram_block_discard_disable(VFIOContainer *container, bool state)  in vfio_ram_block_discard_disable()  argument
41 switch (container->iommu_type) { in vfio_ram_block_discard_disable()
62 static int vfio_dma_unmap_bitmap(const VFIOContainer *container, in vfio_dma_unmap_bitmap() argument
66 const VFIOContainerBase *bcontainer = &container->bcontainer; in vfio_dma_unmap_bitmap()
100 ret = ioctl(container->fd, VFIO_IOMMU_UNMAP_DMA, unmap); in vfio_dma_unmap_bitmap()
122 const VFIOContainer *container = container_of(bcontainer, VFIOContainer, in vfio_legacy_dma_unmap() local
137 return vfio_dma_unmap_bitmap(container, iova, size, iotlb); in vfio_legacy_dma_unmap()
143 while (ioctl(container->fd, VFIO_IOMMU_UNMAP_DMA, &unmap)) { in vfio_legacy_dma_unmap()
157 container->iommu_type == VFIO_TYPE1v2_IOMMU) { in vfio_legacy_dma_unmap()
181 const VFIOContainer *container = container_of(bcontainer, VFIOContainer, in vfio_legacy_dma_map() local
200 if (ioctl(container->fd, VFIO_IOMMU_MAP_DMA, &map) == 0 || in vfio_legacy_dma_map()
203 ioctl(container->fd, VFIO_IOMMU_MAP_DMA, &map) == 0)) { in vfio_legacy_dma_map()
215 const VFIOContainer *container = container_of(bcontainer, VFIOContainer, in vfio_legacy_set_dirty_page_tracking() local
228 ret = ioctl(container->fd, VFIO_IOMMU_DIRTY_PAGES, &dirty); in vfio_legacy_set_dirty_page_tracking()
241 const VFIOContainer *container = container_of(bcontainer, VFIOContainer, in vfio_legacy_query_dirty_bitmap() local
264 ret = ioctl(container->fd, VFIO_IOMMU_DIRTY_PAGES, dbitmap); in vfio_legacy_query_dirty_bitmap()
422 VFIOContainer *container; in vfio_create_container() local
435 container = VFIO_IOMMU_LEGACY(object_new(vioc_name)); in vfio_create_container()
436 container->fd = fd; in vfio_create_container()
437 container->iommu_type = iommu_type; in vfio_create_container()
438 return container; in vfio_create_container()
441 static int vfio_get_iommu_info(VFIOContainer *container, in vfio_get_iommu_info() argument
451 if (ioctl(container->fd, VFIO_IOMMU_GET_INFO, *info)) { in vfio_get_iommu_info()
485 static void vfio_get_iommu_info_migration(VFIOContainer *container, in vfio_get_iommu_info_migration() argument
490 VFIOContainerBase *bcontainer = &container->bcontainer; in vfio_get_iommu_info_migration()
513 VFIOContainer *container = container_of(bcontainer, VFIOContainer, in vfio_legacy_setup() local
518 ret = vfio_get_iommu_info(container, &info); in vfio_legacy_setup()
536 vfio_get_iommu_info_migration(container, info); in vfio_legacy_setup()
543 VFIOContainer *container; in vfio_connect_container() local
583 container = container_of(bcontainer, VFIOContainer, bcontainer); in vfio_connect_container()
584 if (!ioctl(group->fd, VFIO_GROUP_SET_CONTAINER, &container->fd)) { in vfio_connect_container()
585 ret = vfio_ram_block_discard_disable(container, true); in vfio_connect_container()
590 &container->fd)) { in vfio_connect_container()
596 group->container = container; in vfio_connect_container()
597 QLIST_INSERT_HEAD(&container->group_list, group, container_next); in vfio_connect_container()
615 container = vfio_create_container(fd, group, errp); in vfio_connect_container()
616 if (!container) { in vfio_connect_container()
619 bcontainer = &container->bcontainer; in vfio_connect_container()
625 ret = vfio_ram_block_discard_disable(container, true); in vfio_connect_container()
642 group->container = container; in vfio_connect_container()
643 QLIST_INSERT_HEAD(&container->group_list, group, container_next); in vfio_connect_container()
666 vfio_ram_block_discard_disable(container, false); in vfio_connect_container()
672 object_unref(container); in vfio_connect_container()
685 VFIOContainer *container = group->container; in vfio_disconnect_container() local
686 VFIOContainerBase *bcontainer = &container->bcontainer; in vfio_disconnect_container()
690 group->container = NULL; in vfio_disconnect_container()
697 if (QLIST_EMPTY(&container->group_list)) { in vfio_disconnect_container()
704 if (ioctl(group->fd, VFIO_GROUP_UNSET_CONTAINER, &container->fd)) { in vfio_disconnect_container()
709 if (QLIST_EMPTY(&container->group_list)) { in vfio_disconnect_container()
712 trace_vfio_disconnect_container(container->fd); in vfio_disconnect_container()
714 close(container->fd); in vfio_disconnect_container()
715 object_unref(container); in vfio_disconnect_container()
731 if (group->container->bcontainer.space->as == as) { in vfio_get_group()
791 vfio_ram_block_discard_disable(group->container, false); in vfio_put_group()
841 vfio_ram_block_discard_disable(group->container, false); in vfio_get_device()
938 bcontainer = &group->container->bcontainer; in vfio_legacy_attach_device()
1185 VFIOContainer *container = VFIO_IOMMU_LEGACY(obj); in vfio_iommu_legacy_instance_init() local
1187 QLIST_INIT(&container->group_list); in vfio_iommu_legacy_instance_init()