Convert the acpi, v-eiointc, and dmsi OnOffAuto properties from
manual visitor-based callbacks to property_add_qapi_enum().
Signed-off-by: Marc-André Lureau <[email protected]>
---
hw/loongarch/virt.c | 85 +++++++++++++++++++++++++----------------------------
1 file changed, 40 insertions(+), 45 deletions(-)
diff --git a/hw/loongarch/virt.c b/hw/loongarch/virt.c
index 9cc79929a8ab..750ce2dbe5fc 100644
--- a/hw/loongarch/virt.c
+++ b/hw/loongarch/virt.c
@@ -36,7 +36,8 @@
#include "target/loongarch/cpu.h"
#include "target/loongarch/cpu-mmu.h"
#include "hw/firmware/smbios.h"
-#include "qapi/qapi-visit-common.h"
+#include "qapi/qapi-type-infos-common.h"
+#include "qapi/visitor.h"
#include "hw/acpi/generic_event_device.h"
#include "hw/mem/nvdimm.h"
#include "hw/core/platform-bus.h"
@@ -51,26 +52,21 @@
#include "qemu/log.h"
#include "kvm/kvm_loongarch.h"
-static void virt_get_dmsi(Object *obj, Visitor *v, const char *name,
- void *opaque, Error **errp)
+static int virt_get_dmsi(Object *obj, Error **errp)
{
LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(obj);
- OnOffAuto dmsi = lvms->dmsi;
-
- visit_type_OnOffAuto(v, name, &dmsi, errp);
-
+ return lvms->dmsi;
}
-static void virt_set_dmsi(Object *obj, Visitor *v, const char *name,
- void *opaque, Error **errp)
+
+static void virt_set_dmsi(Object *obj, int value, Error **errp)
{
LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(obj);
+ lvms->dmsi = value;
- visit_type_OnOffAuto(v, name, &lvms->dmsi, errp);
-
- if (lvms->dmsi == ON_OFF_AUTO_OFF) {
+ if (value == ON_OFF_AUTO_OFF) {
lvms->misc_feature &= ~BIT(IOCSRF_DMSI);
lvms->misc_status &= ~BIT_ULL(IOCSRM_DMSI_EN);
- } else if (lvms->dmsi == ON_OFF_AUTO_ON) {
+ } else if (value == ON_OFF_AUTO_ON) {
lvms->misc_feature = BIT(IOCSRF_DMSI);
}
}
@@ -78,21 +74,16 @@ static void virt_set_dmsi(Object *obj, Visitor *v, const
char *name,
#define DEFAULT_HIGH_PCIE_MMIO_SIZE_GB 64
#define DEFAULT_HIGH_PCIE_MMIO_SIZE (DEFAULT_HIGH_PCIE_MMIO_SIZE_GB * GiB)
-static void virt_get_veiointc(Object *obj, Visitor *v, const char *name,
- void *opaque, Error **errp)
+static int virt_get_veiointc(Object *obj, Error **errp)
{
LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(obj);
- OnOffAuto veiointc = lvms->veiointc;
-
- visit_type_OnOffAuto(v, name, &veiointc, errp);
+ return lvms->veiointc;
}
-static void virt_set_veiointc(Object *obj, Visitor *v, const char *name,
- void *opaque, Error **errp)
+static void virt_set_veiointc(Object *obj, int value, Error **errp)
{
LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(obj);
-
- visit_type_OnOffAuto(v, name, &lvms->veiointc, errp);
+ lvms->veiointc = value;
}
static bool virt_get_highmem_mmio(Object *obj, Error **errp)
@@ -1025,21 +1016,16 @@ static void virt_init(MachineState *machine)
loongarch_load_kernel(machine, &lvms->bootinfo, phys_addr_mask);
}
-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)
{
LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(obj);
- OnOffAuto acpi = lvms->acpi;
-
- visit_type_OnOffAuto(v, name, &acpi, errp);
+ return lvms->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)
{
LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(obj);
-
- visit_type_OnOffAuto(v, name, &lvms->acpi, errp);
+ lvms->acpi = value;
}
static char *virt_get_oem_id(Object *obj, Error **errp)
@@ -1483,20 +1469,29 @@ static void virt_class_init(ObjectClass *oc, const void
*data)
hc->unplug_request = virt_device_unplug_request;
hc->unplug = virt_device_unplug;
- 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, "v-eiointc", "OnOffAuto",
- virt_get_veiointc, virt_set_veiointc,
- NULL, NULL);
- object_class_property_set_description(oc, "v-eiointc",
- "Enable Virt Extend I/O Interrupt Controller.");
- object_class_property_add(oc, "dmsi", "OnOffAuto",
- virt_get_dmsi, virt_set_dmsi, NULL, NULL);
- object_class_property_set_description(oc, "dmsi",
- "Enable direct Message-interrupts Controller.");
+ 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 = "v-eiointc",
+ .description = "Enable Virt Extend I/O Interrupt Controller.",
+ .qapi_type = &OnOffAuto_type_info,
+ .get = virt_get_veiointc,
+ .set = virt_set_veiointc,
+ ));
+
+ object_class_property_add_qapi_enum(oc, QAPI_ENUM_PROP(
+ .name = "dmsi",
+ .description = "Enable direct Message-interrupts Controller.",
+ .qapi_type = &OnOffAuto_type_info,
+ .get = virt_get_dmsi,
+ .set = virt_set_dmsi,
+ ));
machine_class_allow_dynamic_sysbus_dev(mc, TYPE_RAMFB_DEVICE);
machine_class_allow_dynamic_sysbus_dev(mc, TYPE_UEFI_VARS_SYSBUS);
#ifdef CONFIG_TPM