diff mbox

[3/4] qdev: integrate vmstate

Message ID 1251791775-5358-4-git-send-email-kraxel@redhat.com
State Superseded
Headers show

Commit Message

Gerd Hoffmann Sept. 1, 2009, 7:56 a.m. UTC
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 hw/qdev.c |    6 ++++++
 hw/qdev.h |    3 +++
 2 files changed, 9 insertions(+), 0 deletions(-)
diff mbox

Patch

diff --git a/hw/qdev.c b/hw/qdev.c
index e045968..288f95b 100644
--- a/hw/qdev.c
+++ b/hw/qdev.c
@@ -218,12 +218,18 @@  int qdev_init(DeviceState *dev)
         return rc;
     if (dev->info->reset)
         qemu_register_reset(dev->info->reset, dev);
+    if (dev->info->vmsd)
+        vmstate_register(-1, dev->info->vmsd, dev);
     return 0;
 }
 
 /* Unlink device from bus and free the structure.  */
 void qdev_free(DeviceState *dev)
 {
+#if 0 /* FIXME: need sane vmstate_unregister function */
+    if (dev->info->vmsd)
+        vmstate_unregister(dev->info->vmsd, dev);
+#endif
     if (dev->info->reset)
         qemu_unregister_reset(dev->info->reset, dev);
     LIST_REMOVE(dev, sibling);
diff --git a/hw/qdev.h b/hw/qdev.h
index fde29ea..103489d 100644
--- a/hw/qdev.h
+++ b/hw/qdev.h
@@ -113,6 +113,9 @@  struct DeviceInfo {
     /* callbacks */
     QEMUResetHandler *reset;
 
+    /* device state */
+    const VMStateDescription *vmsd;
+
     /* Private to qdev / bus.  */
     qdev_initfn init;
     BusInfo *bus_info;