diff options
author | Peter Xu <peterx@redhat.com> | 2024-11-21 14:22:00 -0500 |
---|---|---|
committer | Philippe Mathieu-Daudé <philmd@linaro.org> | 2025-01-09 18:16:24 +0100 |
commit | 180e8f16f0ad6835ce0c437c7ffc9f25801a399e (patch) | |
tree | facd0b6b8f181139d24d29caadd4d453859461b4 | |
parent | 1c34335844950a152c020ec80ce7cf711b1861bc (diff) | |
download | qemu-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.h | 10 | ||||
-rw-r--r-- | qom/object.c | 10 |
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; |