mirror of https://gitlab.com/qemu-project/qemu
migration/virtio: Remove simple .get/.put use
The 'virtqueue_state' and 'ringsize' can be saved using VMSTATE macros rather than hand coded .get/.put Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Amit Shah <amit.shah@redhat.com>
This commit is contained in:
parent
2cf0148674
commit
50e5ae4dc3
|
@ -1126,33 +1126,15 @@ static bool virtio_extra_state_needed(void *opaque)
|
||||||
k->has_extra_state(qbus->parent);
|
k->has_extra_state(qbus->parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void put_virtqueue_state(QEMUFile *f, void *pv, size_t size)
|
static const VMStateDescription vmstate_virtqueue = {
|
||||||
{
|
|
||||||
VirtIODevice *vdev = pv;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i < VIRTIO_QUEUE_MAX; i++) {
|
|
||||||
qemu_put_be64(f, vdev->vq[i].vring.avail);
|
|
||||||
qemu_put_be64(f, vdev->vq[i].vring.used);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static int get_virtqueue_state(QEMUFile *f, void *pv, size_t size)
|
|
||||||
{
|
|
||||||
VirtIODevice *vdev = pv;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i < VIRTIO_QUEUE_MAX; i++) {
|
|
||||||
vdev->vq[i].vring.avail = qemu_get_be64(f);
|
|
||||||
vdev->vq[i].vring.used = qemu_get_be64(f);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static VMStateInfo vmstate_info_virtqueue = {
|
|
||||||
.name = "virtqueue_state",
|
.name = "virtqueue_state",
|
||||||
.get = get_virtqueue_state,
|
.version_id = 1,
|
||||||
.put = put_virtqueue_state,
|
.minimum_version_id = 1,
|
||||||
|
.fields = (VMStateField[]) {
|
||||||
|
VMSTATE_UINT64(vring.avail, struct VirtQueue),
|
||||||
|
VMSTATE_UINT64(vring.used, struct VirtQueue),
|
||||||
|
VMSTATE_END_OF_LIST()
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static const VMStateDescription vmstate_virtio_virtqueues = {
|
static const VMStateDescription vmstate_virtio_virtqueues = {
|
||||||
|
@ -1161,44 +1143,20 @@ static const VMStateDescription vmstate_virtio_virtqueues = {
|
||||||
.minimum_version_id = 1,
|
.minimum_version_id = 1,
|
||||||
.needed = &virtio_virtqueue_needed,
|
.needed = &virtio_virtqueue_needed,
|
||||||
.fields = (VMStateField[]) {
|
.fields = (VMStateField[]) {
|
||||||
{
|
VMSTATE_STRUCT_VARRAY_KNOWN(vq, struct VirtIODevice, VIRTIO_QUEUE_MAX,
|
||||||
.name = "virtqueues",
|
0, vmstate_virtqueue, VirtQueue),
|
||||||
.version_id = 0,
|
|
||||||
.field_exists = NULL,
|
|
||||||
.size = 0,
|
|
||||||
.info = &vmstate_info_virtqueue,
|
|
||||||
.flags = VMS_SINGLE,
|
|
||||||
.offset = 0,
|
|
||||||
},
|
|
||||||
VMSTATE_END_OF_LIST()
|
VMSTATE_END_OF_LIST()
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static void put_ringsize_state(QEMUFile *f, void *pv, size_t size)
|
static const VMStateDescription vmstate_ringsize = {
|
||||||
{
|
|
||||||
VirtIODevice *vdev = pv;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i < VIRTIO_QUEUE_MAX; i++) {
|
|
||||||
qemu_put_be32(f, vdev->vq[i].vring.num_default);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static int get_ringsize_state(QEMUFile *f, void *pv, size_t size)
|
|
||||||
{
|
|
||||||
VirtIODevice *vdev = pv;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i < VIRTIO_QUEUE_MAX; i++) {
|
|
||||||
vdev->vq[i].vring.num_default = qemu_get_be32(f);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static VMStateInfo vmstate_info_ringsize = {
|
|
||||||
.name = "ringsize_state",
|
.name = "ringsize_state",
|
||||||
.get = get_ringsize_state,
|
.version_id = 1,
|
||||||
.put = put_ringsize_state,
|
.minimum_version_id = 1,
|
||||||
|
.fields = (VMStateField[]) {
|
||||||
|
VMSTATE_UINT32(vring.num_default, struct VirtQueue),
|
||||||
|
VMSTATE_END_OF_LIST()
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static const VMStateDescription vmstate_virtio_ringsize = {
|
static const VMStateDescription vmstate_virtio_ringsize = {
|
||||||
|
@ -1207,15 +1165,8 @@ static const VMStateDescription vmstate_virtio_ringsize = {
|
||||||
.minimum_version_id = 1,
|
.minimum_version_id = 1,
|
||||||
.needed = &virtio_ringsize_needed,
|
.needed = &virtio_ringsize_needed,
|
||||||
.fields = (VMStateField[]) {
|
.fields = (VMStateField[]) {
|
||||||
{
|
VMSTATE_STRUCT_VARRAY_KNOWN(vq, struct VirtIODevice, VIRTIO_QUEUE_MAX,
|
||||||
.name = "ringsize",
|
0, vmstate_ringsize, VirtQueue),
|
||||||
.version_id = 0,
|
|
||||||
.field_exists = NULL,
|
|
||||||
.size = 0,
|
|
||||||
.info = &vmstate_info_ringsize,
|
|
||||||
.flags = VMS_SINGLE,
|
|
||||||
.offset = 0,
|
|
||||||
},
|
|
||||||
VMSTATE_END_OF_LIST()
|
VMSTATE_END_OF_LIST()
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue