summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorStefan Hajnoczi2014-06-18 11:58:28 +0200
committerStefan Hajnoczi2014-07-01 09:15:02 +0200
commitef7c7ff6d4ca1955278af1bc5025f47044183250 (patch)
tree68d6e70f530fc76ef096a4e0465d50136ee5dba1 /include
parentMerge remote-tracking branch 'remotes/awilliam/tags/vfio-pci-for-qemu-2014063... (diff)
downloadqemu-ef7c7ff6d4ca1955278af1bc5025f47044183250.tar.gz
qemu-ef7c7ff6d4ca1955278af1bc5025f47044183250.tar.xz
qemu-ef7c7ff6d4ca1955278af1bc5025f47044183250.zip
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')
-rw-r--r--include/qom/object.h20
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