static int pdu_copy_sg(V9fsPDU *pdu, size_t offset, int rx, struct iovec *sg)

{

    size_t pos = 0;

    int i, j;

    struct iovec *src_sg;

    unsigned int num;



    if (rx) {

        src_sg = pdu->elem.in_sg;

        num = pdu->elem.in_num;

    } else {

        src_sg = pdu->elem.out_sg;

        num = pdu->elem.out_num;

    }



    j = 0;

    for (i = 0; i < num; i++) {

        if (offset <= pos) {

            sg[j].iov_base = src_sg[i].iov_base;

            sg[j].iov_len = src_sg[i].iov_len;

            j++;

        } else if (offset < (src_sg[i].iov_len + pos)) {

            sg[j].iov_base = src_sg[i].iov_base;

            sg[j].iov_len = src_sg[i].iov_len;

            sg[j].iov_base += (offset - pos);

            sg[j].iov_len -= (offset - pos);

            j++;

        }

        pos += src_sg[i].iov_len;

    }



    return j;

}

static int pdu_copy_sg(V9fsPDU *pdu, size_t offset, int rx, struct iovec *sg)

{

    size_t pos = 0;

    int i, j;

    struct iovec *src_sg;

    unsigned int num;



    if (rx) {

        src_sg = pdu->elem.in_sg;

        num = pdu->elem.in_num;

    } else {

        src_sg = pdu->elem.out_sg;

        num = pdu->elem.out_num;

    }



    j = 0;

    for (i = 0; i < num; i++) {

        if (offset <= pos) {

            sg[j].iov_base = src_sg[i].iov_base;

            sg[j].iov_len = src_sg[i].iov_len;

            j++;

        } else if (offset < (src_sg[i].iov_len + pos)) {

            sg[j].iov_base = src_sg[i].iov_base;

            sg[j].iov_len = src_sg[i].iov_len;

            sg[j].iov_base += (offset - pos);

            sg[j].iov_len -= (offset - pos);

            j++;

        }

        pos += src_sg[i].iov_len;

    }



    return j;

}

static int pdu_copy_sg(V9fsPDU *pdu, size_t offset, int rx, struct iovec *sg)     size_t pos = 0;     int i, j;     struct iovec *src_sg;     unsigned int num;     if (rx) {         src_sg = pdu->elem.in_sg;         num = pdu->elem.in_num;     } else {         src_sg = pdu->elem.out_sg;         num = pdu->elem.out_num;     j = 0;     for (i = 0; i < num; i++) {         if (offset <= pos) {             sg[j].iov_base = src_sg[i].iov_base;             sg[j].iov_len = src_sg[i].iov_len;             j++;         } else if (offset < (src_sg[i].iov_len + pos)) {             sg[j].iov_base = src_sg[i].iov_base;             sg[j].iov_len = src_sg[i].iov_len;             sg[j].iov_base += (offset - pos);             sg[j].iov_len -= (offset - pos);             j++;         pos += src_sg[i].iov_len;     return j;
static int FUNC_0(V9fsPDU *VAR_0, size_t VAR_1, int VAR_2, struct iovec *VAR_3)

{

    size_t pos = 0;

    int VAR_4, VAR_5;

    struct iovec *VAR_6;

    unsigned int VAR_7;



    if (VAR_2) {

        VAR_6 = VAR_0->elem.in_sg;

        VAR_7 = VAR_0->elem.in_num;

    } else {

        VAR_6 = VAR_0->elem.out_sg;

        VAR_7 = VAR_0->elem.out_num;

    }



    VAR_5 = 0;

    for (VAR_4 = 0; VAR_4 < VAR_7; VAR_4++) {

        if (VAR_1 <= pos) {

            VAR_3[VAR_5].iov_base = VAR_6[VAR_4].iov_base;

            VAR_3[VAR_5].iov_len = VAR_6[VAR_4].iov_len;

            VAR_5++;

        } else if (VAR_1 < (VAR_6[VAR_4].iov_len + pos)) {

            VAR_3[VAR_5].iov_base = VAR_6[VAR_4].iov_base;

            VAR_3[VAR_5].iov_len = VAR_6[VAR_4].iov_len;

            VAR_3[VAR_5].iov_base += (VAR_1 - pos);

            VAR_3[VAR_5].iov_len -= (VAR_1 - pos);

            VAR_5++;

        }

        pos += VAR_6[VAR_4].iov_len;

    }



    return VAR_5;

}

static int FUNC_0(V9fsPDU *VAR_0, size_t VAR_1, int VAR_2, struct iovec *VAR_3)
{ size_t pos = 0; int VAR_4, VAR_5; struct iovec *VAR_6; unsigned int VAR_7; if (VAR_2) { VAR_6 = VAR_0->elem.in_sg; VAR_7 = VAR_0->elem.in_num; } else { VAR_6 = VAR_0->elem.out_sg; VAR_7 = VAR_0->elem.out_num; } VAR_5 = 0; for (VAR_4 = 0; VAR_4 < VAR_7; VAR_4++) { if (VAR_1 <= pos) { VAR_3[VAR_5].iov_base = VAR_6[VAR_4].iov_base; VAR_3[VAR_5].iov_len = VAR_6[VAR_4].iov_len; VAR_5++; } else if (VAR_1 < (VAR_6[VAR_4].iov_len + pos)) { VAR_3[VAR_5].iov_base = VAR_6[VAR_4].iov_base; VAR_3[VAR_5].iov_len = VAR_6[VAR_4].iov_len; VAR_3[VAR_5].iov_base += (VAR_1 - pos); VAR_3[VAR_5].iov_len -= (VAR_1 - pos); VAR_5++; } pos += VAR_6[VAR_4].iov_len; } return VAR_5; }