[PATCH for-9.0 06/10] vfio/container: Intoduce a new VFIOIOMMUClass::setup handler

Cédric Le Goater posted 10 patches 11 months, 3 weeks ago
There is a newer version of this series
[PATCH for-9.0 06/10] vfio/container: Intoduce a new VFIOIOMMUClass::setup handler
Posted by Cédric Le Goater 11 months, 3 weeks ago
This will help in converting the sPAPR IOMMU backend to a QOM interface.

Signed-off-by: Cédric Le Goater <clg@redhat.com>
---
 include/hw/vfio/vfio-container-base.h | 1 +
 hw/vfio/container.c                   | 1 +
 2 files changed, 2 insertions(+)

diff --git a/include/hw/vfio/vfio-container-base.h b/include/hw/vfio/vfio-container-base.h
index a31fd9c2e3b9a571083ea8987ac27e91b332c170..870e7dc48e542ddbfc52e12b0ab5fab4771a1ebd 100644
--- a/include/hw/vfio/vfio-container-base.h
+++ b/include/hw/vfio/vfio-container-base.h
@@ -104,6 +104,7 @@ struct VFIOIOMMUClass {
     InterfaceClass parent_class;
 
     /* basic feature */
+    int (*setup)(VFIOContainerBase *bcontainer, Error **errp);
     int (*dma_map)(const VFIOContainerBase *bcontainer,
                    hwaddr iova, ram_addr_t size,
                    void *vaddr, bool readonly);
diff --git a/hw/vfio/container.c b/hw/vfio/container.c
index fdf4e116570013732d48071a5122d25b02da715c..5f5ad8479f083db0be5207f179f3056ae67c49c3 100644
--- a/hw/vfio/container.c
+++ b/hw/vfio/container.c
@@ -1129,6 +1129,7 @@ static void vfio_iommu_legacy_class_init(ObjectClass *klass, void *data)
 {
     VFIOIOMMUClass *vioc = VFIO_IOMMU_CLASS(klass);
 
+    vioc->setup = vfio_legacy_setup;
     vioc->dma_map = vfio_legacy_dma_map;
     vioc->dma_unmap = vfio_legacy_dma_unmap;
     vioc->attach_device = vfio_legacy_attach_device;
-- 
2.43.0


RE: [PATCH for-9.0 06/10] vfio/container: Intoduce a new VFIOIOMMUClass::setup handler
Posted by Duan, Zhenzhong 11 months, 3 weeks ago

>-----Original Message-----
>From: Cédric Le Goater <clg@redhat.com>
>Sent: Friday, December 8, 2023 4:46 PM
>Subject: [PATCH for-9.0 06/10] vfio/container: Intoduce a new
>VFIOIOMMUClass::setup handler
>
>This will help in converting the sPAPR IOMMU backend to a QOM interface.
>
>Signed-off-by: Cédric Le Goater <clg@redhat.com>

Reviewed-by: Zhenzhong Duan <zhenzhong.duan@intel.com>

Thanks
Zhenzhong

>---
> include/hw/vfio/vfio-container-base.h | 1 +
> hw/vfio/container.c                   | 1 +
> 2 files changed, 2 insertions(+)
>
>diff --git a/include/hw/vfio/vfio-container-base.h b/include/hw/vfio/vfio-
>container-base.h
>index
>a31fd9c2e3b9a571083ea8987ac27e91b332c170..870e7dc48e542ddbfc52e
>12b0ab5fab4771a1ebd 100644
>--- a/include/hw/vfio/vfio-container-base.h
>+++ b/include/hw/vfio/vfio-container-base.h
>@@ -104,6 +104,7 @@ struct VFIOIOMMUClass {
>     InterfaceClass parent_class;
>
>     /* basic feature */
>+    int (*setup)(VFIOContainerBase *bcontainer, Error **errp);
>     int (*dma_map)(const VFIOContainerBase *bcontainer,
>                    hwaddr iova, ram_addr_t size,
>                    void *vaddr, bool readonly);
>diff --git a/hw/vfio/container.c b/hw/vfio/container.c
>index
>fdf4e116570013732d48071a5122d25b02da715c..5f5ad8479f083db0be520
>7f179f3056ae67c49c3 100644
>--- a/hw/vfio/container.c
>+++ b/hw/vfio/container.c
>@@ -1129,6 +1129,7 @@ static void
>vfio_iommu_legacy_class_init(ObjectClass *klass, void *data)
> {
>     VFIOIOMMUClass *vioc = VFIO_IOMMU_CLASS(klass);
>
>+    vioc->setup = vfio_legacy_setup;
>     vioc->dma_map = vfio_legacy_dma_map;
>     vioc->dma_unmap = vfio_legacy_dma_unmap;
>     vioc->attach_device = vfio_legacy_attach_device;
>--
>2.43.0