[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 02/14] object: add object_property_foreach
From: |
Anthony Liguori |
Subject: |
[Qemu-devel] [PATCH 02/14] object: add object_property_foreach |
Date: |
Wed, 18 Apr 2012 15:56:41 -0500 |
Provide a mechanism to walk through each property for an object.
Signed-off-by: Anthony Liguori <address@hidden>
---
include/qemu/object.h | 26 ++++++++++++++++++++++++++
qom/object.c | 10 ++++++++++
2 files changed, 36 insertions(+), 0 deletions(-)
diff --git a/include/qemu/object.h b/include/qemu/object.h
index a675937..e580197 100644
--- a/include/qemu/object.h
+++ b/include/qemu/object.h
@@ -914,5 +914,31 @@ void object_property_add_str(Object *obj, const char *name,
*/
Object *container_get(const char *path);
+/**
+ * ObjectPropertyEnumerator:
+ * @obj: the object the property belongs to
+ * @name: the name of the property
+ * @typename: the string typename the property was created with
+ * @read_only: if #true, the property is read-only
+ * @opaque: the opaque handle passed to @object_property_foreach
+ *
+ * Callback function type for @object_property_foreach
+ */
+typedef void (ObjectPropertyEnumerator)(Object *obj,
+ const char *name,
+ const char *typename,
+ bool read_only,
+ void *opaque);
+
+/**
+ * object_property_foreach:
+ * @path: object to enumerate properties in
+ * @fn: callback function that will be invoked for each property
+ * @opaque: opaque to pass to @fn
+ *
+ * Enumerate all properties in an existing object.
+ */
+void object_property_foreach(Object *obj, ObjectPropertyEnumerator *fn,
+ void *opaque);
#endif
diff --git a/qom/object.c b/qom/object.c
index e721fc2..94928c5 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -1194,3 +1194,13 @@ void object_property_add_str(Object *obj, const char
*name,
property_release_str,
prop, errp);
}
+
+void object_property_foreach(Object *obj, ObjectPropertyEnumerator *fn,
+ void *opaque)
+{
+ ObjectProperty *prop;
+
+ QTAILQ_FOREACH(prop, &obj->properties, node) {
+ fn(obj, prop->name, prop->type, !prop->set, opaque);
+ }
+}
--
1.7.5.4
- [Qemu-devel] [PATCH 00/14] qom: convert busses to QOM, Anthony Liguori, 2012/04/18
- [Qemu-devel] [PATCH 01/14] qdev: fix adding of ptr properties, Anthony Liguori, 2012/04/18
- [Qemu-devel] [PATCH 02/14] object: add object_property_foreach,
Anthony Liguori <=
- [Qemu-devel] [PATCH 03/14] qdev: add qdev_add_properties, Anthony Liguori, 2012/04/18
- [Qemu-devel] [PATCH 04/14] qdev: don't allow globals to be set by bus name, Anthony Liguori, 2012/04/18
- [Qemu-devel] [PATCH 05/14] qdev: use wrapper for qdev_get_path, Anthony Liguori, 2012/04/18
- [Qemu-devel] [PATCH 07/14] qdev: fix info qtree/qdm, Anthony Liguori, 2012/04/18
- [Qemu-devel] [PATCH 09/14] qdev: connect some links and move type to object, Anthony Liguori, 2012/04/18