static int virtio_blk_load_device(VirtIODevice *vdev, QEMUFile *f,

                                  int version_id)

{

    VirtIOBlock *s = VIRTIO_BLK(vdev);



    while (qemu_get_sbyte(f)) {

        unsigned nvqs = s->conf.num_queues;

        unsigned vq_idx = 0;

        VirtIOBlockReq *req;



        if (nvqs > 1) {

            vq_idx = qemu_get_be32(f);



            if (vq_idx >= nvqs) {

                error_report("Invalid virtqueue index in request list: %#x",

                             vq_idx);

                return -EINVAL;

            }

        }



        req = qemu_get_virtqueue_element(f, sizeof(VirtIOBlockReq));

        virtio_blk_init_request(s, virtio_get_queue(vdev, vq_idx), req);

        req->next = s->rq;

        s->rq = req;

    }



    return 0;

}

static int virtio_blk_load_device(VirtIODevice *vdev, QEMUFile *f,

                                  int version_id)

{

    VirtIOBlock *s = VIRTIO_BLK(vdev);



    while (qemu_get_sbyte(f)) {

        unsigned nvqs = s->conf.num_queues;

        unsigned vq_idx = 0;

        VirtIOBlockReq *req;



        if (nvqs > 1) {

            vq_idx = qemu_get_be32(f);



            if (vq_idx >= nvqs) {

                error_report("Invalid virtqueue index in request list: %#x",

                             vq_idx);

                return -EINVAL;

            }

        }



        req = qemu_get_virtqueue_element(f, sizeof(VirtIOBlockReq));

        virtio_blk_init_request(s, virtio_get_queue(vdev, vq_idx), req);

        req->next = s->rq;

        s->rq = req;

    }



    return 0;

}

static int FUNC_0(VirtIODevice *VAR_0, QEMUFile *VAR_1,

                                  int VAR_2)

{

    VirtIOBlock *s = VIRTIO_BLK(VAR_0);



    while (qemu_get_sbyte(VAR_1)) {

        unsigned VAR_3 = s->conf.num_queues;

        unsigned VAR_4 = 0;

        VirtIOBlockReq *req;



        if (VAR_3 > 1) {

            VAR_4 = qemu_get_be32(VAR_1);



            if (VAR_4 >= VAR_3) {

                error_report("Invalid virtqueue index in request list: %#x",

                             VAR_4);

                return -EINVAL;

            }

        }



        req = qemu_get_virtqueue_element(VAR_1, sizeof(VirtIOBlockReq));

        virtio_blk_init_request(s, virtio_get_queue(VAR_0, VAR_4), req);

        req->next = s->rq;

        s->rq = req;

    }



    return 0;

}

static int FUNC_0(VirtIODevice *VAR_0, QEMUFile *VAR_1,
int VAR_2)
{ VirtIOBlock *s = VIRTIO_BLK(VAR_0); while (qemu_get_sbyte(VAR_1)) { unsigned VAR_3 = s->conf.num_queues; unsigned VAR_4 = 0; VirtIOBlockReq *req; if (VAR_3 > 1) { VAR_4 = qemu_get_be32(VAR_1); if (VAR_4 >= VAR_3) { error_report("Invalid virtqueue index in request list: %#x",
VAR_4); return -EINVAL; } } req = qemu_get_virtqueue_element(VAR_1, sizeof(VirtIOBlockReq)); virtio_blk_init_request(s, virtio_get_queue(VAR_0, VAR_4), req); req->next = s->rq; s->rq = req; } return 0; }