Lines Matching refs:xdr
76 static __be32 decode_string(struct xdr_stream *xdr, unsigned int *len, in decode_string() argument
81 err = xdr_stream_decode_opaque_inline(xdr, (void **)str, maxlen); in decode_string()
88 static __be32 decode_fh(struct xdr_stream *xdr, struct nfs_fh *fh) in decode_fh() argument
92 p = xdr_inline_decode(xdr, 4); in decode_fh()
98 p = xdr_inline_decode(xdr, fh->size); in decode_fh()
106 static __be32 decode_bitmap(struct xdr_stream *xdr, uint32_t *bitmap) in decode_bitmap() argument
111 p = xdr_inline_decode(xdr, 4); in decode_bitmap()
115 p = xdr_inline_decode(xdr, attrlen << 2); in decode_bitmap()
125 static __be32 decode_stateid(struct xdr_stream *xdr, nfs4_stateid *stateid) in decode_stateid() argument
129 p = xdr_inline_decode(xdr, NFS4_STATEID_SIZE); in decode_stateid()
136 static __be32 decode_delegation_stateid(struct xdr_stream *xdr, nfs4_stateid *stateid) in decode_delegation_stateid() argument
139 return decode_stateid(xdr, stateid); in decode_delegation_stateid()
142 static __be32 decode_compound_hdr_arg(struct xdr_stream *xdr, struct cb_compound_hdr_arg *hdr) in decode_compound_hdr_arg() argument
147 status = decode_string(xdr, &hdr->taglen, &hdr->tag, CB_OP_TAGLEN_MAXSZ); in decode_compound_hdr_arg()
150 p = xdr_inline_decode(xdr, 12); in decode_compound_hdr_arg()
167 static __be32 decode_op_hdr(struct xdr_stream *xdr, unsigned int *op) in decode_op_hdr() argument
170 p = xdr_inline_decode(xdr, 4); in decode_op_hdr()
178 struct xdr_stream *xdr, void *argp) in decode_getattr_args() argument
183 status = decode_fh(xdr, &args->fh); in decode_getattr_args()
186 return decode_bitmap(xdr, args->bitmap); in decode_getattr_args()
190 struct xdr_stream *xdr, void *argp) in decode_recall_args() argument
196 status = decode_delegation_stateid(xdr, &args->stateid); in decode_recall_args()
199 p = xdr_inline_decode(xdr, 4); in decode_recall_args()
203 return decode_fh(xdr, &args->fh); in decode_recall_args()
207 static __be32 decode_layout_stateid(struct xdr_stream *xdr, nfs4_stateid *stateid) in decode_layout_stateid() argument
210 return decode_stateid(xdr, stateid); in decode_layout_stateid()
214 struct xdr_stream *xdr, void *argp) in decode_layoutrecall_args() argument
221 p = xdr_inline_decode(xdr, 4 * sizeof(uint32_t)); in decode_layoutrecall_args()
235 status = decode_fh(xdr, &args->cbl_fh); in decode_layoutrecall_args()
239 p = xdr_inline_decode(xdr, 2 * sizeof(uint64_t)); in decode_layoutrecall_args()
244 return decode_layout_stateid(xdr, &args->cbl_stateid); in decode_layoutrecall_args()
246 p = xdr_inline_decode(xdr, 2 * sizeof(uint64_t)); in decode_layoutrecall_args()
258 struct xdr_stream *xdr, in decode_devicenotify_args() argument
267 p = xdr_inline_decode(xdr, sizeof(uint32_t)); in decode_devicenotify_args()
286 p = xdr_inline_decode(xdr, (4 * sizeof(uint32_t)) + in decode_devicenotify_args()
318 p = xdr_inline_decode(xdr, sizeof(uint32_t)); in decode_devicenotify_args()
345 static __be32 decode_sessionid(struct xdr_stream *xdr, in decode_sessionid() argument
350 p = xdr_inline_decode(xdr, NFS4_MAX_SESSIONID_LEN); in decode_sessionid()
358 static __be32 decode_rc_list(struct xdr_stream *xdr, in decode_rc_list() argument
365 status = decode_sessionid(xdr, &rc_list->rcl_sessionid); in decode_rc_list()
370 p = xdr_inline_decode(xdr, sizeof(uint32_t)); in decode_rc_list()
376 p = xdr_inline_decode(xdr, in decode_rc_list()
397 struct xdr_stream *xdr, in decode_cb_sequence_args() argument
405 status = decode_sessionid(xdr, &args->csa_sessionid); in decode_cb_sequence_args()
409 p = xdr_inline_decode(xdr, 5 * sizeof(uint32_t)); in decode_cb_sequence_args()
428 status = decode_rc_list(xdr, &args->csa_rclists[i]); in decode_cb_sequence_args()
445 struct xdr_stream *xdr, in decode_recallany_args() argument
452 p = xdr_inline_decode(xdr, 4); in decode_recallany_args()
456 status = decode_bitmap(xdr, bitmap); in decode_recallany_args()
465 struct xdr_stream *xdr, in decode_recallslot_args() argument
471 p = xdr_inline_decode(xdr, 4); in decode_recallslot_args()
478 static __be32 decode_lockowner(struct xdr_stream *xdr, struct cb_notify_lock_args *args) in decode_lockowner() argument
483 p = xdr_inline_decode(xdr, 12); in decode_lockowner()
490 p = xdr_inline_decode(xdr, len); in decode_lockowner()
509 struct xdr_stream *xdr, void *argp) in decode_notify_lock_args() argument
514 status = decode_fh(xdr, &args->cbnl_fh); in decode_notify_lock_args()
517 return decode_lockowner(xdr, args); in decode_notify_lock_args()
522 static __be32 decode_write_response(struct xdr_stream *xdr, in decode_write_response() argument
528 p = xdr_inline_decode(xdr, 4); in decode_write_response()
534 p = xdr_inline_decode(xdr, 8 + 4); in decode_write_response()
539 p = xdr_inline_decode(xdr, NFS4_VERIFIER_SIZE); in decode_write_response()
550 struct xdr_stream *xdr, in decode_offload_args() argument
558 status = decode_fh(xdr, &args->coa_fh); in decode_offload_args()
563 status = decode_stateid(xdr, &args->coa_stateid); in decode_offload_args()
568 p = xdr_inline_decode(xdr, 4); in decode_offload_args()
573 status = decode_write_response(xdr, args); in decode_offload_args()
577 p = xdr_inline_decode(xdr, 8); in decode_offload_args()
587 static __be32 encode_string(struct xdr_stream *xdr, unsigned int len, const char *str) in encode_string() argument
589 if (unlikely(xdr_stream_encode_opaque(xdr, str, len) < 0)) in encode_string()
594 static __be32 encode_attr_bitmap(struct xdr_stream *xdr, const uint32_t *bitmap, size_t sz) in encode_attr_bitmap() argument
596 if (xdr_stream_encode_uint32_array(xdr, bitmap, sz) < 0) in encode_attr_bitmap()
601 static __be32 encode_attr_change(struct xdr_stream *xdr, const uint32_t *bitmap, uint64_t change) in encode_attr_change() argument
607 p = xdr_reserve_space(xdr, 8); in encode_attr_change()
614 static __be32 encode_attr_size(struct xdr_stream *xdr, const uint32_t *bitmap, uint64_t size) in encode_attr_size() argument
620 p = xdr_reserve_space(xdr, 8); in encode_attr_size()
627 static __be32 encode_attr_time(struct xdr_stream *xdr, const struct timespec64 *time) in encode_attr_time() argument
631 p = xdr_reserve_space(xdr, 12); in encode_attr_time()
639 static __be32 encode_attr_ctime(struct xdr_stream *xdr, const uint32_t *bitmap, const struct timesp… in encode_attr_ctime() argument
643 return encode_attr_time(xdr,time); in encode_attr_ctime()
646 static __be32 encode_attr_mtime(struct xdr_stream *xdr, const uint32_t *bitmap, const struct timesp… in encode_attr_mtime() argument
650 return encode_attr_time(xdr,time); in encode_attr_mtime()
653 static __be32 encode_compound_hdr_res(struct xdr_stream *xdr, struct cb_compound_hdr_res *hdr) in encode_compound_hdr_res() argument
657 hdr->status = xdr_reserve_space(xdr, 4); in encode_compound_hdr_res()
660 status = encode_string(xdr, hdr->taglen, hdr->tag); in encode_compound_hdr_res()
663 hdr->nops = xdr_reserve_space(xdr, 4); in encode_compound_hdr_res()
669 static __be32 encode_op_hdr(struct xdr_stream *xdr, uint32_t op, __be32 res) in encode_op_hdr() argument
673 p = xdr_reserve_space(xdr, 8); in encode_op_hdr()
681 static __be32 encode_getattr_res(struct svc_rqst *rqstp, struct xdr_stream *xdr, in encode_getattr_res() argument
690 status = encode_attr_bitmap(xdr, res->bitmap, ARRAY_SIZE(res->bitmap)); in encode_getattr_res()
694 savep = xdr_reserve_space(xdr, sizeof(*savep)); in encode_getattr_res()
697 status = encode_attr_change(xdr, res->bitmap, res->change_attr); in encode_getattr_res()
700 status = encode_attr_size(xdr, res->bitmap, res->size); in encode_getattr_res()
703 status = encode_attr_ctime(xdr, res->bitmap, &res->ctime); in encode_getattr_res()
706 status = encode_attr_mtime(xdr, res->bitmap, &res->mtime); in encode_getattr_res()
707 *savep = htonl((unsigned int)((char *)xdr->p - (char *)(savep+1))); in encode_getattr_res()
714 static __be32 encode_sessionid(struct xdr_stream *xdr, in encode_sessionid() argument
719 p = xdr_reserve_space(xdr, NFS4_MAX_SESSIONID_LEN); in encode_sessionid()
728 struct xdr_stream *xdr, in encode_cb_sequence_res() argument
738 status = encode_sessionid(xdr, &res->csr_sessionid); in encode_cb_sequence_res()
742 p = xdr_reserve_space(xdr, 4 * sizeof(uint32_t)); in encode_cb_sequence_res()