Re: [PATCH 20/54] riscv/virt: convert OnOffAuto properties to QAPI-aware registration

2026-05-12 Thread Alistair Francis
On Sun, May 10, 2026 at 11:49 PM Marc-André Lureau
 wrote:
>
> Convert the acpi and iommu-sys OnOffAuto properties from manual
> visitor-based callbacks to property_add_qapi_enum().
>
> Signed-off-by: Marc-André Lureau 

Reviewed-by: Alistair Francis 

Alistair

> ---
>  hw/riscv/virt.c | 54 --
>  1 file changed, 24 insertions(+), 30 deletions(-)
>
> diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
> index a1c323e66df..5148044df95 100644
> --- a/hw/riscv/virt.c
> +++ b/hw/riscv/virt.c
> @@ -55,7 +55,7 @@
>  #include "hw/pci-host/gpex.h"
>  #include "hw/display/ramfb.h"
>  #include "hw/acpi/aml-build.h"
> -#include "qapi/qapi-visit-common.h"
> +#include "qapi/qapi-type-infos-common.h"
>  #include "hw/virtio/virtio-iommu.h"
>  #include "hw/uefi/var-service-api.h"
>
> @@ -1832,21 +1832,16 @@ bool virt_is_iommu_sys_enabled(RISCVVirtState *s)
>  return s->iommu_sys == ON_OFF_AUTO_ON;
>  }
>
> -static void virt_get_iommu_sys(Object *obj, Visitor *v, const char *name,
> -   void *opaque, Error **errp)
> +static int virt_get_iommu_sys(Object *obj, Error **errp)
>  {
>  RISCVVirtState *s = RISCV_VIRT_MACHINE(obj);
> -OnOffAuto iommu_sys = s->iommu_sys;
> -
> -visit_type_OnOffAuto(v, name, &iommu_sys, errp);
> +return s->iommu_sys;
>  }
>
> -static void virt_set_iommu_sys(Object *obj, Visitor *v, const char *name,
> -   void *opaque, Error **errp)
> +static void virt_set_iommu_sys(Object *obj, int value, Error **errp)
>  {
>  RISCVVirtState *s = RISCV_VIRT_MACHINE(obj);
> -
> -visit_type_OnOffAuto(v, name, &s->iommu_sys, errp);
> +s->iommu_sys = value;
>  }
>
>  bool virt_is_acpi_enabled(RISCVVirtState *s)
> @@ -1854,21 +1849,16 @@ bool virt_is_acpi_enabled(RISCVVirtState *s)
>  return s->acpi != ON_OFF_AUTO_OFF;
>  }
>
> -static void virt_get_acpi(Object *obj, Visitor *v, const char *name,
> -  void *opaque, Error **errp)
> +static int virt_get_acpi(Object *obj, Error **errp)
>  {
>  RISCVVirtState *s = RISCV_VIRT_MACHINE(obj);
> -OnOffAuto acpi = s->acpi;
> -
> -visit_type_OnOffAuto(v, name, &acpi, errp);
> +return s->acpi;
>  }
>
> -static void virt_set_acpi(Object *obj, Visitor *v, const char *name,
> -  void *opaque, Error **errp)
> +static void virt_set_acpi(Object *obj, int value, Error **errp)
>  {
>  RISCVVirtState *s = RISCV_VIRT_MACHINE(obj);
> -
> -visit_type_OnOffAuto(v, name, &s->acpi, errp);
> +s->acpi = value;
>  }
>
>  static HotplugHandler *virt_machine_get_hotplug_handler(MachineState 
> *machine,
> @@ -1966,17 +1956,21 @@ static void virt_machine_class_init(ObjectClass *oc, 
> const void *data)
>  object_class_property_set_description(oc, "aia-guests", str);
>  }
>
> -object_class_property_add(oc, "acpi", "OnOffAuto",
> -  virt_get_acpi, virt_set_acpi,
> -  NULL, NULL);
> -object_class_property_set_description(oc, "acpi",
> -  "Enable ACPI");
> -
> -object_class_property_add(oc, "iommu-sys", "OnOffAuto",
> -  virt_get_iommu_sys, virt_set_iommu_sys,
> -  NULL, NULL);
> -object_class_property_set_description(oc, "iommu-sys",
> -  "Enable IOMMU platform device");
> +object_class_property_add_qapi_enum(oc, QAPI_ENUM_PROP(
> +.name = "acpi",
> +.description = "Enable ACPI",
> +.qapi_type = &OnOffAuto_type_info,
> +.get = virt_get_acpi,
> +.set = virt_set_acpi,
> +));
> +
> +object_class_property_add_qapi_enum(oc, QAPI_ENUM_PROP(
> +.name = "iommu-sys",
> +.description = "Enable IOMMU platform device",
> +.qapi_type = &OnOffAuto_type_info,
> +.get = virt_get_iommu_sys,
> +.set = virt_set_iommu_sys,
> +));
>  }
>
>  static const TypeInfo virt_machine_typeinfo = {
>
> --
> 2.54.0
>
>



[PATCH 20/54] riscv/virt: convert OnOffAuto properties to QAPI-aware registration

2026-05-10 Thread Marc-André Lureau
Convert the acpi and iommu-sys OnOffAuto properties from manual
visitor-based callbacks to property_add_qapi_enum().

Signed-off-by: Marc-André Lureau 
---
 hw/riscv/virt.c | 54 --
 1 file changed, 24 insertions(+), 30 deletions(-)

diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
index a1c323e66df..5148044df95 100644
--- a/hw/riscv/virt.c
+++ b/hw/riscv/virt.c
@@ -55,7 +55,7 @@
 #include "hw/pci-host/gpex.h"
 #include "hw/display/ramfb.h"
 #include "hw/acpi/aml-build.h"
-#include "qapi/qapi-visit-common.h"
+#include "qapi/qapi-type-infos-common.h"
 #include "hw/virtio/virtio-iommu.h"
 #include "hw/uefi/var-service-api.h"
 
@@ -1832,21 +1832,16 @@ bool virt_is_iommu_sys_enabled(RISCVVirtState *s)
 return s->iommu_sys == ON_OFF_AUTO_ON;
 }
 
