unsigned iov_copy(struct iovec *dst_iov, unsigned int dst_iov_cnt,

                 const struct iovec *iov, unsigned int iov_cnt,

                 size_t offset, size_t bytes)

{

    size_t len;

    unsigned int i, j;

    for (i = 0, j = 0; i < iov_cnt && j < dst_iov_cnt && bytes; i++) {

        if (offset >= iov[i].iov_len) {

            offset -= iov[i].iov_len;

            continue;

        }

        len = MIN(bytes, iov[i].iov_len - offset);



        dst_iov[j].iov_base = iov[i].iov_base + offset;

        dst_iov[j].iov_len = len;

        j++;

        bytes -= len;

        offset = 0;

    }

    assert(offset == 0);

    return j;

}

unsigned iov_copy(struct iovec *dst_iov, unsigned int dst_iov_cnt,

                 const struct iovec *iov, unsigned int iov_cnt,

                 size_t offset, size_t bytes)

{

    size_t len;

    unsigned int i, j;

    for (i = 0, j = 0; i < iov_cnt && j < dst_iov_cnt && bytes; i++) {

        if (offset >= iov[i].iov_len) {

            offset -= iov[i].iov_len;

            continue;

        }

        len = MIN(bytes, iov[i].iov_len - offset);



        dst_iov[j].iov_base = iov[i].iov_base + offset;

        dst_iov[j].iov_len = len;

        j++;

        bytes -= len;

        offset = 0;

    }

    assert(offset == 0);

    return j;

}

    for (i = 0, j = 0; i < iov_cnt && j < dst_iov_cnt && bytes; i++) {
unsigned FUNC_0(struct iovec *VAR_0, unsigned int VAR_1,

                 const struct iovec *VAR_2, unsigned int VAR_3,

                 size_t VAR_4, size_t VAR_5)

{

    size_t len;

    unsigned int VAR_6, VAR_7;

    for (VAR_6 = 0, VAR_7 = 0; VAR_6 < VAR_3 && VAR_7 < VAR_1 && VAR_5; VAR_6++) {

        if (VAR_4 >= VAR_2[VAR_6].iov_len) {

            VAR_4 -= VAR_2[VAR_6].iov_len;

            continue;

        }

        len = MIN(VAR_5, VAR_2[VAR_6].iov_len - VAR_4);



        VAR_0[VAR_7].iov_base = VAR_2[VAR_6].iov_base + VAR_4;

        VAR_0[VAR_7].iov_len = len;

        VAR_7++;

        VAR_5 -= len;

        VAR_4 = 0;

    }

    assert(VAR_4 == 0);

    return VAR_7;

}

unsigned FUNC_0(struct iovec *VAR_0, unsigned int VAR_1,
const struct iovec *VAR_2, unsigned int VAR_3,
size_t VAR_4, size_t VAR_5)
{ size_t len; unsigned int VAR_6, VAR_7; for (VAR_6 = 0, VAR_7 = 0; VAR_6 < VAR_3 && VAR_7 < VAR_1 && VAR_5; VAR_6++) { if (VAR_4 >= VAR_2[VAR_6].iov_len) { VAR_4 -= VAR_2[VAR_6].iov_len; continue; } len = MIN(VAR_5, VAR_2[VAR_6].iov_len - VAR_4); VAR_0[VAR_7].iov_base = VAR_2[VAR_6].iov_base + VAR_4; VAR_0[VAR_7].iov_len = len; VAR_7++; VAR_5 -= len; VAR_4 = 0; } assert(VAR_4 == 0); return VAR_7; }