[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v4 44/57] virtio: Migration helper function and macro
From: |
Michael S. Tsirkin |
Subject: |
[Qemu-devel] [PULL v4 44/57] virtio: Migration helper function and macro |
Date: |
Thu, 21 Jul 2016 19:29:40 +0300 |
From: "Dr. David Alan Gilbert" <address@hidden>
To make conversion of virtio devices to VMState simple
at first add a helper function for the simple virtio_save
case and a helper macro that defines the VMState structure.
These will probably go away or change as more of the virtio
code gets converted.
Signed-off-by: Dr. David Alan Gilbert <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
---
include/hw/virtio/virtio.h | 20 ++++++++++++++++++++
hw/virtio/virtio.c | 6 ++++++
2 files changed, 26 insertions(+)
diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
index 7a82f79..d2490c1 100644
--- a/include/hw/virtio/virtio.h
+++ b/include/hw/virtio/virtio.h
@@ -171,6 +171,26 @@ bool virtio_should_notify(VirtIODevice *vdev, VirtQueue
*vq);
void virtio_notify(VirtIODevice *vdev, VirtQueue *vq);
void virtio_save(VirtIODevice *vdev, QEMUFile *f);
+void virtio_vmstate_save(QEMUFile *f, void *opaque, size_t size);
+
+#define VMSTATE_VIRTIO_DEVICE(devname, v, getf, putf) \
+ static const VMStateDescription vmstate_virtio_ ## devname = { \
+ .name = "virtio-" #devname , \
+ .minimum_version_id = v, \
+ .version_id = v, \
+ .fields = (VMStateField[]) { \
+ { \
+ .name = "virtio", \
+ .info = &(const VMStateInfo) {\
+ .name = "virtio", \
+ .get = getf, \
+ .put = putf, \
+ }, \
+ .flags = VMS_SINGLE, \
+ }, \
+ VMSTATE_END_OF_LIST() \
+ } \
+ }
int virtio_load(VirtIODevice *vdev, QEMUFile *f, int version_id);
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 2fbed0c..752b271 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -1464,6 +1464,12 @@ void virtio_save(VirtIODevice *vdev, QEMUFile *f)
vmstate_save_state(f, &vmstate_virtio, vdev, NULL);
}
+/* A wrapper for use as a VMState .put function */
+void virtio_vmstate_save(QEMUFile *f, void *opaque, size_t size)
+{
+ virtio_save(VIRTIO_DEVICE(opaque), f);
+}
+
static int virtio_set_features_nocheck(VirtIODevice *vdev, uint64_t val)
{
VirtioDeviceClass *k = VIRTIO_DEVICE_GET_CLASS(vdev);
--
MST
- [Qemu-devel] [PULL v4 34/57] kvm-all: add trace events for kvm irqchip ops, (continued)
- [Qemu-devel] [PULL v4 34/57] kvm-all: add trace events for kvm irqchip ops, Michael S. Tsirkin, 2016/07/21
- [Qemu-devel] [PULL v4 35/57] intel_iommu: disallow kernel-irqchip=on with IR, Michael S. Tsirkin, 2016/07/21
- [Qemu-devel] [PULL v4 36/57] virtio: Add typedef for handle_output, Michael S. Tsirkin, 2016/07/21
- [Qemu-devel] [PULL v4 37/57] virtio: Introduce virtio_add_queue_aio, Michael S. Tsirkin, 2016/07/21
- [Qemu-devel] [PULL v4 39/57] virtio-scsi: Call virtio_add_queue_aio, Michael S. Tsirkin, 2016/07/21
- [Qemu-devel] [PULL v4 38/57] virtio-blk: Call virtio_add_queue_aio, Michael S. Tsirkin, 2016/07/21
- [Qemu-devel] [PULL v4 40/57] Revert "mirror: Workaround for unexpected iohandler events during completion", Michael S. Tsirkin, 2016/07/21
- [Qemu-devel] [PULL v4 41/57] virtio-scsi: Replace HandleOutput typedef, Michael S. Tsirkin, 2016/07/21
- [Qemu-devel] [PULL v4 42/57] virtio-net: Remove old migration version support, Michael S. Tsirkin, 2016/07/21
- [Qemu-devel] [PULL v4 43/57] virtio-serial: Remove old migration version support, Michael S. Tsirkin, 2016/07/21
- [Qemu-devel] [PULL v4 44/57] virtio: Migration helper function and macro,
Michael S. Tsirkin <=
- [Qemu-devel] [PULL v4 45/57] virtio-scsi: Wrap in vmstate, Michael S. Tsirkin, 2016/07/21
- [Qemu-devel] [PULL v4 47/57] virtio-rng: Wrap in vmstate, Michael S. Tsirkin, 2016/07/21
- [Qemu-devel] [PULL v4 48/57] virtio-balloon: Wrap in vmstate, Michael S. Tsirkin, 2016/07/21
- [Qemu-devel] [PULL v4 46/57] virtio-blk: Wrap in vmstate, Michael S. Tsirkin, 2016/07/21
- [Qemu-devel] [PULL v4 49/57] virtio-net: Wrap in vmstate, Michael S. Tsirkin, 2016/07/21
- [Qemu-devel] [PULL v4 50/57] virtio-serial: Wrap in vmstate, Michael S. Tsirkin, 2016/07/21
- [Qemu-devel] [PULL v4 51/57] 9pfs: Wrap in vmstate, Michael S. Tsirkin, 2016/07/21
- [Qemu-devel] [PULL v4 52/57] virtio-input: Wrap in vmstate, Michael S. Tsirkin, 2016/07/21
- [Qemu-devel] [PULL v4 53/57] virtio-gpu: Use migrate_add_blocker for virgl migration blocking, Michael S. Tsirkin, 2016/07/21
- [Qemu-devel] [PULL v4 54/57] virtio-gpu: Wrap in vmstate, Michael S. Tsirkin, 2016/07/21