static void virtio_scsi_parse_req(VirtIOSCSI *s, VirtQueue *vq,

                                  VirtIOSCSIReq *req)

{

    assert(req->elem.out_num && req->elem.in_num);

    req->vq = vq;

    req->dev = s;

    req->sreq = NULL;

    req->req.buf = req->elem.out_sg[0].iov_base;

    req->resp.buf = req->elem.in_sg[0].iov_base;



    if (req->elem.out_num > 1) {

        qemu_sgl_init_external(&req->qsgl, &req->elem.out_sg[1],

                               &req->elem.out_addr[1],

                               req->elem.out_num - 1);

    } else {

        qemu_sgl_init_external(&req->qsgl, &req->elem.in_sg[1],

                               &req->elem.in_addr[1],

                               req->elem.in_num - 1);

    }

}

static void virtio_scsi_parse_req(VirtIOSCSI *s, VirtQueue *vq,

                                  VirtIOSCSIReq *req)

{

    assert(req->elem.out_num && req->elem.in_num);

    req->vq = vq;

    req->dev = s;

    req->sreq = NULL;

    req->req.buf = req->elem.out_sg[0].iov_base;

    req->resp.buf = req->elem.in_sg[0].iov_base;



    if (req->elem.out_num > 1) {

        qemu_sgl_init_external(&req->qsgl, &req->elem.out_sg[1],

                               &req->elem.out_addr[1],

                               req->elem.out_num - 1);

    } else {

        qemu_sgl_init_external(&req->qsgl, &req->elem.in_sg[1],

                               &req->elem.in_addr[1],

                               req->elem.in_num - 1);

    }

}

static void FUNC_0(VirtIOSCSI *VAR_0, VirtQueue *VAR_1,

                                  VirtIOSCSIReq *VAR_2)

{

    assert(VAR_2->elem.out_num && VAR_2->elem.in_num);

    VAR_2->VAR_1 = VAR_1;

    VAR_2->dev = VAR_0;

    VAR_2->sreq = NULL;

    VAR_2->VAR_2.buf = VAR_2->elem.out_sg[0].iov_base;

    VAR_2->resp.buf = VAR_2->elem.in_sg[0].iov_base;



    if (VAR_2->elem.out_num > 1) {

        qemu_sgl_init_external(&VAR_2->qsgl, &VAR_2->elem.out_sg[1],

                               &VAR_2->elem.out_addr[1],

                               VAR_2->elem.out_num - 1);

    } else {

        qemu_sgl_init_external(&VAR_2->qsgl, &VAR_2->elem.in_sg[1],

                               &VAR_2->elem.in_addr[1],

                               VAR_2->elem.in_num - 1);

    }

}

static void FUNC_0(VirtIOSCSI *VAR_0, VirtQueue *VAR_1,
VirtIOSCSIReq *VAR_2)
{ assert(VAR_2->elem.out_num && VAR_2->elem.in_num); VAR_2->VAR_1 = VAR_1; VAR_2->dev = VAR_0; VAR_2->sreq = NULL; VAR_2->VAR_2.buf = VAR_2->elem.out_sg[0].iov_base; VAR_2->resp.buf = VAR_2->elem.in_sg[0].iov_base; if (VAR_2->elem.out_num > 1) { qemu_sgl_init_external(&VAR_2->qsgl, &VAR_2->elem.out_sg[1],
&VAR_2->elem.out_addr[1],
VAR_2->elem.out_num - 1); } else { qemu_sgl_init_external(&VAR_2->qsgl, &VAR_2->elem.in_sg[1],
&VAR_2->elem.in_addr[1],
VAR_2->elem.in_num - 1); } }