Accept bool literals for OnOffAuto properties for consistency with bool
properties.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
hw/core/qdev-properties.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
index 86a583574dd0..f0a270bb4f61 100644
--- a/hw/core/qdev-properties.c
+++ b/hw/core/qdev-properties.c
@@ -491,6 +491,21 @@ const PropertyInfo qdev_prop_string = {
.set = set_string,
};
+static void set_on_off_auto(Object *obj, Visitor *v, const char *name,
+ void *opaque, Error **errp)
+{
+ Property *prop = opaque;
+ int *ptr = object_field_prop_ptr(obj, prop);
+ bool value;
+
+ if (visit_type_bool(v, name, &value, NULL)) {
+ *ptr = value ? ON_OFF_AUTO_ON : ON_OFF_AUTO_OFF;
+ return;
+ }
+
+ qdev_propinfo_set_enum(obj, v, name, opaque, errp);
+}
+
/* --- on/off/auto --- */
const PropertyInfo qdev_prop_on_off_auto = {
@@ -498,7 +513,7 @@ const PropertyInfo qdev_prop_on_off_auto = {
.description = "on/off/auto",
.enum_table = &OnOffAuto_lookup,
.get = qdev_propinfo_get_enum,
- .set = qdev_propinfo_set_enum,
+ .set = set_on_off_auto,
.set_default_value = qdev_propinfo_set_default_value_enum,
};
--
2.45.2
On Sun, Jul 14, 2024 at 02:11:01PM +0900, Akihiko Odaki wrote: > Accept bool literals for OnOffAuto properties for consistency with bool > properties. > > Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> > --- > hw/core/qdev-properties.c | 17 ++++++++++++++++- > 1 file changed, 16 insertions(+), 1 deletion(-) > > diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c > index 86a583574dd0..f0a270bb4f61 100644 > --- a/hw/core/qdev-properties.c > +++ b/hw/core/qdev-properties.c > @@ -491,6 +491,21 @@ const PropertyInfo qdev_prop_string = { > .set = set_string, > }; > > +static void set_on_off_auto(Object *obj, Visitor *v, const char *name, > + void *opaque, Error **errp) > +{ > + Property *prop = opaque; > + int *ptr = object_field_prop_ptr(obj, prop); > + bool value; > + > + if (visit_type_bool(v, name, &value, NULL)) { > + *ptr = value ? ON_OFF_AUTO_ON : ON_OFF_AUTO_OFF; > + return; > + } > + > + qdev_propinfo_set_enum(obj, v, name, opaque, errp); > +} IMHO this is highly undesirable. It is adding redundant new syntax across countless places in QEMU that use OnOffAuto. > + > /* --- on/off/auto --- */ > > const PropertyInfo qdev_prop_on_off_auto = { > @@ -498,7 +513,7 @@ const PropertyInfo qdev_prop_on_off_auto = { > .description = "on/off/auto", > .enum_table = &OnOffAuto_lookup, > .get = qdev_propinfo_get_enum, > - .set = qdev_propinfo_set_enum, > + .set = set_on_off_auto, > .set_default_value = qdev_propinfo_set_default_value_enum, > }; > > > -- > 2.45.2 > With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
On 2024/07/15 20:38, Daniel P. Berrangé wrote: > On Sun, Jul 14, 2024 at 02:11:01PM +0900, Akihiko Odaki wrote: >> Accept bool literals for OnOffAuto properties for consistency with bool >> properties. >> >> Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> >> --- >> hw/core/qdev-properties.c | 17 ++++++++++++++++- >> 1 file changed, 16 insertions(+), 1 deletion(-) >> >> diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c >> index 86a583574dd0..f0a270bb4f61 100644 >> --- a/hw/core/qdev-properties.c >> +++ b/hw/core/qdev-properties.c >> @@ -491,6 +491,21 @@ const PropertyInfo qdev_prop_string = { >> .set = set_string, >> }; >> >> +static void set_on_off_auto(Object *obj, Visitor *v, const char *name, >> + void *opaque, Error **errp) >> +{ >> + Property *prop = opaque; >> + int *ptr = object_field_prop_ptr(obj, prop); >> + bool value; >> + >> + if (visit_type_bool(v, name, &value, NULL)) { >> + *ptr = value ? ON_OFF_AUTO_ON : ON_OFF_AUTO_OFF; >> + return; >> + } >> + >> + qdev_propinfo_set_enum(obj, v, name, opaque, errp); >> +} > > IMHO this is highly undesirable. It is adding redundant new syntax > across countless places in QEMU that use OnOffAuto. We already embrace the redundant syntax for bool properties and do not say it is deprecated. This is the most consistent way of handling on/off I came up with. Regards, Akihiko Odaki
© 2016 - 2024 Red Hat, Inc.