mirror of https://github.com/xqemu/xqemu.git
Add exit callback to DeviceInfo.
This adds a exit callback for device destruction to DeviceInfo, so we can hook cleanups into qdev device destruction. Followup patches will put that into use. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
131ec1bd7d
commit
d29275f103
|
@ -245,6 +245,8 @@ void qdev_free(DeviceState *dev)
|
||||||
#endif
|
#endif
|
||||||
if (dev->info->reset)
|
if (dev->info->reset)
|
||||||
qemu_unregister_reset(dev->info->reset, dev);
|
qemu_unregister_reset(dev->info->reset, dev);
|
||||||
|
if (dev->info->exit)
|
||||||
|
dev->info->exit(dev);
|
||||||
}
|
}
|
||||||
QLIST_REMOVE(dev, sibling);
|
QLIST_REMOVE(dev, sibling);
|
||||||
qemu_free(dev);
|
qemu_free(dev);
|
||||||
|
|
|
@ -108,6 +108,7 @@ BusState *qdev_get_child_bus(DeviceState *dev, const char *name);
|
||||||
/*** Device API. ***/
|
/*** Device API. ***/
|
||||||
|
|
||||||
typedef int (*qdev_initfn)(DeviceState *dev, DeviceInfo *info);
|
typedef int (*qdev_initfn)(DeviceState *dev, DeviceInfo *info);
|
||||||
|
typedef int (*qdev_exitfn)(DeviceState *dev);
|
||||||
|
|
||||||
struct DeviceInfo {
|
struct DeviceInfo {
|
||||||
const char *name;
|
const char *name;
|
||||||
|
@ -125,6 +126,7 @@ struct DeviceInfo {
|
||||||
|
|
||||||
/* Private to qdev / bus. */
|
/* Private to qdev / bus. */
|
||||||
qdev_initfn init;
|
qdev_initfn init;
|
||||||
|
qdev_exitfn exit;
|
||||||
BusInfo *bus_info;
|
BusInfo *bus_info;
|
||||||
struct DeviceInfo *next;
|
struct DeviceInfo *next;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue