Skip to content

Commit

Permalink
hw/core/qdev.c: add qdev_get_human_name()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
epilys authored and stefanhaRH committed Jan 30, 2024
1 parent d5eaeef commit 956ef49
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
8 changes: 8 additions & 0 deletions hw/core/qdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
14 changes: 14 additions & 0 deletions include/hw/qdev-core.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down

0 comments on commit 956ef49

Please sign in to comment.