[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 15/24] arm/virt: Register most properties as class properties
From: |
Igor Mammedov |
Subject: |
Re: [PATCH 15/24] arm/virt: Register most properties as class properties |
Date: |
Fri, 23 Oct 2020 20:26:03 +0200 |
On Mon, 21 Sep 2020 18:10:36 -0400
Eduardo Habkost <ehabkost@redhat.com> wrote:
> 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: Igor Mammedov <imammedo@redhat.com>
> ---
> Cc: Peter Maydell <peter.maydell@linaro.org>
> Cc: qemu-arm@nongnu.org
> Cc: qemu-devel@nongnu.org
> ---
> hw/arm/virt.c | 76 +++++++++++++++++++++++++++------------------------
> 1 file changed, 41 insertions(+), 35 deletions(-)
>
> diff --git a/hw/arm/virt.c b/hw/arm/virt.c
> index acf9bfbecea..d1ab660fa60 100644
> --- a/hw/arm/virt.c
> +++ b/hw/arm/virt.c
> @@ -2443,6 +2443,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)
> @@ -2455,34 +2496,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;
>
> @@ -2500,26 +2520,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;
>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH 15/24] arm/virt: Register most properties as class properties,
Igor Mammedov <=