aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Xu <peterx@redhat.com>2024-11-21 14:22:00 -0500
committerPhilippe Mathieu-Daudé <philmd@linaro.org>2025-01-09 18:16:24 +0100
commit180e8f16f0ad6835ce0c437c7ffc9f25801a399e (patch)
treefacd0b6b8f181139d24d29caadd4d453859461b4
parent1c34335844950a152c020ec80ce7cf711b1861bc (diff)
downloadqemu-180e8f16f0ad6835ce0c437c7ffc9f25801a399e.zip
qemu-180e8f16f0ad6835ce0c437c7ffc9f25801a399e.tar.gz
qemu-180e8f16f0ad6835ce0c437c7ffc9f25801a399e.tar.bz2
qom: Add object_get_container()
Add a helper to fetch a root container (under object_get_root()). Sanity check on the type of the object. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com> Message-ID: <20241121192202.4155849-12-peterx@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
-rw-r--r--include/qom/object.h10
-rw-r--r--qom/object.c10
2 files changed, 20 insertions, 0 deletions
diff --git a/include/qom/object.h b/include/qom/object.h
index 95d6e06..bcf9910 100644
--- a/include/qom/object.h
+++ b/include/qom/object.h
@@ -1510,6 +1510,16 @@ const char *object_property_get_type(Object *obj, const char *name,
*/
Object *object_get_root(void);
+/**
+ * object_get_container:
+ * @name: the name of container to lookup
+ *
+ * Lookup a root level container.
+ *
+ * Returns: the container with @name.
+ */
+Object *object_get_container(const char *name);
+
/**
* object_get_objects_root:
diff --git a/qom/object.c b/qom/object.c
index b4c52d0..81c0690 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -1751,6 +1751,16 @@ static Object *object_root_initialize(void)
return root;
}
+Object *object_get_container(const char *name)
+{
+ Object *container;
+
+ container = object_resolve_path_component(object_get_root(), name);
+ assert(object_dynamic_cast(container, TYPE_CONTAINER));
+
+ return container;
+}
+
Object *object_get_root(void)
{
static Object *root;