Message ID | 20200921221045.699690-17-ehabkost@redhat.com |
---|---|
State | Accepted |
Commit | 27edeeaafe439d0f58d9ff464a97ec418293d0b7 |
Headers | show |
Series | qom: Convert some properties to class properties | expand |
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 */
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 --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 */
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(-)