qdev: integrate reset
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
7fc2f2c086
commit
959f733a29
11
hw/qdev.c
11
hw/qdev.c
@ -214,12 +214,21 @@ DeviceState *qdev_device_add(QemuOpts *opts)
|
|||||||
calling this function. */
|
calling this function. */
|
||||||
int qdev_init(DeviceState *dev)
|
int qdev_init(DeviceState *dev)
|
||||||
{
|
{
|
||||||
return dev->info->init(dev, dev->info);
|
int rc;
|
||||||
|
|
||||||
|
rc = dev->info->init(dev, dev->info);
|
||||||
|
if (rc < 0)
|
||||||
|
return rc;
|
||||||
|
if (dev->info->reset)
|
||||||
|
qemu_register_reset(dev->info->reset, dev);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Unlink device from bus and free the structure. */
|
/* Unlink device from bus and free the structure. */
|
||||||
void qdev_free(DeviceState *dev)
|
void qdev_free(DeviceState *dev)
|
||||||
{
|
{
|
||||||
|
if (dev->info->reset)
|
||||||
|
qemu_unregister_reset(dev->info->reset, dev);
|
||||||
LIST_REMOVE(dev, sibling);
|
LIST_REMOVE(dev, sibling);
|
||||||
qemu_free(dev);
|
qemu_free(dev);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user