[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 03/13] virtio: Migration helper function and mac
From: |
Cornelia Huck |
Subject: |
Re: [Qemu-devel] [PATCH 03/13] virtio: Migration helper function and macro |
Date: |
Wed, 22 Jun 2016 19:39:02 +0200 |
On Tue, 21 Jun 2016 20:13:57 +0100
"Dr. David Alan Gilbert (git)" <address@hidden> wrote:
> 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>
> ---
> hw/virtio/virtio.c | 6 ++++++
> include/hw/virtio/virtio.h | 20 ++++++++++++++++++++
> 2 files changed, 26 insertions(+)
>
> diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
> index 7ed06ea..7322018 100644
> --- a/hw/virtio/virtio.c
> +++ b/hw/virtio/virtio.c
> @@ -1444,6 +1444,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);
> +}
> +
Providing a macro that generates a .get function for a given version is
probably overkill.
> static int virtio_set_features_nocheck(VirtIODevice *vdev, uint64_t val)
> {
> VirtioDeviceClass *k = VIRTIO_DEVICE_GET_CLASS(vdev);
> diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
> index 96b581d..b6887e7 100644
> --- a/include/hw/virtio/virtio.h
> +++ b/include/hw/virtio/virtio.h
> @@ -167,6 +167,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);
>
Looks reasonable as a first step.
Reviewed-by: Cornelia Huck <address@hidden>
- [Qemu-devel] [PATCH 00/13] virtio migration: Flip outer layer to vmstate, Dr. David Alan Gilbert (git), 2016/06/21
- [Qemu-devel] [PATCH 03/13] virtio: Migration helper function and macro, Dr. David Alan Gilbert (git), 2016/06/21
- Re: [Qemu-devel] [PATCH 03/13] virtio: Migration helper function and macro,
Cornelia Huck <=
- [Qemu-devel] [PATCH 04/13] virtio-scsi: Wrap in vmstate, Dr. David Alan Gilbert (git), 2016/06/21
- [Qemu-devel] [PATCH 01/13] virtio-net: Remove old migration version support, Dr. David Alan Gilbert (git), 2016/06/21
- [Qemu-devel] [PATCH 05/13] virtio-blk: Wrap in vmstate, Dr. David Alan Gilbert (git), 2016/06/21
- [Qemu-devel] [PATCH 08/13] virtio-net: Wrap in vmstate, Dr. David Alan Gilbert (git), 2016/06/21
- [Qemu-devel] [PATCH 09/13] virtio-serial: Wrap in vmstate, Dr. David Alan Gilbert (git), 2016/06/21