[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 4/6] virtio/migration: Add VMStateDescription to Virti
From: |
Dr. David Alan Gilbert (git) |
Subject: |
[Qemu-devel] [RFC 4/6] virtio/migration: Add VMStateDescription to VirtioDeviceClass |
Date: |
Wed, 24 Aug 2016 14:42:31 +0100 |
From: "Dr. David Alan Gilbert" <address@hidden>
Provide a vmsd pointer for VirtIO devices to use instead of the
load/save methods.
We'll eventually kill off the load/save methods.
Signed-off-by: Dr. David Alan Gilbert <address@hidden>
---
hw/virtio/virtio.c | 11 +++++++++++
include/hw/virtio/virtio.h | 2 ++
2 files changed, 13 insertions(+)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 15ee3a7..3a4fa93 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -1470,6 +1470,10 @@ void virtio_save(VirtIODevice *vdev, QEMUFile *f)
vdc->save(vdev, f);
}
+ if (vdc->vmsd) {
+ vmstate_save_state(f, vdc->vmsd, vdev, NULL);
+ }
+
/* Subsections */
vmstate_save_state(f, &vmstate_virtio, vdev, NULL);
}
@@ -1601,6 +1605,13 @@ int virtio_load(VirtIODevice *vdev, QEMUFile *f, int
version_id)
}
}
+ if (vdc->vmsd) {
+ ret = vmstate_load_state(f, vdc->vmsd, vdev, version_id);
+ if (ret) {
+ return ret;
+ }
+ }
+
/* Subsections */
ret = vmstate_load_state(f, &vmstate_virtio, vdev, 1);
if (ret) {
diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
index d2490c1..fd386ac 100644
--- a/include/hw/virtio/virtio.h
+++ b/include/hw/virtio/virtio.h
@@ -124,8 +124,10 @@ typedef struct VirtioDeviceClass {
* must mask in frontend instead.
*/
void (*guest_notifier_mask)(VirtIODevice *vdev, int n, bool mask);
+ /* Saving and loading of a device; use *either* save/load OR vmsd */
void (*save)(VirtIODevice *vdev, QEMUFile *f);
int (*load)(VirtIODevice *vdev, QEMUFile *f, int version_id);
+ const VMStateDescription *vmsd;
} VirtioDeviceClass;
void virtio_instance_init_common(Object *proxy_obj, void *data,
--
2.7.4
- [Qemu-devel] [RFC 0/6] converting some of virtio to VMState, Dr. David Alan Gilbert (git), 2016/08/24
- [Qemu-devel] [RFC 3/6] migration: Add VMSTATE_UNUSED_VARRAY_UINT32, Dr. David Alan Gilbert (git), 2016/08/24
- [Qemu-devel] [RFC 2/6] migration: Report values for comparisons, Dr. David Alan Gilbert (git), 2016/08/24
- [Qemu-devel] [RFC 4/6] virtio/migration: Add VMStateDescription to VirtioDeviceClass,
Dr. David Alan Gilbert (git) <=
- [Qemu-devel] [RFC 6/6] virtio/migration: Migrate virtio-net to VMState, Dr. David Alan Gilbert (git), 2016/08/24
- [Qemu-devel] [RFC 1/6] migration: report an error giving the failed field, Dr. David Alan Gilbert (git), 2016/08/24
- [Qemu-devel] [RFC 5/6] virtio/migration: Migrate balloon to VMState, Dr. David Alan Gilbert (git), 2016/08/24
- Re: [Qemu-devel] [RFC 0/6] converting some of virtio to VMState, Cornelia Huck, 2016/08/24