Lines Matching refs:base

201 		 struct page **pages, unsigned int base, unsigned int len)  in xdr_inline_pages()  argument
211 xdr->page_base = base; in xdr_inline_pages()
447 static void xdr_buf_iov_zero(const struct kvec *iov, unsigned int base, in xdr_buf_iov_zero() argument
450 if (base >= iov->iov_len) in xdr_buf_iov_zero()
452 if (len > iov->iov_len - base) in xdr_buf_iov_zero()
453 len = iov->iov_len - base; in xdr_buf_iov_zero()
454 memset(iov->iov_base + base, 0, len); in xdr_buf_iov_zero()
558 unsigned int base, unsigned int len, in xdr_buf_tail_copy_right() argument
562 unsigned int to = base + shift; in xdr_buf_tail_copy_right()
568 memmove(tail->iov_base + to, tail->iov_base + base, len); in xdr_buf_tail_copy_right()
572 unsigned int base, unsigned int len, in xdr_buf_pages_copy_right() argument
576 unsigned int to = base + shift; in xdr_buf_pages_copy_right()
580 if (base >= buf->page_len) in xdr_buf_pages_copy_right()
582 if (len > buf->page_len - base) in xdr_buf_pages_copy_right()
583 len = buf->page_len - base; in xdr_buf_pages_copy_right()
599 buf->page_base + base + pglen, talen); in xdr_buf_pages_copy_right()
601 buf->page_base + base, pglen); in xdr_buf_pages_copy_right()
605 unsigned int base, unsigned int len, in xdr_buf_head_copy_right() argument
610 unsigned int to = base + shift; in xdr_buf_head_copy_right()
614 if (base >= head->iov_len) in xdr_buf_head_copy_right()
616 if (len > head->iov_len - base) in xdr_buf_head_copy_right()
617 len = head->iov_len - base; in xdr_buf_head_copy_right()
637 base += len; in xdr_buf_head_copy_right()
640 memcpy(tail->iov_base + tato, head->iov_base + base, talen); in xdr_buf_head_copy_right()
643 base -= pglen; in xdr_buf_head_copy_right()
644 _copy_to_pages(buf->pages, buf->page_base + pgto, head->iov_base + base, in xdr_buf_head_copy_right()
647 base -= len; in xdr_buf_head_copy_right()
648 memmove(head->iov_base + to, head->iov_base + base, len); in xdr_buf_head_copy_right()
652 unsigned int base, unsigned int len, in xdr_buf_tail_shift_right() argument
657 if (base >= tail->iov_len || !shift || !len) in xdr_buf_tail_shift_right()
659 xdr_buf_tail_copy_right(buf, base, len, shift); in xdr_buf_tail_shift_right()
663 unsigned int base, unsigned int len, in xdr_buf_pages_shift_right() argument
668 if (base >= buf->page_len) { in xdr_buf_pages_shift_right()
669 xdr_buf_tail_shift_right(buf, base - buf->page_len, len, shift); in xdr_buf_pages_shift_right()
672 if (base + len > buf->page_len) in xdr_buf_pages_shift_right()
673 xdr_buf_tail_shift_right(buf, 0, base + len - buf->page_len, in xdr_buf_pages_shift_right()
675 xdr_buf_pages_copy_right(buf, base, len, shift); in xdr_buf_pages_shift_right()
679 unsigned int base, unsigned int len, in xdr_buf_head_shift_right() argument
686 if (base >= head->iov_len) { in xdr_buf_head_shift_right()
687 xdr_buf_pages_shift_right(buf, head->iov_len - base, len, in xdr_buf_head_shift_right()
691 if (base + len > head->iov_len) in xdr_buf_head_shift_right()
692 xdr_buf_pages_shift_right(buf, 0, base + len - head->iov_len, in xdr_buf_head_shift_right()
694 xdr_buf_head_copy_right(buf, base, len, shift); in xdr_buf_head_shift_right()
697 static void xdr_buf_tail_copy_left(const struct xdr_buf *buf, unsigned int base, in xdr_buf_tail_copy_left() argument
702 if (base >= tail->iov_len) in xdr_buf_tail_copy_left()
704 if (len > tail->iov_len - base) in xdr_buf_tail_copy_left()
705 len = tail->iov_len - base; in xdr_buf_tail_copy_left()
707 if (shift > buf->page_len + base) { in xdr_buf_tail_copy_left()
710 head->iov_len + buf->page_len + base - shift; in xdr_buf_tail_copy_left()
713 if (WARN_ONCE(shift > head->iov_len + buf->page_len + base, in xdr_buf_tail_copy_left()
718 memcpy(head->iov_base + hdto, tail->iov_base + base, hdlen); in xdr_buf_tail_copy_left()
719 base += hdlen; in xdr_buf_tail_copy_left()
725 if (shift > base) { in xdr_buf_tail_copy_left()
726 unsigned int pgto = buf->page_len + base - shift; in xdr_buf_tail_copy_left()
732 tail->iov_base + base, pglen); in xdr_buf_tail_copy_left()
733 base += pglen; in xdr_buf_tail_copy_left()
738 memmove(tail->iov_base + base - shift, tail->iov_base + base, len); in xdr_buf_tail_copy_left()
742 unsigned int base, unsigned int len, in xdr_buf_pages_copy_left() argument
747 if (base >= buf->page_len) in xdr_buf_pages_copy_left()
749 if (len > buf->page_len - base) in xdr_buf_pages_copy_left()
750 len = buf->page_len - base; in xdr_buf_pages_copy_left()
752 if (shift > base) { in xdr_buf_pages_copy_left()
754 unsigned int hdto = head->iov_len + base - shift; in xdr_buf_pages_copy_left()
757 if (WARN_ONCE(shift > head->iov_len + base, in xdr_buf_pages_copy_left()
763 buf->page_base + base, hdlen); in xdr_buf_pages_copy_left()
764 base += hdlen; in xdr_buf_pages_copy_left()
769 pgto = base - shift; in xdr_buf_pages_copy_left()
771 buf->page_base + base, len); in xdr_buf_pages_copy_left()
775 unsigned int base, unsigned int len, in xdr_buf_tail_shift_left() argument
780 xdr_buf_tail_copy_left(buf, base, len, shift); in xdr_buf_tail_shift_left()
784 unsigned int base, unsigned int len, in xdr_buf_pages_shift_left() argument
789 if (base >= buf->page_len) { in xdr_buf_pages_shift_left()
790 xdr_buf_tail_shift_left(buf, base - buf->page_len, len, shift); in xdr_buf_pages_shift_left()
793 xdr_buf_pages_copy_left(buf, base, len, shift); in xdr_buf_pages_shift_left()
794 len += base; in xdr_buf_pages_shift_left()
801 unsigned int base, unsigned int len, in xdr_buf_head_shift_left() argument
810 if (shift > base) { in xdr_buf_head_shift_left()
811 bytes = (shift - base); in xdr_buf_head_shift_left()
814 base += bytes; in xdr_buf_head_shift_left()
818 if (base < head->iov_len) { in xdr_buf_head_shift_left()
819 bytes = min_t(unsigned int, len, head->iov_len - base); in xdr_buf_head_shift_left()
820 memmove(head->iov_base + (base - shift), in xdr_buf_head_shift_left()
821 head->iov_base + base, bytes); in xdr_buf_head_shift_left()
822 base += bytes; in xdr_buf_head_shift_left()
825 xdr_buf_pages_shift_left(buf, base - head->iov_len, len, shift); in xdr_buf_head_shift_left()
1266 void xdr_write_pages(struct xdr_stream *xdr, struct page **pages, unsigned int base, in xdr_write_pages() argument
1273 buf->page_base = base; in xdr_write_pages()
1295 unsigned int base, unsigned int len) in xdr_set_iov() argument
1299 if (unlikely(base > len)) in xdr_set_iov()
1300 base = len; in xdr_set_iov()
1301 xdr->p = (__be32*)(iov->iov_base + base); in xdr_set_iov()
1305 return len - base; in xdr_set_iov()
1309 unsigned int base, unsigned int len) in xdr_set_tail_base() argument
1313 xdr_stream_set_pos(xdr, base + buf->page_len + buf->head->iov_len); in xdr_set_tail_base()
1314 return xdr_set_iov(xdr, buf->tail, base, len); in xdr_set_tail_base()
1326 unsigned int base, unsigned int len) in xdr_set_page_base() argument
1335 if (base >= maxlen) in xdr_set_page_base()
1338 maxlen -= base; in xdr_set_page_base()
1343 xdr_stream_page_set_pos(xdr, base); in xdr_set_page_base()
1344 base += xdr->buf->page_base; in xdr_set_page_base()
1346 pgnr = base >> PAGE_SHIFT; in xdr_set_page_base()
1355 pgoff = base & ~PAGE_MASK; in xdr_set_page_base()
1366 static void xdr_set_page(struct xdr_stream *xdr, unsigned int base, in xdr_set_page() argument
1369 if (xdr_set_page_base(xdr, base, len) == 0) { in xdr_set_page()
1370 base -= xdr->buf->page_len; in xdr_set_page()
1371 xdr_set_tail_base(xdr, base, len); in xdr_set_page()
1571 unsigned int base, end, pglen; in xdr_read_pages() local
1577 base = (nwords << 2) - pglen; in xdr_read_pages()
1580 xdr_set_tail_base(xdr, base, end); in xdr_read_pages()
1600 size_t base = 0; in xdr_set_pagelen() local
1603 base = buf->page_len - len; in xdr_set_pagelen()
1611 xdr_set_tail_base(xdr, base, remaining); in xdr_set_pagelen()
1663 unsigned int base, unsigned int len) in xdr_buf_subsegment() argument
1666 if (base < buf->head[0].iov_len) { in xdr_buf_subsegment()
1667 subbuf->head[0].iov_base = buf->head[0].iov_base + base; in xdr_buf_subsegment()
1669 buf->head[0].iov_len - base); in xdr_buf_subsegment()
1671 base = 0; in xdr_buf_subsegment()
1673 base -= buf->head[0].iov_len; in xdr_buf_subsegment()
1678 if (base < buf->page_len) { in xdr_buf_subsegment()
1679 subbuf->page_len = min(buf->page_len - base, len); in xdr_buf_subsegment()
1680 base += buf->page_base; in xdr_buf_subsegment()
1681 subbuf->page_base = base & ~PAGE_MASK; in xdr_buf_subsegment()
1682 subbuf->pages = &buf->pages[base >> PAGE_SHIFT]; in xdr_buf_subsegment()
1684 base = 0; in xdr_buf_subsegment()
1686 base -= buf->page_len; in xdr_buf_subsegment()
1692 if (base < buf->tail[0].iov_len) { in xdr_buf_subsegment()
1693 subbuf->tail[0].iov_base = buf->tail[0].iov_base + base; in xdr_buf_subsegment()
1695 buf->tail[0].iov_len - base); in xdr_buf_subsegment()
1697 base = 0; in xdr_buf_subsegment()
1699 base -= buf->tail[0].iov_len; in xdr_buf_subsegment()
1704 if (base || len) in xdr_buf_subsegment()
1870 int read_bytes_from_xdr_buf(const struct xdr_buf *buf, unsigned int base, in read_bytes_from_xdr_buf() argument
1876 status = xdr_buf_subsegment(buf, &subbuf, base, len); in read_bytes_from_xdr_buf()
1902 int write_bytes_to_xdr_buf(const struct xdr_buf *buf, unsigned int base, in write_bytes_to_xdr_buf() argument
1908 status = xdr_buf_subsegment(buf, &subbuf, base, len); in write_bytes_to_xdr_buf()
1916 int xdr_decode_word(const struct xdr_buf *buf, unsigned int base, u32 *obj) in xdr_decode_word() argument
1921 status = read_bytes_from_xdr_buf(buf, base, &raw, sizeof(*obj)); in xdr_decode_word()
1929 int xdr_encode_word(const struct xdr_buf *buf, unsigned int base, u32 obj) in xdr_encode_word() argument
1933 return write_bytes_to_xdr_buf(buf, base, &raw, sizeof(obj)); in xdr_encode_word()
1938 static int xdr_xcode_array2(const struct xdr_buf *buf, unsigned int base, in xdr_xcode_array2() argument
1947 if (xdr_encode_word(buf, base, desc->array_len) != 0) in xdr_xcode_array2()
1950 if (xdr_decode_word(buf, base, &desc->array_len) != 0 || in xdr_xcode_array2()
1952 (unsigned long) base + 4 + desc->array_len * in xdr_xcode_array2()
1956 base += 4; in xdr_xcode_array2()
1964 if (todo && base < buf->head->iov_len) { in xdr_xcode_array2()
1965 c = buf->head->iov_base + base; in xdr_xcode_array2()
1967 buf->head->iov_len - base); in xdr_xcode_array2()
1993 base = buf->head->iov_len; /* align to start of pages */ in xdr_xcode_array2()
1997 base -= buf->head->iov_len; in xdr_xcode_array2()
1998 if (todo && base < buf->page_len) { in xdr_xcode_array2()
2001 avail_here = min(todo, buf->page_len - base); in xdr_xcode_array2()
2004 base += buf->page_base; in xdr_xcode_array2()
2005 ppages = buf->pages + (base >> PAGE_SHIFT); in xdr_xcode_array2()
2006 base &= ~PAGE_MASK; in xdr_xcode_array2()
2007 avail_page = min_t(unsigned int, PAGE_SIZE - base, in xdr_xcode_array2()
2009 c = kmap(*ppages) + base; in xdr_xcode_array2()
2093 base = buf->page_len; /* align to start of tail */ in xdr_xcode_array2()
2097 base -= buf->page_len; in xdr_xcode_array2()
2099 c = buf->tail->iov_base + base; in xdr_xcode_array2()
2131 int xdr_decode_array2(const struct xdr_buf *buf, unsigned int base, in xdr_decode_array2() argument
2134 if (base >= buf->len) in xdr_decode_array2()
2137 return xdr_xcode_array2(buf, base, desc, 0); in xdr_decode_array2()
2141 int xdr_encode_array2(const struct xdr_buf *buf, unsigned int base, in xdr_encode_array2() argument
2144 if ((unsigned long) base + 4 + desc->array_len * desc->elem_size > in xdr_encode_array2()
2148 return xdr_xcode_array2(buf, base, desc, 1); in xdr_encode_array2()