Lines Matching refs:subbuf
1110 xdr_buf_subsegment(struct xdr_buf *buf, struct xdr_buf *subbuf, in xdr_buf_subsegment() argument
1113 subbuf->buflen = subbuf->len = len; in xdr_buf_subsegment()
1115 subbuf->head[0].iov_base = buf->head[0].iov_base + base; in xdr_buf_subsegment()
1116 subbuf->head[0].iov_len = min_t(unsigned int, len, in xdr_buf_subsegment()
1118 len -= subbuf->head[0].iov_len; in xdr_buf_subsegment()
1122 subbuf->head[0].iov_len = 0; in xdr_buf_subsegment()
1126 subbuf->page_len = min(buf->page_len - base, len); in xdr_buf_subsegment()
1128 subbuf->page_base = base & ~PAGE_MASK; in xdr_buf_subsegment()
1129 subbuf->pages = &buf->pages[base >> PAGE_SHIFT]; in xdr_buf_subsegment()
1130 len -= subbuf->page_len; in xdr_buf_subsegment()
1134 subbuf->page_len = 0; in xdr_buf_subsegment()
1138 subbuf->tail[0].iov_base = buf->tail[0].iov_base + base; in xdr_buf_subsegment()
1139 subbuf->tail[0].iov_len = min_t(unsigned int, len, in xdr_buf_subsegment()
1141 len -= subbuf->tail[0].iov_len; in xdr_buf_subsegment()
1145 subbuf->tail[0].iov_len = 0; in xdr_buf_subsegment()
1154 static void __read_bytes_from_xdr_buf(struct xdr_buf *subbuf, void *obj, unsigned int len) in __read_bytes_from_xdr_buf() argument
1158 this_len = min_t(unsigned int, len, subbuf->head[0].iov_len); in __read_bytes_from_xdr_buf()
1159 memcpy(obj, subbuf->head[0].iov_base, this_len); in __read_bytes_from_xdr_buf()
1162 this_len = min_t(unsigned int, len, subbuf->page_len); in __read_bytes_from_xdr_buf()
1164 _copy_from_pages(obj, subbuf->pages, subbuf->page_base, this_len); in __read_bytes_from_xdr_buf()
1167 this_len = min_t(unsigned int, len, subbuf->tail[0].iov_len); in __read_bytes_from_xdr_buf()
1168 memcpy(obj, subbuf->tail[0].iov_base, this_len); in __read_bytes_from_xdr_buf()
1174 struct xdr_buf subbuf; in read_bytes_from_xdr_buf() local
1177 status = xdr_buf_subsegment(buf, &subbuf, base, len); in read_bytes_from_xdr_buf()
1180 __read_bytes_from_xdr_buf(&subbuf, obj, len); in read_bytes_from_xdr_buf()
1185 static void __write_bytes_to_xdr_buf(struct xdr_buf *subbuf, void *obj, unsigned int len) in __write_bytes_to_xdr_buf() argument
1189 this_len = min_t(unsigned int, len, subbuf->head[0].iov_len); in __write_bytes_to_xdr_buf()
1190 memcpy(subbuf->head[0].iov_base, obj, this_len); in __write_bytes_to_xdr_buf()
1193 this_len = min_t(unsigned int, len, subbuf->page_len); in __write_bytes_to_xdr_buf()
1195 _copy_to_pages(subbuf->pages, subbuf->page_base, obj, this_len); in __write_bytes_to_xdr_buf()
1198 this_len = min_t(unsigned int, len, subbuf->tail[0].iov_len); in __write_bytes_to_xdr_buf()
1199 memcpy(subbuf->tail[0].iov_base, obj, this_len); in __write_bytes_to_xdr_buf()
1205 struct xdr_buf subbuf; in write_bytes_to_xdr_buf() local
1208 status = xdr_buf_subsegment(buf, &subbuf, base, len); in write_bytes_to_xdr_buf()
1211 __write_bytes_to_xdr_buf(&subbuf, obj, len); in write_bytes_to_xdr_buf()
1253 struct xdr_buf subbuf; in xdr_buf_read_mic() local
1270 if (xdr_buf_subsegment(buf, &subbuf, offset, mic->len)) in xdr_buf_read_mic()
1274 mic->data = subbuf.head[0].iov_base; in xdr_buf_read_mic()
1275 if (subbuf.head[0].iov_len == mic->len) in xdr_buf_read_mic()
1278 mic->data = subbuf.tail[0].iov_base; in xdr_buf_read_mic()
1279 if (subbuf.tail[0].iov_len == mic->len) in xdr_buf_read_mic()
1289 __read_bytes_from_xdr_buf(&subbuf, mic->data, mic->len); in xdr_buf_read_mic()