diff options
author | Peter Xu <peterx@redhat.com> | 2024-11-21 14:21:58 -0500 |
---|---|---|
committer | Philippe Mathieu-Daudé <philmd@linaro.org> | 2025-01-09 18:16:24 +0100 |
commit | 41fc91772841c93c218df78d7e359cb2cd00dff5 (patch) | |
tree | 3338137939c1d32cdb3648582f8ec59e03dedd87 | |
parent | 63450f322bf76faab7add3def89815d9198492dc (diff) | |
download | qemu-41fc91772841c93c218df78d7e359cb2cd00dff5.zip qemu-41fc91772841c93c218df78d7e359cb2cd00dff5.tar.gz qemu-41fc91772841c93c218df78d7e359cb2cd00dff5.tar.bz2 |
qdev: Add machine_get_container()
Add a helper to fetch machine containers. Add some sanity check around.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Peter Xu <peterx@redhat.com>
Message-ID: <20241121192202.4155849-10-peterx@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
-rw-r--r-- | hw/core/qdev.c | 11 | ||||
-rw-r--r-- | include/hw/qdev-core.h | 10 |
2 files changed, 21 insertions, 0 deletions
diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 48bc9a7..9abc4e8 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -828,6 +828,17 @@ Object *qdev_get_machine(void) return dev; } +Object *machine_get_container(const char *name) +{ + Object *container, *machine; + + machine = qdev_get_machine(); + container = object_resolve_path_component(machine, name); + assert(object_dynamic_cast(container, TYPE_CONTAINER)); + + return container; +} + char *qdev_get_human_name(DeviceState *dev) { g_assert(dev != NULL); diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index 50cbbf8..89575e7 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -1034,6 +1034,16 @@ Object *qdev_get_machine(void); void qdev_create_fake_machine(void); /** + * machine_get_container: + * @name: The name of container to lookup + * + * Get a container of the machine (QOM path "/machine/NAME"). + * + * Returns: the machine container object. + */ +Object *machine_get_container(const char *name); + +/** * qdev_get_human_name() - Return a human-readable name for a device * @dev: The device. Must be a valid and non-NULL pointer. * |