Home
last modified time | relevance | path

Searched refs:bcontainer (Results 1 – 19 of 19) sorted by relevance

/openbmc/qemu/hw/vfio/
H A Dcontainer-base.c70 VFIOContainerBase *bcontainer) in vfio_address_space_insert() argument
72 QLIST_INSERT_HEAD(&space->containers, bcontainer, next); in vfio_address_space_insert()
73 bcontainer->space = space; in vfio_address_space_insert()
76 int vfio_container_dma_map(VFIOContainerBase *bcontainer, in vfio_container_dma_map() argument
80 VFIOIOMMUClass *vioc = VFIO_IOMMU_GET_CLASS(bcontainer); in vfio_container_dma_map()
88 return vioc->dma_map_file(bcontainer, iova, size, mfd, start + offset, in vfio_container_dma_map()
92 return vioc->dma_map(bcontainer, iova, size, vaddr, readonly, mr); in vfio_container_dma_map()
95 int vfio_container_dma_unmap(VFIOContainerBase *bcontainer, in vfio_container_dma_unmap() argument
99 VFIOIOMMUClass *vioc = VFIO_IOMMU_GET_CLASS(bcontainer); in vfio_container_dma_unmap()
102 return vioc->dma_unmap(bcontainer, iova, size, iotlb, unmap_all); in vfio_container_dma_unmap()
[all …]
H A Dlistener.c55 static bool vfio_log_sync_needed(const VFIOContainerBase *bcontainer) in vfio_log_sync_needed() argument
59 if (!vfio_container_dirty_tracking_is_started(bcontainer)) { in vfio_log_sync_needed()
63 QLIST_FOREACH(vbasedev, &bcontainer->device_list, container_next) { in vfio_log_sync_needed()
128 VFIOContainerBase *bcontainer = giommu->bcontainer; in vfio_iommu_map_notify() local
171 ret = vfio_container_dma_map(bcontainer, iova, in vfio_iommu_map_notify()
177 bcontainer, iova, in vfio_iommu_map_notify()
181 ret = vfio_container_dma_unmap(bcontainer, iova, in vfio_iommu_map_notify()
187 bcontainer, iova, in vfio_iommu_map_notify()
205 VFIOContainerBase *bcontainer = vrdl->bcontainer; in vfio_ram_discard_notify_discard() local
211 ret = vfio_container_dma_unmap(bcontainer, iova, size , NULL, false); in vfio_ram_discard_notify_discard()
[all …]
H A Dcpr-legacy.c40 static int vfio_legacy_cpr_dma_map(const VFIOContainerBase *bcontainer, in vfio_legacy_cpr_dma_map() argument
44 const VFIOContainer *container = container_of(bcontainer, VFIOContainer, in vfio_legacy_cpr_dma_map()
45 bcontainer); in vfio_legacy_cpr_dma_map()
68 vfio_container_region_add(&container->bcontainer, section, true); in vfio_region_remap()
101 VFIOContainerBase *bcontainer = &container->bcontainer; in vfio_container_post_load() local
102 VFIOIOMMUClass *vioc = VFIO_IOMMU_GET_CLASS(bcontainer); in vfio_container_post_load()
109 if (!vfio_listener_register(bcontainer, &local_err)) { in vfio_container_post_load()
138 VFIOContainerBase *bcontainer = &container->bcontainer; in vfio_cpr_fail_notifier() local
151 VFIOIOMMUClass *vioc = VFIO_IOMMU_GET_CLASS(bcontainer); in vfio_cpr_fail_notifier()
160 bcontainer->space->as); in vfio_cpr_fail_notifier()
[all …]
H A Dcontainer.c74 const VFIOContainerBase *bcontainer = &container->bcontainer; in vfio_dma_unmap_bitmap() local
102 if (vbmap.size > bcontainer->max_dirty_bitmap_size) { in vfio_dma_unmap_bitmap()
123 static int vfio_legacy_dma_unmap_one(const VFIOContainerBase *bcontainer, in vfio_legacy_dma_unmap_one() argument
127 const VFIOContainer *container = container_of(bcontainer, VFIOContainer, in vfio_legacy_dma_unmap_one()
128 bcontainer); in vfio_legacy_dma_unmap_one()
141 if (iotlb && vfio_container_dirty_tracking_is_started(bcontainer)) { in vfio_legacy_dma_unmap_one()
142 if (!vfio_container_devices_dirty_tracking_is_supported(bcontainer) && in vfio_legacy_dma_unmap_one()
143 bcontainer->dirty_pages_supported) { in vfio_legacy_dma_unmap_one()
166 unmap.size -= 1ULL << ctz64(bcontainer->pgsizes); in vfio_legacy_dma_unmap_one()
173 ret = vfio_container_query_dirty_bitmap(bcontainer, iova, size, in vfio_legacy_dma_unmap_one()
[all …]
H A Diommufd.c37 static int iommufd_cdev_map(const VFIOContainerBase *bcontainer, hwaddr iova, in iommufd_cdev_map() argument
42 container_of(bcontainer, VFIOIOMMUFDContainer, bcontainer); in iommufd_cdev_map()
49 static int iommufd_cdev_map_file(const VFIOContainerBase *bcontainer, in iommufd_cdev_map_file() argument
54 container_of(bcontainer, VFIOIOMMUFDContainer, bcontainer); in iommufd_cdev_map_file()
61 static int iommufd_cdev_unmap(const VFIOContainerBase *bcontainer, in iommufd_cdev_unmap() argument
66 container_of(bcontainer, VFIOIOMMUFDContainer, bcontainer); in iommufd_cdev_unmap()
162 static int iommufd_set_dirty_page_tracking(const VFIOContainerBase *bcontainer, in iommufd_set_dirty_page_tracking() argument
166 container_of(bcontainer, VFIOIOMMUFDContainer, bcontainer); in iommufd_set_dirty_page_tracking()
193 static int iommufd_query_dirty_bitmap(const VFIOContainerBase *bcontainer, in iommufd_query_dirty_bitmap() argument
197 VFIOIOMMUFDContainer *container = container_of(bcontainer, in iommufd_query_dirty_bitmap()
[all …]
H A Dspapr.c65 VFIOContainerBase *bcontainer = &container->bcontainer; in vfio_prereg_listener_region_add() local
108 if (!bcontainer->initialized) { in vfio_prereg_listener_region_add()
109 if (!bcontainer->error) { in vfio_prereg_listener_region_add()
110 error_setg_errno(&bcontainer->error, -ret, in vfio_prereg_listener_region_add()
247 VFIOContainerBase *bcontainer = &container->bcontainer; in vfio_spapr_create_window() local
263 pgmask = bcontainer->pgsizes & (pagesize | (pagesize - 1)); in vfio_spapr_create_window()
269 bcontainer->pgsizes); in vfio_spapr_create_window()
322 bcontainer->pgsizes); in vfio_spapr_create_window()
351 vfio_spapr_container_add_section_window(VFIOContainerBase *bcontainer, in vfio_spapr_container_add_section_window() argument
355 VFIOContainer *container = container_of(bcontainer, VFIOContainer, in vfio_spapr_container_add_section_window()
[all …]
H A Dcpr-iommufd.c179 VFIOContainerBase *bcontainer = &container->bcontainer; in vfio_iommufd_cpr_register_container() local
181 migration_add_notifier_mode(&bcontainer->cpr_reboot_notifier, in vfio_iommufd_cpr_register_container()
192 VFIOContainerBase *bcontainer = &container->bcontainer; in vfio_iommufd_cpr_unregister_container() local
194 migration_remove_notifier(&bcontainer->cpr_reboot_notifier); in vfio_iommufd_cpr_unregister_container()
H A Dvfio-listener.h12 bool vfio_listener_register(VFIOContainerBase *bcontainer, Error **errp);
13 void vfio_listener_unregister(VFIOContainerBase *bcontainer);
H A Ddevice.c390 GList *l = g_list_last(vdev->bcontainer->iova_ranges); in vfio_device_get_aw_bits()
468 if (!vbasedev->bcontainer) { in vfio_device_detach()
471 VFIO_IOMMU_GET_CLASS(vbasedev->bcontainer)->detach_device(vbasedev); in vfio_device_detach()
474 void vfio_device_prepare(VFIODevice *vbasedev, VFIOContainerBase *bcontainer, in vfio_device_prepare() argument
484 vbasedev->bcontainer = bcontainer; in vfio_device_prepare()
485 QLIST_INSERT_HEAD(&bcontainer->device_list, vbasedev, container_next); in vfio_device_prepare()
515 vbasedev->bcontainer = NULL; in vfio_device_unprepare()
H A Dvfio-iommufd.h26 VFIOContainerBase bcontainer; member
H A Dmigration.c1152 return vbasedev->bcontainer->space->as != &address_space_memory; in vfio_viommu_preset()
H A Dpci.c2693 const VFIOIOMMUClass *vioc = VFIO_IOMMU_GET_CLASS(vbasedev->bcontainer); in vfio_pci_hot_reset()
/openbmc/qemu/include/hw/vfio/
H A Dvfio-container-base.h57 VFIOContainerBase *bcontainer; member
65 VFIOContainerBase *bcontainer; member
77 VFIOContainerBase *bcontainer);
79 int vfio_container_dma_map(VFIOContainerBase *bcontainer,
82 int vfio_container_dma_unmap(VFIOContainerBase *bcontainer,
85 bool vfio_container_add_section_window(VFIOContainerBase *bcontainer,
88 void vfio_container_del_section_window(VFIOContainerBase *bcontainer,
90 int vfio_container_set_dirty_page_tracking(VFIOContainerBase *bcontainer,
93 const VFIOContainerBase *bcontainer);
95 const VFIOContainerBase *bcontainer);
[all …]
H A Dvfio-cpr.h23 typedef int (*dma_map_fn)(const struct VFIOContainerBase *bcontainer,
67 void vfio_cpr_giommu_remap(struct VFIOContainerBase *bcontainer,
71 struct VFIOContainerBase *bcontainer, MemoryRegionSection *section);
H A Dvfio-container.h29 VFIOContainerBase bcontainer; member
H A Dvfio-device.h57 VFIOContainerBase *bcontainer; member
255 void vfio_device_prepare(VFIODevice *vbasedev, VFIOContainerBase *bcontainer,
/openbmc/qemu/hw/vfio-user/
H A Dcontainer.c25 static void vfio_user_listener_begin(VFIOContainerBase *bcontainer) in vfio_user_listener_begin() argument
27 VFIOUserContainer *container = container_of(bcontainer, VFIOUserContainer, in vfio_user_listener_begin()
28 bcontainer); in vfio_user_listener_begin()
33 static void vfio_user_listener_commit(VFIOContainerBase *bcontainer) in vfio_user_listener_commit() argument
35 VFIOUserContainer *container = container_of(bcontainer, VFIOUserContainer, in vfio_user_listener_commit()
36 bcontainer); in vfio_user_listener_commit()
43 static int vfio_user_dma_unmap(const VFIOContainerBase *bcontainer, in vfio_user_dma_unmap() argument
47 VFIOUserContainer *container = container_of(bcontainer, VFIOUserContainer, in vfio_user_dma_unmap()
48 bcontainer); in vfio_user_dma_unmap()
85 static int vfio_user_dma_map(const VFIOContainerBase *bcontainer, hwaddr iova, in vfio_user_dma_map() argument
[all …]
H A Dcontainer.h17 VFIOContainerBase bcontainer; member
/openbmc/qemu/hw/ppc/
H A Dspapr_pci_vfio.c89 VFIOContainerBase *bcontainer = NULL; in vfio_eeh_as_container() local
96 bcontainer = QLIST_FIRST(&space->containers); in vfio_eeh_as_container()
98 if (QLIST_NEXT(bcontainer, next)) { in vfio_eeh_as_container()
103 bcontainer = NULL; in vfio_eeh_as_container()
109 return container_of(bcontainer, VFIOContainer, bcontainer); in vfio_eeh_as_container()