Lines Matching defs:head

178 	const struct kvec *head = xdr->head;
182 if (head->iov_len) {
183 bvec_set_virt(bvec++, head->iov_base, head->iov_len);
230 struct kvec *head = xdr->head;
232 char *buf = (char *)head->iov_base;
233 unsigned int buflen = head->iov_len;
235 head->iov_len = offset;
537 if (buflen <= buf->head->iov_len)
539 pagelen = buflen - buf->head->iov_len;
560 struct kvec *head = buf->head;
562 unsigned int sum = head->iov_len + buf->page_len + tail->iov_len;
635 const struct kvec *head = buf->head;
641 if (base >= head->iov_len)
643 if (len > head->iov_len - base)
644 len = head->iov_len - base;
645 if (to >= buf->page_len + head->iov_len) {
646 tato = to - buf->page_len - head->iov_len;
648 } else if (to >= head->iov_len) {
649 pgto = to - head->iov_len;
667 memcpy(tail->iov_base + tato, head->iov_base + base, talen);
671 _copy_to_pages(buf->pages, buf->page_base + pgto, head->iov_base + base,
675 memmove(head->iov_base + to, head->iov_base + base, len);
709 const struct kvec *head = buf->head;
713 if (base >= head->iov_len) {
714 xdr_buf_pages_shift_right(buf, head->iov_len - base, len,
718 if (base + len > head->iov_len)
719 xdr_buf_pages_shift_right(buf, 0, base + len - head->iov_len,
733 /* Shift data into head */
735 const struct kvec *head = buf->head;
737 head->iov_len + buf->page_len + base - shift;
740 if (WARN_ONCE(shift > head->iov_len + buf->page_len + base,
743 if (hdto + hdlen > head->iov_len)
744 hdlen = head->iov_len - hdto;
745 memcpy(head->iov_base + hdto, tail->iov_base + base, hdlen);
778 /* Shift data into head */
780 const struct kvec *head = buf->head;
781 unsigned int hdto = head->iov_len + base - shift;
784 if (WARN_ONCE(shift > head->iov_len + base,
787 if (hdto + hdlen > head->iov_len)
788 hdlen = head->iov_len - hdto;
789 _copy_from_pages(head->iov_base + hdto, buf->pages,
831 const struct kvec *head = buf->head;
845 if (base < head->iov_len) {
846 bytes = min_t(unsigned int, len, head->iov_len - base);
847 memmove(head->iov_base + (base - shift),
848 head->iov_base + base, bytes);
852 xdr_buf_pages_shift_left(buf, base - head->iov_len, len, shift);
858 * @len: new length of buf->head[0]
860 * Shrinks XDR buffer's header kvec buf->head[0], setting it to
866 struct kvec *head = buf->head;
869 WARN_ON_ONCE(len > head->iov_len);
870 if (head->iov_len > buflen) {
871 buf->buflen -= head->iov_len - buflen;
872 head->iov_len = buflen;
874 if (len >= head->iov_len)
876 shift = head->iov_len - len;
879 head->iov_len = len;
895 unsigned int shift, buflen = buf->len - buf->head->iov_len;
898 if (buf->head->iov_len >= buf->len || len > buflen)
934 xdr_stream_set_pos(xdr, pos + xdr->buf->head[0].iov_len);
945 WARN_ON(pos < xdr->buf->head[0].iov_len);
946 return pos - xdr->buf->head[0].iov_len;
967 struct kvec *iov = buf->head;
1040 * xdr->buf->head and xdr->buf->pages, or between two pages
1145 if (xdr->iov == xdr->buf->head) {
1173 * head, tail, and page lengths are adjusted to correspond.
1177 * except in the case of the head buffer when we assume the head
1188 struct kvec *head = buf->head;
1225 xdr->end = head->iov_base + head->iov_len;
1228 head->iov_len = len;
1230 xdr->p = head->iov_base + head->iov_len;
1231 xdr->iov = buf->head;
1287 * end of the head buffer, and the stream is set up to encode subsequent
1337 xdr_stream_set_pos(xdr, base + buf->page_len + buf->head->iov_len);
1415 else if (xdr->iov == xdr->buf->head)
1434 if (xdr_set_iov(xdr, buf->head, 0, buf->len) == 0 &&
1544 struct kvec *iov = buf->head;
1585 * Moves data beyond the current pointer position from the XDR head[] buffer
1644 * Moves data beyond the current pointer position from the XDR head[] buffer
1665 buf->head[0] = *iov;
1690 if (base < buf->head[0].iov_len) {
1691 subbuf->head[0].iov_base = buf->head[0].iov_base + base;
1692 subbuf->head[0].iov_len = min_t(unsigned int, len,
1693 buf->head[0].iov_len - base);
1694 len -= subbuf->head[0].iov_len;
1697 base -= buf->head[0].iov_len;
1698 subbuf->head[0].iov_base = buf->head[0].iov_base;
1699 subbuf->head[0].iov_len = 0;
1825 if (buf.head[0].iov_len)
1826 xdr_buf_iov_zero(buf.head, 0, buf.head[0].iov_len);
1842 * too small, or if (for instance) it's all in the head and the parser has
1866 if (buf->head[0].iov_len) {
1867 cur = min_t(size_t, buf->head[0].iov_len, trim);
1868 buf->head[0].iov_len -= cur;
1881 this_len = min_t(unsigned int, len, subbuf->head[0].iov_len);
1882 memcpy(obj, subbuf->head[0].iov_base, this_len);
1913 this_len = min_t(unsigned int, len, subbuf->head[0].iov_len);
1914 memcpy(subbuf->head[0].iov_base, obj, this_len);
1987 /* process head */
1988 if (todo && base < buf->head->iov_len) {
1989 c = buf->head->iov_base + base;
1991 buf->head->iov_len - base);
2017 base = buf->head->iov_len; /* align to start of pages */
2021 base -= buf->head->iov_len;
2169 buf->head->iov_len + buf->page_len + buf->tail->iov_len)
2186 if (offset >= buf->head[0].iov_len) {
2187 offset -= buf->head[0].iov_len;
2189 thislen = buf->head[0].iov_len - offset;
2192 sg_set_buf(sg, buf->head[0].iov_base + offset, thislen);