qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Igor Mammedov <imammedo@redhat.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
	"Daniel P. Berrange" <berrange@redhat.com>,
	qemu-devel@nongnu.org, qemu-arm@nongnu.org,
	Paolo Bonzini <pbonzini@redhat.com>, John Snow <jsnow@redhat.com>
Subject: Re: [PATCH 15/24] arm/virt: Register most properties as class properties
Date: Fri, 23 Oct 2020 20:26:03 +0200	[thread overview]
Message-ID: <20201023202603.351fedee@redhat.com> (raw)
In-Reply-To: <20200921221045.699690-16-ehabkost@redhat.com>

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;
>  



  reply	other threads:[~2020-10-23 18:29 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-21 22:10 [PATCH 00/24] qom: Convert some properties to class properties Eduardo Habkost
2020-09-21 22:10 ` [PATCH 01/24] cryptodev-vhost-user: Register "chardev" as class property Eduardo Habkost
2020-09-22  1:27   ` Gonglei (Arei)
2020-09-21 22:10 ` [PATCH 02/24] cryptodev-backend: " Eduardo Habkost
2020-09-22  1:27   ` Gonglei (Arei)
2020-09-21 22:10 ` [PATCH 03/24] rng-egd: " Eduardo Habkost
2020-09-23  9:59   ` Daniel P. Berrangé
2020-09-21 22:10 ` [PATCH 04/24] rng-random: register "filename" " Eduardo Habkost
2020-09-23  9:59   ` Daniel P. Berrangé
2020-09-21 22:10 ` [PATCH 05/24] vhost-user: Register "chardev" " Eduardo Habkost
2020-10-08  6:58   ` Marc-André Lureau
2020-10-23 18:16   ` Igor Mammedov
2020-10-30  8:56   ` Michael S. Tsirkin
2020-09-21 22:10 ` [PATCH 06/24] vexpress: Register "secure" " Eduardo Habkost
2020-09-21 22:10 ` [PATCH 07/24] rng: Register "opened" " Eduardo Habkost
2020-09-23 10:00   ` Daniel P. Berrangé
2020-09-21 22:10 ` [PATCH 08/24] vexpress-a15: Register "virtualization" " Eduardo Habkost
2020-10-23 18:19   ` Igor Mammedov
2020-09-21 22:10 ` [PATCH 09/24] input-linux: Register properties as class properties Eduardo Habkost
2020-09-23 10:01   ` Daniel P. Berrangé
2020-09-21 22:10 ` [PATCH 10/24] input-barrier: " Eduardo Habkost
2020-09-23 10:02   ` Daniel P. Berrangé
2020-09-21 22:10 ` [PATCH 11/24] tmp421: " Eduardo Habkost
2020-10-23 18:21   ` Igor Mammedov
2020-09-21 22:10 ` [PATCH 12/24] s390x: Register all CPU " Eduardo Habkost
2020-09-22  6:47   ` David Hildenbrand
2020-09-22  9:54   ` Cornelia Huck
2020-09-21 22:10 ` [PATCH 13/24] i386: Register most " Eduardo Habkost
2020-09-22  6:41   ` Igor Mammedov
2020-09-22 12:44     ` Eduardo Habkost
2020-09-23  8:43   ` Igor Mammedov
2020-09-21 22:10 ` [PATCH 14/24] i386: Register feature bit " Eduardo Habkost
2020-09-22  6:47   ` Igor Mammedov
2020-09-22 12:47   ` Eduardo Habkost
2020-09-21 22:10 ` [PATCH 15/24] arm/virt: Register most " Eduardo Habkost
2020-10-23 18:26   ` Igor Mammedov [this message]
2020-09-21 22:10 ` [PATCH 16/24] virt: Register "its" as class property Eduardo Habkost
2020-10-23 18:33   ` Igor Mammedov
2020-11-02 11:12   ` Peter Maydell
2020-09-21 22:10 ` [PATCH 17/24] cpu/core: Register core-id and nr-threads as class properties Eduardo Habkost
2020-09-22  6:48   ` Igor Mammedov
2020-09-21 22:10 ` [PATCH 18/24] arm/cpu64: Register "aarch64" as class property Eduardo Habkost
2020-10-23 18:34   ` Igor Mammedov
2020-09-21 22:10 ` [PATCH 19/24] xlnx-zcu102: Register properties as class properties Eduardo Habkost
2020-09-22 16:44   ` Alistair Francis
2020-09-21 22:10 ` [PATCH 20/24] machine: Register "memory-backend" as class property Eduardo Habkost
2020-09-22  6:39   ` Igor Mammedov
2020-09-21 22:10 ` [PATCH 21/24] vga-pci: Register "big-endian-framebuffer" " Eduardo Habkost
2020-10-08  7:00   ` Marc-André Lureau
2020-09-21 22:10 ` [PATCH 22/24] i440fx: Register i440FX-pcihost properties as class properties Eduardo Habkost
2020-09-22  6:49   ` Igor Mammedov
2020-10-30  8:56   ` Michael S. Tsirkin
2020-09-21 22:10 ` [PATCH 23/24] sifive_e: Register "revb" as class property Eduardo Habkost
2020-09-22 16:45   ` Alistair Francis
2020-09-21 22:10 ` [PATCH 24/24] sifive_u: Register "start-in-flash" " Eduardo Habkost
2020-09-22 16:44   ` Alistair Francis
2020-09-22  1:47 ` [PATCH 00/24] qom: Convert some properties to class properties Li Qiang
2020-09-22  4:31   ` Eduardo Habkost
2020-09-22  3:02 ` no-reply
2020-09-22 21:00 ` Eduardo Habkost
2020-10-07 22:26   ` Eduardo Habkost

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201023202603.351fedee@redhat.com \
    --to=imammedo@redhat.com \
    --cc=berrange@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).