summary refs log tree commit diff stats
diff options
context:
space:
mode:
-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;