[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v8 06/20] virtio-balloon: implement per-device migra
From: |
Greg Kurz |
Subject: |
[Qemu-devel] [PATCH v8 06/20] virtio-balloon: implement per-device migration calls |
Date: |
Fri, 13 Jun 2014 13:20:44 +0200 |
User-agent: |
StGit/0.17-dirty |
Signed-off-by: Greg Kurz <address@hidden>
---
hw/virtio/virtio-balloon.c | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c
index f35d883..84d1733 100644
--- a/hw/virtio/virtio-balloon.c
+++ b/hw/virtio/virtio-balloon.c
@@ -323,10 +323,12 @@ static void virtio_balloon_to_target(void *opaque,
ram_addr_t target)
static void virtio_balloon_save(QEMUFile *f, void *opaque)
{
- VirtIOBalloon *s = VIRTIO_BALLOON(opaque);
- VirtIODevice *vdev = VIRTIO_DEVICE(s);
+ virtio_save(VIRTIO_DEVICE(opaque), f);
+}
- virtio_save(vdev, f);
+static void virtio_balloon_save_device(VirtIODevice *vdev, QEMUFile *f)
+{
+ VirtIOBalloon *s = VIRTIO_BALLOON(vdev);
qemu_put_be32(f, s->num_pages);
qemu_put_be32(f, s->actual);
@@ -334,17 +336,16 @@ static void virtio_balloon_save(QEMUFile *f, void *opaque)
static int virtio_balloon_load(QEMUFile *f, void *opaque, int version_id)
{
- VirtIOBalloon *s = VIRTIO_BALLOON(opaque);
- VirtIODevice *vdev = VIRTIO_DEVICE(s);
- int ret;
-
if (version_id != 1)
return -EINVAL;
- ret = virtio_load(vdev, f, version_id);
- if (ret) {
- return ret;
- }
+ return virtio_load(VIRTIO_DEVICE(opaque), f, version_id);
+}
+
+static int virtio_balloon_load_device(VirtIODevice *vdev, QEMUFile *f,
+ int version_id)
+{
+ VirtIOBalloon *s = VIRTIO_BALLOON(vdev);
s->num_pages = qemu_get_be32(f);
s->actual = qemu_get_be32(f);
@@ -414,6 +415,8 @@ static void virtio_balloon_class_init(ObjectClass *klass,
void *data)
vdc->get_config = virtio_balloon_get_config;
vdc->set_config = virtio_balloon_set_config;
vdc->get_features = virtio_balloon_get_features;
+ vdc->save = virtio_balloon_save_device;
+ vdc->load = virtio_balloon_load_device;
}
static const TypeInfo virtio_balloon_info = {
- [Qemu-devel] [PATCH v8 00/20] virtio endian-ambivalent target, Greg Kurz, 2014/06/13
- [Qemu-devel] [PATCH v8 01/20] virtio-serial: don't migrate the config space, Greg Kurz, 2014/06/13
- [Qemu-devel] [PATCH v8 02/20] virtio: introduce device specific migration calls, Greg Kurz, 2014/06/13
- [Qemu-devel] [PATCH v8 03/20] virtio-net: implement per-device migration calls, Greg Kurz, 2014/06/13
- [Qemu-devel] [PATCH v8 04/20] virtio-blk: implement per-device migration calls, Greg Kurz, 2014/06/13
- [Qemu-devel] [PATCH v8 05/20] virtio-serial: implement per-device migration calls, Greg Kurz, 2014/06/13
- [Qemu-devel] [PATCH v8 06/20] virtio-balloon: implement per-device migration calls,
Greg Kurz <=
- [Qemu-devel] [PATCH v8 07/20] virtio-rng: implement per-device migration calls, Greg Kurz, 2014/06/13
- [Qemu-devel] [PATCH v8 08/20] virtio: add subsections to the migration stream, Greg Kurz, 2014/06/13
- [Qemu-devel] [PATCH v8 09/20] exec: introduce target_words_bigendian() helper, Greg Kurz, 2014/06/13
- [Qemu-devel] [PATCH v8 10/20] cpu: introduce CPUClass::virtio_is_big_endian(), Greg Kurz, 2014/06/13
- [Qemu-devel] [PATCH v8 11/20] virtio: add endian-ambivalent support to VirtIODevice, Greg Kurz, 2014/06/13