Lines Matching refs:len
25 unsigned int quadlen = XDR_QUADLEN(obj->len); in xdr_encode_netobj()
28 *p++ = cpu_to_be32(obj->len); in xdr_encode_netobj()
29 memcpy(p, obj->data, obj->len); in xdr_encode_netobj()
30 return p + XDR_QUADLEN(obj->len); in xdr_encode_netobj()
37 unsigned int len; in xdr_decode_netobj() local
39 if ((len = be32_to_cpu(*p++)) > XDR_MAX_NETOBJ) in xdr_decode_netobj()
41 obj->len = len; in xdr_decode_netobj()
43 return p + XDR_QUADLEN(len); in xdr_decode_netobj()
103 u32 len; in xdr_decode_string_inplace() local
105 len = be32_to_cpu(*p++); in xdr_decode_string_inplace()
106 if (len > maxlen) in xdr_decode_string_inplace()
108 *lenp = len; in xdr_decode_string_inplace()
110 return p + XDR_QUADLEN(len); in xdr_decode_string_inplace()
121 xdr_terminate_string(struct xdr_buf *buf, const u32 len) in xdr_terminate_string() argument
126 kaddr[buf->page_base + len] = '\0'; in xdr_terminate_string()
133 struct page **pages, unsigned int base, unsigned int len) in xdr_inline_pages() argument
144 xdr->page_len = len; in xdr_inline_pages()
149 xdr->buflen += len; in xdr_inline_pages()
173 size_t pgfrom_base, size_t len) in _shift_data_right_pages() argument
181 pgto_base += len; in _shift_data_right_pages()
182 pgfrom_base += len; in _shift_data_right_pages()
201 copy = len; in _shift_data_right_pages()
219 } while ((len -= copy) != 0); in _shift_data_right_pages()
233 _copy_to_pages(struct page **pages, size_t pgbase, const char *p, size_t len) in _copy_to_pages() argument
244 if (copy > len) in _copy_to_pages()
245 copy = len; in _copy_to_pages()
251 len -= copy; in _copy_to_pages()
252 if (len == 0) in _copy_to_pages()
277 _copy_from_pages(char *p, struct page **pages, size_t pgbase, size_t len) in _copy_from_pages() argument
288 if (copy > len) in _copy_from_pages()
289 copy = len; in _copy_from_pages()
302 } while ((len -= copy) != 0); in _copy_from_pages()
316 xdr_shrink_bufhead(struct xdr_buf *buf, size_t len) in xdr_shrink_bufhead() argument
325 WARN_ON_ONCE(len > head->iov_len); in xdr_shrink_bufhead()
326 if (len > head->iov_len) in xdr_shrink_bufhead()
327 len = head->iov_len; in xdr_shrink_bufhead()
331 if (tail->iov_len > len) { in xdr_shrink_bufhead()
332 copy = tail->iov_len - len; in xdr_shrink_bufhead()
333 memmove((char *)tail->iov_base + len, in xdr_shrink_bufhead()
337 copy = len; in xdr_shrink_bufhead()
340 offs = len - copy; in xdr_shrink_bufhead()
348 buf->page_base + pglen + offs - len, in xdr_shrink_bufhead()
351 if (len > pglen) { in xdr_shrink_bufhead()
352 offs = copy = len - pglen; in xdr_shrink_bufhead()
363 if (pglen > len) in xdr_shrink_bufhead()
365 buf->page_base + len, in xdr_shrink_bufhead()
367 pglen - len); in xdr_shrink_bufhead()
368 copy = len; in xdr_shrink_bufhead()
369 if (len > pglen) in xdr_shrink_bufhead()
372 (char *)head->iov_base + head->iov_len - len, in xdr_shrink_bufhead()
375 head->iov_len -= len; in xdr_shrink_bufhead()
376 buf->buflen -= len; in xdr_shrink_bufhead()
378 if (buf->len > buf->buflen) in xdr_shrink_bufhead()
379 buf->len = buf->buflen; in xdr_shrink_bufhead()
392 xdr_shrink_pagelen(struct xdr_buf *buf, size_t len) in xdr_shrink_pagelen() argument
400 BUG_ON (len > pglen); in xdr_shrink_pagelen()
408 if (len < free_space) in xdr_shrink_pagelen()
409 free_space = len; in xdr_shrink_pagelen()
412 copy = len; in xdr_shrink_pagelen()
413 if (tail->iov_len > len) { in xdr_shrink_pagelen()
414 char *p = (char *)tail->iov_base + len; in xdr_shrink_pagelen()
415 memmove(p, tail->iov_base, tail->iov_len - len); in xdr_shrink_pagelen()
420 buf->pages, buf->page_base + pglen - len, in xdr_shrink_pagelen()
423 buf->page_len -= len; in xdr_shrink_pagelen()
424 buf->buflen -= len; in xdr_shrink_pagelen()
426 if (buf->len > buf->buflen) in xdr_shrink_pagelen()
427 buf->len = buf->buflen; in xdr_shrink_pagelen()
431 xdr_shift_buf(struct xdr_buf *buf, size_t len) in xdr_shift_buf() argument
433 xdr_shrink_bufhead(buf, len); in xdr_shift_buf()
443 return (unsigned int)(XDR_QUADLEN(xdr->buf->len) - xdr->nwords) << 2; in xdr_stream_pos()
474 size_t len; in xdr_init_encode() local
477 len = (char *)p - (char *)xdr->p; in xdr_init_encode()
479 buf->len += len; in xdr_init_encode()
480 iov->iov_len += len; in xdr_init_encode()
521 if (xdr->buf->len + nbytes > xdr->buf->buflen) in xdr_get_next_encode_buffer()
546 space_left = xdr->buf->buflen - xdr->buf->len; in xdr_get_next_encode_buffer()
549 xdr->buf->len += nbytes; in xdr_get_next_encode_buffer()
579 xdr->buf->len += nbytes; in xdr_reserve_space()
603 void xdr_truncate_encode(struct xdr_stream *xdr, size_t len) in xdr_truncate_encode() argument
611 if (len > buf->len) { in xdr_truncate_encode()
617 fraglen = min_t(int, buf->len - len, tail->iov_len); in xdr_truncate_encode()
619 buf->len -= fraglen; in xdr_truncate_encode()
627 fraglen = min_t(int, buf->len - len, buf->page_len); in xdr_truncate_encode()
629 buf->len -= fraglen; in xdr_truncate_encode()
647 head->iov_len = len; in xdr_truncate_encode()
648 buf->len = len; in xdr_truncate_encode()
670 int end_offset = buf->len + left_in_this_buf; in xdr_restrict_buflen()
672 if (newbuflen < 0 || newbuflen < buf->len) in xdr_restrict_buflen()
692 unsigned int len) in xdr_write_pages() argument
698 buf->page_len = len; in xdr_write_pages()
704 if (len & 3) { in xdr_write_pages()
705 unsigned int pad = 4 - (len & 3); in xdr_write_pages()
708 iov->iov_base = (char *)xdr->p + (len & 3); in xdr_write_pages()
710 len += pad; in xdr_write_pages()
713 buf->buflen += len; in xdr_write_pages()
714 buf->len += len; in xdr_write_pages()
719 unsigned int len) in xdr_set_iov() argument
721 if (len > iov->iov_len) in xdr_set_iov()
722 len = iov->iov_len; in xdr_set_iov()
724 xdr->end = (__be32*)(iov->iov_base + len); in xdr_set_iov()
730 unsigned int base, unsigned int len) in xdr_set_page_base() argument
742 if (len > maxlen) in xdr_set_page_base()
743 len = maxlen; in xdr_set_page_base()
754 pgend = pgoff + len; in xdr_set_page_base()
795 xdr->nwords = XDR_QUADLEN(buf->len); in xdr_init_decode()
797 xdr_set_iov(xdr, buf->head, buf->len); in xdr_init_decode()
799 xdr_set_page_base(xdr, 0, buf->len); in xdr_init_decode()
801 xdr_set_iov(xdr, buf->head, buf->len); in xdr_init_decode()
817 struct page **pages, unsigned int len) in xdr_init_decode_pages() argument
821 buf->page_len = len; in xdr_init_decode_pages()
822 buf->buflen = len; in xdr_init_decode_pages()
823 buf->len = len; in xdr_init_decode_pages()
907 static unsigned int xdr_align_pages(struct xdr_stream *xdr, unsigned int len) in xdr_align_pages() argument
911 unsigned int nwords = XDR_QUADLEN(len); in xdr_align_pages()
920 xdr->nwords = XDR_QUADLEN(buf->len - cur); in xdr_align_pages()
925 len = nwords << 2; in xdr_align_pages()
927 if (buf->page_len <= len) in xdr_align_pages()
928 len = buf->page_len; in xdr_align_pages()
931 xdr_shrink_pagelen(buf, buf->page_len - len); in xdr_align_pages()
932 xdr->nwords = XDR_QUADLEN(buf->len - cur); in xdr_align_pages()
934 return len; in xdr_align_pages()
948 unsigned int xdr_read_pages(struct xdr_stream *xdr, unsigned int len) in xdr_read_pages() argument
956 len = xdr_align_pages(xdr, len); in xdr_read_pages()
957 if (len == 0) in xdr_read_pages()
959 nwords = XDR_QUADLEN(len); in xdr_read_pages()
960 padding = (nwords << 2) - len; in xdr_read_pages()
975 return len; in xdr_read_pages()
989 void xdr_enter_page(struct xdr_stream *xdr, unsigned int len) in xdr_enter_page() argument
991 len = xdr_align_pages(xdr, len); in xdr_enter_page()
996 if (len != 0) in xdr_enter_page()
997 xdr_set_page_base(xdr, 0, len); in xdr_enter_page()
1009 buf->buflen = buf->len = iov->iov_len; in xdr_buf_from_iov()
1029 unsigned int base, unsigned int len) in xdr_buf_subsegment() argument
1031 subbuf->buflen = subbuf->len = len; in xdr_buf_subsegment()
1034 subbuf->head[0].iov_len = min_t(unsigned int, len, in xdr_buf_subsegment()
1036 len -= subbuf->head[0].iov_len; in xdr_buf_subsegment()
1044 subbuf->page_len = min(buf->page_len - base, len); in xdr_buf_subsegment()
1048 len -= subbuf->page_len; in xdr_buf_subsegment()
1057 subbuf->tail[0].iov_len = min_t(unsigned int, len, in xdr_buf_subsegment()
1059 len -= subbuf->tail[0].iov_len; in xdr_buf_subsegment()
1066 if (base || len) in xdr_buf_subsegment()
1082 void xdr_buf_trim(struct xdr_buf *buf, unsigned int len) in xdr_buf_trim() argument
1085 unsigned int trim = len; in xdr_buf_trim()
1109 buf->len -= (len - trim); in xdr_buf_trim()
1113 static void __read_bytes_from_xdr_buf(struct xdr_buf *subbuf, void *obj, unsigned int len) in __read_bytes_from_xdr_buf() argument
1117 this_len = min_t(unsigned int, len, subbuf->head[0].iov_len); in __read_bytes_from_xdr_buf()
1119 len -= this_len; in __read_bytes_from_xdr_buf()
1121 this_len = min_t(unsigned int, len, subbuf->page_len); in __read_bytes_from_xdr_buf()
1124 len -= this_len; in __read_bytes_from_xdr_buf()
1126 this_len = min_t(unsigned int, len, subbuf->tail[0].iov_len); in __read_bytes_from_xdr_buf()
1131 int read_bytes_from_xdr_buf(struct xdr_buf *buf, unsigned int base, void *obj, unsigned int len) in read_bytes_from_xdr_buf() argument
1136 status = xdr_buf_subsegment(buf, &subbuf, base, len); in read_bytes_from_xdr_buf()
1139 __read_bytes_from_xdr_buf(&subbuf, obj, len); in read_bytes_from_xdr_buf()
1144 static void __write_bytes_to_xdr_buf(struct xdr_buf *subbuf, void *obj, unsigned int len) in __write_bytes_to_xdr_buf() argument
1148 this_len = min_t(unsigned int, len, subbuf->head[0].iov_len); in __write_bytes_to_xdr_buf()
1150 len -= this_len; in __write_bytes_to_xdr_buf()
1152 this_len = min_t(unsigned int, len, subbuf->page_len); in __write_bytes_to_xdr_buf()
1155 len -= this_len; in __write_bytes_to_xdr_buf()
1157 this_len = min_t(unsigned int, len, subbuf->tail[0].iov_len); in __write_bytes_to_xdr_buf()
1162 int write_bytes_to_xdr_buf(struct xdr_buf *buf, unsigned int base, void *obj, unsigned int len) in write_bytes_to_xdr_buf() argument
1167 status = xdr_buf_subsegment(buf, &subbuf, base, len); in write_bytes_to_xdr_buf()
1170 __write_bytes_to_xdr_buf(&subbuf, obj, len); in write_bytes_to_xdr_buf()
1206 if (xdr_decode_word(buf, offset, &obj->len)) in xdr_buf_read_netobj()
1208 if (xdr_buf_subsegment(buf, &subbuf, offset + 4, obj->len)) in xdr_buf_read_netobj()
1213 if (subbuf.head[0].iov_len == obj->len) in xdr_buf_read_netobj()
1217 if (subbuf.tail[0].iov_len == obj->len) in xdr_buf_read_netobj()
1225 if (obj->len > buf->buflen - buf->len) in xdr_buf_read_netobj()
1231 __read_bytes_from_xdr_buf(&subbuf, obj->data, obj->len); in xdr_buf_read_netobj()
1253 desc->elem_size > buf->len) in xdr_xcode_array2()
1435 if (base >= buf->len) in xdr_decode_array2()
1455 xdr_process_buf(struct xdr_buf *buf, unsigned int offset, unsigned int len, in xdr_process_buf() argument
1468 if (thislen > len) in xdr_process_buf()
1469 thislen = len; in xdr_process_buf()
1475 len -= thislen; in xdr_process_buf()
1477 if (len == 0) in xdr_process_buf()
1484 if (page_len > len) in xdr_process_buf()
1485 page_len = len; in xdr_process_buf()
1486 len -= page_len; in xdr_process_buf()
1504 if (len == 0) in xdr_process_buf()
1508 if (thislen > len) in xdr_process_buf()
1509 thislen = len; in xdr_process_buf()
1512 len -= thislen; in xdr_process_buf()
1514 if (len != 0) in xdr_process_buf()