From ef7c7ff6d4ca1955278af1bc5025f47044183250 Mon Sep 17 00:00:00 2001 From: Stefan Hajnoczi Date: Wed, 18 Jun 2014 17:58:28 +0800 Subject: qom: add object_property_add_alias() Sometimes an object needs to present a property which is actually on another object, or it needs to provide an alias name for an existing property. Examples: a.foo -> b.foo a.old_name -> a.new_name The new object_property_add_alias() API allows objects to alias a property on the same object or another object. The source and target names can be different. Signed-off-by: Stefan Hajnoczi Reviewed-by: Peter Crosthwaite --- include/qom/object.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'include/qom') diff --git a/include/qom/object.h b/include/qom/object.h index b882ccc85f..44c513f985 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -1230,6 +1230,26 @@ void object_property_add_uint32_ptr(Object *obj, const char *name, void object_property_add_uint64_ptr(Object *obj, const char *name, const uint64_t *v, Error **Errp); +/** + * object_property_add_alias: + * @obj: the object to add a property to + * @name: the name of the property + * @target_obj: the object to forward property access to + * @target_name: the name of the property on the forwarded object + * @errp: if an error occurs, a pointer to an area to store the error + * + * Add an alias for a property on an object. This function will add a property + * of the same type as the forwarded property. + * + * The caller must ensure that @target_obj stays alive as long as + * this property exists. In the case of a child object or an alias on the same + * object this will be the case. For aliases to other objects the caller is + * responsible for taking a reference. + */ +void object_property_add_alias(Object *obj, const char *name, + Object *target_obj, const char *target_name, + Error **errp); + /** * object_child_foreach: * @obj: the object whose children will be navigated -- cgit v1.2.3