-static void virt_get_iommu_sys(Object *obj, Visitor *v, const char *name,
-   void *opaque, Error **errp)
+static int virt_get_iommu_sys(Object *obj, Error **errp)
 {
 RISCVVirtState *s = RISCV_VIRT_MACHINE(obj);
-OnOffAuto iommu_sys = s->iommu_sys;
-
-visit_type_OnOffAuto(v, name, &iommu_sys, errp);
+return s->iommu_sys;
 }
 
-static void virt_set_iommu_sys(Object *obj, Visitor *v, const char *name,
-   void *opaque, Error **errp)
+static void virt_set_iommu_sys(Object *obj, int value, Error **errp)
 {
 RISCVVirtState *s = RISCV_VIRT_MACHINE(obj);
-
-visit_type_OnOffAuto(v, name, &s->iommu_sys, errp);
+s->iommu_sys = value;
 }
 
 bool virt_is_acpi_enabled(RISCVVirtState *s)
@@ -1854,21 +1849,16 @@ bool virt_is_acpi_enabled(RISCVVirtState *s)
 return s->acpi != ON_OFF_AUTO_OFF;
 }
 
-static void virt_get_acpi(Object *obj, Visitor *v, const char *name,
-  void *opaque, Error **errp)
+static int virt_get_acpi(Object *obj, Error **errp)
 {
 RISCVVirtState *s = RISCV_VIRT_MACHINE(obj);
-OnOffAuto acpi = s->acpi;
-
-visit_type_OnOffAuto(v, name, &acpi, errp);
+return s->acpi;
 }
 
-static void virt_set_acpi(Object *obj, Visitor *v, const char *name,
-  void *opaque, Error **errp)
+static void virt_set_acpi(Object *obj, int value, Error **errp)
 {
 RISCVVirtState *s = RISCV_VIRT_MACHINE(obj);
-
-visit_type_OnOffAuto(v, name, &s->acpi, errp);
+s->acpi = value;
 }
 
 static HotplugHandler *virt_machine_get_hotplug_handler(MachineState *machine,
@@ -1966,17 +1956,21 @@ static void virt_machine_class_init(ObjectClass *oc, 
const void *data)
 object_class_property_set_description(oc, "aia-guests", str);
 }
 
-object_class_property_add(oc, "acpi", "OnOffAuto",
-  virt_get_acpi, virt_set_acpi,
-  NULL, NULL);
-object_class_property_set_description(oc, "acpi",
-  "Enable ACPI");
-
-object_class_property_add(oc, "iommu-sys", "OnOffAuto",
-  virt_get_iommu_sys, virt_set_iommu_sys,
-  NULL, NULL);
-object_class_property_set_description(oc, "iommu-sys",
-  "Enable IOMMU platform device");
+object_class_property_add_qapi_enum(oc, QAPI_ENUM_PROP(
+.name = "acpi",
+.description = "Enable ACPI",
+.qapi_type = &OnOffAuto_type_info,
+.get = virt_get_acpi,
+.set = virt_set_acpi,
+));
+
+object_class_property_add_qapi_enum(oc, QAPI_ENUM_PROP(
+.name = "iommu-sys",
+.description = "Enable IOMMU platform device",
+.qapi_type = &OnOffAuto_type_info,
+.get = virt_get_iommu_sys,
+.set = virt_set_iommu_sys,
+));
 }
 
 static const TypeInfo virt_machine_typeinfo = {

-- 
2.54.0