diff options
author | Manos Pitsidianakis <manos.pitsidianakis@linaro.org> | 2024-01-30 09:30:31 +0200 |
---|---|---|
committer | Stefan Hajnoczi <stefanha@redhat.com> | 2024-01-30 16:19:00 -0500 |
commit | 956ef499902b09aa8a3e70791455ccf45645032d (patch) | |
tree | 669bbf7ddf876874cbdb993ca630e7a850af4be3 | |
parent | d5eaeefbdac30d9ca62612f18e2d3f4509272856 (diff) | |
download | qemu-956ef499902b09aa8a3e70791455ccf45645032d.zip qemu-956ef499902b09aa8a3e70791455ccf45645032d.tar.gz qemu-956ef499902b09aa8a3e70791455ccf45645032d.tar.bz2 |
hw/core/qdev.c: add qdev_get_human_name()
Add a simple method to return some kind of human readable identifier for
use in error messages.
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Message-id: 8b566bfced98ae44be1fcc1f8e7215f0c3393aa1.1706598705.git.manos.pitsidianakis@linaro.org
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
-rw-r--r-- | hw/core/qdev.c | 8 | ||||
-rw-r--r-- | include/hw/qdev-core.h | 14 |
2 files changed, 22 insertions, 0 deletions
diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 43d863b..c68d0f7 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -879,6 +879,14 @@ Object *qdev_get_machine(void) return dev; } +char *qdev_get_human_name(DeviceState *dev) +{ + g_assert(dev != NULL); + + return dev->id ? + g_strdup(dev->id) : object_get_canonical_path(OBJECT(dev)); +} + static MachineInitPhase machine_phase; bool phase_check(MachineInitPhase phase) diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index 151d968..66338f4 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -993,6 +993,20 @@ const char *qdev_fw_name(DeviceState *dev); void qdev_assert_realized_properly(void); Object *qdev_get_machine(void); +/** + * qdev_get_human_name() - Return a human-readable name for a device + * @dev: The device. Must be a valid and non-NULL pointer. + * + * .. note:: + * This function is intended for user friendly error messages. + * + * Returns: A newly allocated string containing the device id if not null, + * else the object canonical path. + * + * Use g_free() to free it. + */ +char *qdev_get_human_name(DeviceState *dev); + /* FIXME: make this a link<> */ bool qdev_set_parent_bus(DeviceState *dev, BusState *bus, Error **errp); |