int virtio_scsi_read_many(VDev *vdev,

                          ulong sector, void *load_addr, int sec_num)

{

    int sector_count;

    int f = vdev->blk_factor;

    unsigned int data_size;



    do {

        sector_count = MIN_NON_ZERO(sec_num, vdev->config.scsi.max_sectors);

        data_size = sector_count * virtio_get_block_size() * f;

        if (!scsi_read_10(vdev, sector * f, sector_count * f, load_addr,

                          data_size)) {

            virtio_scsi_verify_response(&resp, "virtio-scsi:read_many");

        }

        load_addr += data_size;

        sector += sector_count;

        sec_num -= sector_count;

    } while (sec_num > 0);



    return 0;

}

int virtio_scsi_read_many(VDev *vdev,

                          ulong sector, void *load_addr, int sec_num)

{

    int sector_count;

    int f = vdev->blk_factor;

    unsigned int data_size;



    do {

        sector_count = MIN_NON_ZERO(sec_num, vdev->config.scsi.max_sectors);

        data_size = sector_count * virtio_get_block_size() * f;

        if (!scsi_read_10(vdev, sector * f, sector_count * f, load_addr,

                          data_size)) {

            virtio_scsi_verify_response(&resp, "virtio-scsi:read_many");

        }

        load_addr += data_size;

        sector += sector_count;

        sec_num -= sector_count;

    } while (sec_num > 0);



    return 0;

}

int FUNC_0(VDev *VAR_0,

                          ulong VAR_1, void *VAR_2, int VAR_3)

{

    int VAR_4;

    int VAR_5 = VAR_0->blk_factor;

    unsigned int VAR_6;



    do {

        VAR_4 = MIN_NON_ZERO(VAR_3, VAR_0->config.scsi.max_sectors);

        VAR_6 = VAR_4 * virtio_get_block_size() * VAR_5;

        if (!scsi_read_10(VAR_0, VAR_1 * VAR_5, VAR_4 * VAR_5, VAR_2,

                          VAR_6)) {

            virtio_scsi_verify_response(&resp, "virtio-scsi:read_many");

        }

        VAR_2 += VAR_6;

        VAR_1 += VAR_4;

        VAR_3 -= VAR_4;

    } while (VAR_3 > 0);



    return 0;

}

int FUNC_0(VDev *VAR_0,
ulong VAR_1, void *VAR_2, int VAR_3)
{ int VAR_4; int VAR_5 = VAR_0->blk_factor; unsigned int VAR_6; do { VAR_4 = MIN_NON_ZERO(VAR_3, VAR_0->config.scsi.max_sectors); VAR_6 = VAR_4 * virtio_get_block_size() * VAR_5; if (!scsi_read_10(VAR_0, VAR_1 * VAR_5, VAR_4 * VAR_5, VAR_2,
VAR_6)) { virtio_scsi_verify_response(&resp, "virtio-scsi:read_many"); } VAR_2 += VAR_6; VAR_1 += VAR_4; VAR_3 -= VAR_4; } while (VAR_3 > 0); return 0; }