diff mbox series

[16/24] virt: Register "its" as class property

Message ID 20200921221045.699690-17-ehabkost@redhat.com
State Accepted
Commit 27edeeaafe439d0f58d9ff464a97ec418293d0b7
Headers show
Series qom: Convert some properties to class properties | expand

Commit Message

Eduardo Habkost Sept. 21, 2020, 10:10 p.m. UTC
Class properties make QOM introspection simpler and easier, as
they don't require an object to be instantiated.

Note: "its" is currently registered conditionally, but this makes
the feature be registered unconditionally.  The only side effect
is that it will be now possible to set its=on on virt-2.7 and
older.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: qemu-arm@nongnu.org
Cc: qemu-devel@nongnu.org
---
 hw/arm/virt.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

Comments

Igor Mammedov Oct. 23, 2020, 6:33 p.m. UTC | #1
On Mon, 21 Sep 2020 18:10:37 -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.

> 

> Note: "its" is currently registered conditionally, but this makes

> the feature be registered unconditionally.  The only side effect

> is that it will be now possible to set its=on on virt-2.7 and

> older.

> 

> 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 | 12 +++++++-----

>  1 file changed, 7 insertions(+), 5 deletions(-)

> 

> diff --git a/hw/arm/virt.c b/hw/arm/virt.c

> index d1ab660fa60..986b75a6b89 100644

> --- a/hw/arm/virt.c

> +++ b/hw/arm/virt.c

> @@ -2484,6 +2484,13 @@ static void virt_machine_class_init(ObjectClass *oc, void *data)

>                                            "Set on/off to enable/disable emulating a "

>                                            "guest CPU which implements the ARM "

>                                            "Memory Tagging Extension");

> +

> +    object_class_property_add_bool(oc, "its", virt_get_its,

> +                                   virt_set_its);

> +    object_class_property_set_description(oc, "its",

> +                                          "Set on/off to enable/disable "

> +                                          "ITS instantiation");

> +

>  }

>  

>  static void virt_instance_init(Object *obj)

> @@ -2511,11 +2518,6 @@ static void virt_instance_init(Object *obj)

>      } else {

>          /* Default allows ITS instantiation */

>          vms->its = true;

> -        object_property_add_bool(obj, "its", virt_get_its,

> -                                 virt_set_its);

> -        object_property_set_description(obj, "its",

> -                                        "Set on/off to enable/disable "

> -                                        "ITS instantiation");

>      }

>  

>      /* Default disallows iommu instantiation */
Peter Maydell Nov. 2, 2020, 11:12 a.m. UTC | #2
On Mon, 21 Sep 2020 at 23:11, Eduardo Habkost <ehabkost@redhat.com> wrote:
>

> Class properties make QOM introspection simpler and easier, as

> they don't require an object to be instantiated.

>

> Note: "its" is currently registered conditionally, but this makes

> the feature be registered unconditionally.  The only side effect

> is that it will be now possible to set its=on on virt-2.7 and

> older.

>

> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>

> ---

> Cc: Peter Maydell <peter.maydell@linaro.org>

> Cc: qemu-arm@nongnu.org

> Cc: qemu-devel@nongnu.org

> ---

>  hw/arm/virt.c | 12 +++++++-----

>  1 file changed, 7 insertions(+), 5 deletions(-)

>

> diff --git a/hw/arm/virt.c b/hw/arm/virt.c

> index d1ab660fa60..986b75a6b89 100644

> --- a/hw/arm/virt.c

> +++ b/hw/arm/virt.c

> @@ -2484,6 +2484,13 @@ static void virt_machine_class_init(ObjectClass *oc, void *data)

>                                            "Set on/off to enable/disable emulating a "

>                                            "guest CPU which implements the ARM "

>                                            "Memory Tagging Extension");

> +

> +    object_class_property_add_bool(oc, "its", virt_get_its,

> +                                   virt_set_its);

> +    object_class_property_set_description(oc, "its",

> +                                          "Set on/off to enable/disable "

> +                                          "ITS instantiation");

> +

>  }

>

>  static void virt_instance_init(Object *obj)

> @@ -2511,11 +2518,6 @@ static void virt_instance_init(Object *obj)

>      } else {

>          /* Default allows ITS instantiation */

>          vms->its = true;

> -        object_property_add_bool(obj, "its", virt_get_its,

> -                                 virt_set_its);

> -        object_property_set_description(obj, "its",

> -                                        "Set on/off to enable/disable "

> -                                        "ITS instantiation");

>      }


This leaves the code reading
  if (vmc->no_its) {
      vms->its = false;
  } else {
      vms->its = true;
  }

which is more simply written "vms->its = !vmc->no_its;"

thanks
-- PMM
diff mbox series

Patch

diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index d1ab660fa60..986b75a6b89 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -2484,6 +2484,13 @@  static void virt_machine_class_init(ObjectClass *oc, void *data)
                                           "Set on/off to enable/disable emulating a "
                                           "guest CPU which implements the ARM "
                                           "Memory Tagging Extension");
+
+    object_class_property_add_bool(oc, "its", virt_get_its,
+                                   virt_set_its);
+    object_class_property_set_description(oc, "its",
+                                          "Set on/off to enable/disable "
+                                          "ITS instantiation");
+
 }
 
 static void virt_instance_init(Object *obj)
@@ -2511,11 +2518,6 @@  static void virt_instance_init(Object *obj)
     } else {
         /* Default allows ITS instantiation */
         vms->its = true;
-        object_property_add_bool(obj, "its", virt_get_its,
-                                 virt_set_its);
-        object_property_set_description(obj, "its",
-                                        "Set on/off to enable/disable "
-                                        "ITS instantiation");
     }
 
     /* Default disallows iommu instantiation */