• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/net/sunrpc/

Lines Matching refs:subbuf

656 /* Sets subbuf to the portion of buf of length len beginning base bytes
659 xdr_buf_subsegment(struct xdr_buf *buf, struct xdr_buf *subbuf,
662 subbuf->buflen = subbuf->len = len;
664 subbuf->head[0].iov_base = buf->head[0].iov_base + base;
665 subbuf->head[0].iov_len = min_t(unsigned int, len,
667 len -= subbuf->head[0].iov_len;
670 subbuf->head[0].iov_base = NULL;
671 subbuf->head[0].iov_len = 0;
676 subbuf->page_len = min(buf->page_len - base, len);
678 subbuf->page_base = base & ~PAGE_CACHE_MASK;
679 subbuf->pages = &buf->pages[base >> PAGE_CACHE_SHIFT];
680 len -= subbuf->page_len;
684 subbuf->page_len = 0;
688 subbuf->tail[0].iov_base = buf->tail[0].iov_base + base;
689 subbuf->tail[0].iov_len = min_t(unsigned int, len,
691 len -= subbuf->tail[0].iov_len;
694 subbuf->tail[0].iov_base = NULL;
695 subbuf->tail[0].iov_len = 0;
705 static void __read_bytes_from_xdr_buf(struct xdr_buf *subbuf, void *obj, unsigned int len)
709 this_len = min_t(unsigned int, len, subbuf->head[0].iov_len);
710 memcpy(obj, subbuf->head[0].iov_base, this_len);
713 this_len = min_t(unsigned int, len, subbuf->page_len);
715 _copy_from_pages(obj, subbuf->pages, subbuf->page_base, this_len);
718 this_len = min_t(unsigned int, len, subbuf->tail[0].iov_len);
719 memcpy(obj, subbuf->tail[0].iov_base, this_len);
725 struct xdr_buf subbuf;
728 status = xdr_buf_subsegment(buf, &subbuf, base, len);
731 __read_bytes_from_xdr_buf(&subbuf, obj, len);
736 static void __write_bytes_to_xdr_buf(struct xdr_buf *subbuf, void *obj, unsigned int len)
740 this_len = min_t(unsigned int, len, subbuf->head[0].iov_len);
741 memcpy(subbuf->head[0].iov_base, obj, this_len);
744 this_len = min_t(unsigned int, len, subbuf->page_len);
746 _copy_to_pages(subbuf->pages, subbuf->page_base, obj, this_len);
749 this_len = min_t(unsigned int, len, subbuf->tail[0].iov_len);
750 memcpy(subbuf->tail[0].iov_base, obj, this_len);
756 struct xdr_buf subbuf;
759 status = xdr_buf_subsegment(buf, &subbuf, base, len);
762 __write_bytes_to_xdr_buf(&subbuf, obj, len);
796 struct xdr_buf subbuf;
800 if (xdr_buf_subsegment(buf, &subbuf, offset + 4, obj->len))
804 obj->data = subbuf.head[0].iov_base;
805 if (subbuf.head[0].iov_len == obj->len)
808 obj->data = subbuf.tail[0].iov_base;
809 if (subbuf.tail[0].iov_len == obj->len)
823 __read_bytes_from_xdr_buf(&subbuf, obj->data, obj->len);