static int blk_check_byte_request(BlockBackend *blk, int64_t offset,

                                  size_t size)

{

    int64_t len;



    if (size > INT_MAX) {

        return -EIO;

    }



    if (!blk_is_available(blk)) {

        return -ENOMEDIUM;

    }



    len = blk_getlength(blk);

    if (len < 0) {

        return len;

    }



    if (offset < 0) {

        return -EIO;

    }



    if (offset > len || len - offset < size) {

        return -EIO;

    }



    return 0;

}

static int blk_check_byte_request(BlockBackend *blk, int64_t offset,

                                  size_t size)

{

    int64_t len;



    if (size > INT_MAX) {

        return -EIO;

    }



    if (!blk_is_available(blk)) {

        return -ENOMEDIUM;

    }



    len = blk_getlength(blk);

    if (len < 0) {

        return len;

    }



    if (offset < 0) {

        return -EIO;

    }



    if (offset > len || len - offset < size) {

        return -EIO;

    }



    return 0;

}

static int FUNC_0(BlockBackend *VAR_0, int64_t VAR_1,

                                  size_t VAR_2)

{

    int64_t len;



    if (VAR_2 > INT_MAX) {

        return -EIO;

    }



    if (!blk_is_available(VAR_0)) {

        return -ENOMEDIUM;

    }



    len = blk_getlength(VAR_0);

    if (len < 0) {

        return len;

    }



    if (VAR_1 < 0) {

        return -EIO;

    }



    if (VAR_1 > len || len - VAR_1 < VAR_2) {

        return -EIO;

    }



    return 0;

}

static int FUNC_0(BlockBackend *VAR_0, int64_t VAR_1,
size_t VAR_2)
{ int64_t len; if (VAR_2 > INT_MAX) { return -EIO; } if (!blk_is_available(VAR_0)) { return -ENOMEDIUM; } len = blk_getlength(VAR_0); if (len < 0) { return len; } if (VAR_1 < 0) { return -EIO; } if (VAR_1 > len || len - VAR_1 < VAR_2) { return -EIO; } return 0; }