From: Marc-André Lureau <marcandre.lur...@redhat.com> The new callback will be used in following "object: add object_property_set_defaut_{bool,str,int,uint}()" and "vl: print default value in object help" patches.
Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> Message-Id: <20200110153039.1379601-8-marcandre.lur...@redhat.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> --- include/qom/object.h | 17 +++++++++++++++++ qom/object.c | 9 +++++++++ 2 files changed, 26 insertions(+) diff --git a/include/qom/object.h b/include/qom/object.h index 29f47d3..ca47308 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -367,6 +367,13 @@ typedef void (ObjectPropertyRelease)(Object *obj, */ typedef void (ObjectPropertyInit)(Object *obj, ObjectProperty *prop); +/** + * ObjectPropertyGetDefault: + * + * Get an allocated string representation of the default value. + */ +typedef char *(ObjectPropertyGetDefault)(ObjectProperty *prop); + struct ObjectProperty { gchar *name; @@ -377,6 +384,7 @@ struct ObjectProperty ObjectPropertyResolve *resolve; ObjectPropertyRelease *release; ObjectPropertyInit *init; + ObjectPropertyGetDefault *get_default; void *opaque; }; @@ -1234,6 +1242,15 @@ void object_property_set_int(Object *obj, int64_t value, const char *name, Error **errp); /** + * object_property_get_defaut: + * @prop: the property to get default value + * + * Return an allocated string that represents the default property + * value or NULL. + */ +char *object_property_get_default(ObjectProperty *prop); + +/** * object_property_get_int: * @obj: the object * @name: the name of the property diff --git a/qom/object.c b/qom/object.c index cd7ce81..49c2429 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1438,6 +1438,15 @@ int64_t object_property_get_int(Object *obj, const char *name, return retval; } +char *object_property_get_default(ObjectProperty *prop) +{ + if (!prop->get_default) { + return NULL; + } + + return prop->get_default(prop); +} + void object_property_set_uint(Object *obj, uint64_t value, const char *name, Error **errp) { -- 1.8.3.1