diff options
author | Eduardo Habkost <ehabkost@redhat.com> | 2020-11-11 13:38:16 -0500 |
---|---|---|
committer | Eduardo Habkost <ehabkost@redhat.com> | 2020-12-15 10:02:07 -0500 |
commit | b91def7b8382eb862bad5a60e752a02b7123db71 (patch) | |
tree | 411b7f283179c96c08907f070ef56481a9d68521 | |
parent | f5730c69f00eaf7218ab79d1393d7197fcd9fe69 (diff) | |
download | qemu-b91def7b8382eb862bad5a60e752a02b7123db71.zip qemu-b91def7b8382eb862bad5a60e752a02b7123db71.tar.gz qemu-b91def7b8382eb862bad5a60e752a02b7123db71.tar.bz2 |
arm/virt: Register most properties as class properties
Class properties make QOM introspection simpler and easier, as
they don't require an object to be instantiated.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20201111183823.283752-6-ehabkost@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
-rw-r--r-- | hw/arm/virt.c | 76 |
1 files changed, 41 insertions, 35 deletions
diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 5565920..6a37d07 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -2490,6 +2490,47 @@ static void virt_machine_class_init(ObjectClass *oc, void *data) NULL, NULL); object_class_property_set_description(oc, "acpi", "Enable ACPI"); + object_class_property_add_bool(oc, "secure", virt_get_secure, + virt_set_secure); + object_class_property_set_description(oc, "secure", + "Set on/off to enable/disable the ARM " + "Security Extensions (TrustZone)"); + + object_class_property_add_bool(oc, "virtualization", virt_get_virt, + virt_set_virt); + object_class_property_set_description(oc, "virtualization", + "Set on/off to enable/disable emulating a " + "guest CPU which implements the ARM " + "Virtualization Extensions"); + + object_class_property_add_bool(oc, "highmem", virt_get_highmem, + virt_set_highmem); + object_class_property_set_description(oc, "highmem", + "Set on/off to enable/disable using " + "physical address space above 32 bits"); + + object_class_property_add_str(oc, "gic-version", virt_get_gic_version, + virt_set_gic_version); + object_class_property_set_description(oc, "gic-version", + "Set GIC version. " + "Valid values are 2, 3, host and max"); + + object_class_property_add_str(oc, "iommu", virt_get_iommu, virt_set_iommu); + object_class_property_set_description(oc, "iommu", + "Set the IOMMU type. " + "Valid values are none and smmuv3"); + + object_class_property_add_bool(oc, "ras", virt_get_ras, + virt_set_ras); + object_class_property_set_description(oc, "ras", + "Set on/off to enable/disable reporting host memory errors " + "to a KVM guest using ACPI and guest external abort exceptions"); + + object_class_property_add_bool(oc, "mte", virt_get_mte, virt_set_mte); + object_class_property_set_description(oc, "mte", + "Set on/off to enable/disable emulating a " + "guest CPU which implements the ARM " + "Memory Tagging Extension"); } static void virt_instance_init(Object *obj) @@ -2502,34 +2543,13 @@ static void virt_instance_init(Object *obj) * boot UEFI blobs which assume no TrustZone support. */ vms->secure = false; - object_property_add_bool(obj, "secure", virt_get_secure, - virt_set_secure); - object_property_set_description(obj, "secure", - "Set on/off to enable/disable the ARM " - "Security Extensions (TrustZone)"); /* EL2 is also disabled by default, for similar reasons */ vms->virt = false; - object_property_add_bool(obj, "virtualization", virt_get_virt, - virt_set_virt); - object_property_set_description(obj, "virtualization", - "Set on/off to enable/disable emulating a " - "guest CPU which implements the ARM " - "Virtualization Extensions"); /* High memory is enabled by default */ vms->highmem = true; - object_property_add_bool(obj, "highmem", virt_get_highmem, - virt_set_highmem); - object_property_set_description(obj, "highmem", - "Set on/off to enable/disable using " - "physical address space above 32 bits"); vms->gic_version = VIRT_GIC_VERSION_NOSEL; - object_property_add_str(obj, "gic-version", virt_get_gic_version, - virt_set_gic_version); - object_property_set_description(obj, "gic-version", - "Set GIC version. " - "Valid values are 2, 3, host and max"); vms->highmem_ecam = !vmc->no_highmem_ecam; @@ -2547,26 +2567,12 @@ static void virt_instance_init(Object *obj) /* Default disallows iommu instantiation */ vms->iommu = VIRT_IOMMU_NONE; - object_property_add_str(obj, "iommu", virt_get_iommu, virt_set_iommu); - object_property_set_description(obj, "iommu", - "Set the IOMMU type. " - "Valid values are none and smmuv3"); /* Default disallows RAS instantiation */ vms->ras = false; - object_property_add_bool(obj, "ras", virt_get_ras, - virt_set_ras); - object_property_set_description(obj, "ras", - "Set on/off to enable/disable reporting host memory errors " - "to a KVM guest using ACPI and guest external abort exceptions"); /* MTE is disabled by default. */ vms->mte = false; - object_property_add_bool(obj, "mte", virt_get_mte, virt_set_mte); - object_property_set_description(obj, "mte", - "Set on/off to enable/disable emulating a " - "guest CPU which implements the ARM " - "Memory Tagging Extension"); vms->irqmap = a15irqmap; |