diff options
author | Stefan Hajnoczi <stefanha@redhat.com> | 2014-06-18 17:58:28 +0800 |
---|---|---|
committer | Stefan Hajnoczi <stefanha@redhat.com> | 2014-07-01 09:15:02 +0200 |
commit | ef7c7ff6d4ca1955278af1bc5025f47044183250 (patch) | |
tree | 68d6e70f530fc76ef096a4e0465d50136ee5dba1 /include/qom | |
parent | 53a259da5697ec8a82463161e2e32ff942a08bc2 (diff) |
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 <stefanha@redhat.com>
Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Diffstat (limited to 'include/qom')
-rw-r--r-- | include/qom/object.h | 20 |
1 files changed, 20 insertions, 0 deletions
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 @@ -1231,6 +1231,26 @@ 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 <code>@target_obj</code> 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 * @fn: the iterator function to be called |