aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2009-07-15 13:43:34 +0200
committerAnthony Liguori <aliguori@us.ibm.com>2009-07-16 17:28:53 -0500
commitccb63de38e63bd8cdcd3db7aeaebc8a34a02ded8 (patch)
tree58e9685597139fe064b1a20f39bdb81f4d0915bc
parent96cc181089a532f9f4e6cf6858daf1f04d06cfc5 (diff)
qdev: add user-specified identifier to devices.
Add id field to DeviceState. Make "info qtree" print it. This helps users and management apps identifying devices in monitor output, which is especially useful with otherwise identical devices such as two virtio disks. This patch doesn't add a way to set the id, followup patches will do. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r--hw/qdev.c6
-rw-r--r--hw/qdev.h1
2 files changed, 5 insertions, 2 deletions
diff --git a/hw/qdev.c b/hw/qdev.c
index b76ba5bb3e..001c74ce0e 100644
--- a/hw/qdev.c
+++ b/hw/qdev.c
@@ -114,7 +114,8 @@ void qdev_init(DeviceState *dev)
void qdev_free(DeviceState *dev)
{
LIST_REMOVE(dev, sibling);
- free(dev);
+ qemu_free(dev->id);
+ qemu_free(dev);
}
/* Get a character (serial) device interface. */
@@ -266,7 +267,8 @@ static void qdev_print_props(Monitor *mon, DeviceState *dev, Property *props,
static void qdev_print(Monitor *mon, DeviceState *dev, int indent)
{
BusState *child;
- qdev_printf("dev: %s\n", dev->info->name);
+ qdev_printf("dev: %s, id \"%s\"\n", dev->info->name,
+ dev->id ? dev->id : "");
indent += 2;
if (dev->num_gpio_in) {
qdev_printf("gpio-in %d\n", dev->num_gpio_in);
diff --git a/hw/qdev.h b/hw/qdev.h
index 73d19fa699..11744fa539 100644
--- a/hw/qdev.h
+++ b/hw/qdev.h
@@ -19,6 +19,7 @@ typedef struct BusInfo BusInfo;
/* This structure should not be accessed directly. We declare it here
so that it can be embedded in individual device state structures. */
struct DeviceState {
+ char *id;
DeviceInfo *info;
BusState *parent_bus;
int num_gpio_out;