diff options
-rw-r--r-- | hw/qdev.c | 3 | ||||
-rw-r--r-- | hw/qdev.h | 1 |
2 files changed, 4 insertions, 0 deletions
@@ -218,6 +218,7 @@ DeviceState *qdev_device_add(QemuOpts *opts) qdev_free(qdev); return NULL; } + qdev->opts = opts; return qdev; } @@ -276,6 +277,8 @@ void qdev_free(DeviceState *dev) qemu_unregister_reset(dev->info->reset, dev); if (dev->info->exit) dev->info->exit(dev); + if (dev->opts) + qemu_opts_del(dev->opts); } QLIST_REMOVE(dev, sibling); qemu_free(dev); @@ -29,6 +29,7 @@ enum DevState { struct DeviceState { const char *id; enum DevState state; + QemuOpts *opts; int hotplugged; DeviceInfo *info; BusState *parent_bus; |