Lines Matching refs:xdr
75 static __be32 decode_string(struct xdr_stream *xdr, unsigned int *len, in decode_string() argument
80 err = xdr_stream_decode_opaque_inline(xdr, (void **)str, maxlen); in decode_string()
87 static __be32 decode_fh(struct xdr_stream *xdr, struct nfs_fh *fh) in decode_fh() argument
91 p = xdr_inline_decode(xdr, 4); in decode_fh()
97 p = xdr_inline_decode(xdr, fh->size); in decode_fh()
105 static __be32 decode_bitmap(struct xdr_stream *xdr, uint32_t *bitmap) in decode_bitmap() argument
110 p = xdr_inline_decode(xdr, 4); in decode_bitmap()
114 p = xdr_inline_decode(xdr, attrlen << 2); in decode_bitmap()
124 static __be32 decode_stateid(struct xdr_stream *xdr, nfs4_stateid *stateid) in decode_stateid() argument
128 p = xdr_inline_decode(xdr, NFS4_STATEID_SIZE); in decode_stateid()
135 static __be32 decode_delegation_stateid(struct xdr_stream *xdr, nfs4_stateid *stateid) in decode_delegation_stateid() argument
138 return decode_stateid(xdr, stateid); in decode_delegation_stateid()
141 static __be32 decode_compound_hdr_arg(struct xdr_stream *xdr, struct cb_compound_hdr_arg *hdr) in decode_compound_hdr_arg() argument
146 status = decode_string(xdr, &hdr->taglen, &hdr->tag, CB_OP_TAGLEN_MAXSZ); in decode_compound_hdr_arg()
149 p = xdr_inline_decode(xdr, 12); in decode_compound_hdr_arg()
166 static __be32 decode_op_hdr(struct xdr_stream *xdr, unsigned int *op) in decode_op_hdr() argument
169 p = xdr_inline_decode(xdr, 4); in decode_op_hdr()
177 struct xdr_stream *xdr, void *argp) in decode_getattr_args() argument
182 status = decode_fh(xdr, &args->fh); in decode_getattr_args()
185 return decode_bitmap(xdr, args->bitmap); in decode_getattr_args()
189 struct xdr_stream *xdr, void *argp) in decode_recall_args() argument
195 status = decode_delegation_stateid(xdr, &args->stateid); in decode_recall_args()
198 p = xdr_inline_decode(xdr, 4); in decode_recall_args()
202 return decode_fh(xdr, &args->fh); in decode_recall_args()
206 static __be32 decode_layout_stateid(struct xdr_stream *xdr, nfs4_stateid *stateid) in decode_layout_stateid() argument
209 return decode_stateid(xdr, stateid); in decode_layout_stateid()
213 struct xdr_stream *xdr, void *argp) in decode_layoutrecall_args() argument
220 p = xdr_inline_decode(xdr, 4 * sizeof(uint32_t)); in decode_layoutrecall_args()
234 status = decode_fh(xdr, &args->cbl_fh); in decode_layoutrecall_args()
238 p = xdr_inline_decode(xdr, 2 * sizeof(uint64_t)); in decode_layoutrecall_args()
243 return decode_layout_stateid(xdr, &args->cbl_stateid); in decode_layoutrecall_args()
245 p = xdr_inline_decode(xdr, 2 * sizeof(uint64_t)); in decode_layoutrecall_args()
257 struct xdr_stream *xdr, in decode_devicenotify_args() argument
268 p = xdr_inline_decode(xdr, sizeof(uint32_t)); in decode_devicenotify_args()
291 p = xdr_inline_decode(xdr, (4 * sizeof(uint32_t)) + in decode_devicenotify_args()
323 p = xdr_inline_decode(xdr, sizeof(uint32_t)); in decode_devicenotify_args()
348 static __be32 decode_sessionid(struct xdr_stream *xdr, in decode_sessionid() argument
353 p = xdr_inline_decode(xdr, NFS4_MAX_SESSIONID_LEN); in decode_sessionid()
361 static __be32 decode_rc_list(struct xdr_stream *xdr, in decode_rc_list() argument
368 status = decode_sessionid(xdr, &rc_list->rcl_sessionid); in decode_rc_list()
373 p = xdr_inline_decode(xdr, sizeof(uint32_t)); in decode_rc_list()
379 p = xdr_inline_decode(xdr, in decode_rc_list()
400 struct xdr_stream *xdr, in decode_cb_sequence_args() argument
408 status = decode_sessionid(xdr, &args->csa_sessionid); in decode_cb_sequence_args()
412 p = xdr_inline_decode(xdr, 5 * sizeof(uint32_t)); in decode_cb_sequence_args()
431 status = decode_rc_list(xdr, &args->csa_rclists[i]); in decode_cb_sequence_args()
448 struct xdr_stream *xdr, in decode_recallany_args() argument
455 p = xdr_inline_decode(xdr, 4); in decode_recallany_args()
459 status = decode_bitmap(xdr, bitmap); in decode_recallany_args()
468 struct xdr_stream *xdr, in decode_recallslot_args() argument
474 p = xdr_inline_decode(xdr, 4); in decode_recallslot_args()
481 static __be32 decode_lockowner(struct xdr_stream *xdr, struct cb_notify_lock_args *args) in decode_lockowner() argument
486 p = xdr_inline_decode(xdr, 12); in decode_lockowner()
493 p = xdr_inline_decode(xdr, len); in decode_lockowner()
512 struct xdr_stream *xdr, void *argp) in decode_notify_lock_args() argument
517 status = decode_fh(xdr, &args->cbnl_fh); in decode_notify_lock_args()
520 return decode_lockowner(xdr, args); in decode_notify_lock_args()
525 static __be32 decode_write_response(struct xdr_stream *xdr, in decode_write_response() argument
531 p = xdr_inline_decode(xdr, 4); in decode_write_response()
537 p = xdr_inline_decode(xdr, 8 + 4); in decode_write_response()
542 p = xdr_inline_decode(xdr, NFS4_VERIFIER_SIZE); in decode_write_response()
553 struct xdr_stream *xdr, in decode_offload_args() argument
561 status = decode_fh(xdr, &args->coa_fh); in decode_offload_args()
566 status = decode_stateid(xdr, &args->coa_stateid); in decode_offload_args()
571 p = xdr_inline_decode(xdr, 4); in decode_offload_args()
576 status = decode_write_response(xdr, args); in decode_offload_args()
580 p = xdr_inline_decode(xdr, 8); in decode_offload_args()
590 static __be32 encode_string(struct xdr_stream *xdr, unsigned int len, const char *str) in encode_string() argument
592 if (unlikely(xdr_stream_encode_opaque(xdr, str, len) < 0)) in encode_string()
597 static __be32 encode_attr_bitmap(struct xdr_stream *xdr, const uint32_t *bitmap, size_t sz) in encode_attr_bitmap() argument
599 if (xdr_stream_encode_uint32_array(xdr, bitmap, sz) < 0) in encode_attr_bitmap()
604 static __be32 encode_attr_change(struct xdr_stream *xdr, const uint32_t *bitmap, uint64_t change) in encode_attr_change() argument
610 p = xdr_reserve_space(xdr, 8); in encode_attr_change()
617 static __be32 encode_attr_size(struct xdr_stream *xdr, const uint32_t *bitmap, uint64_t size) in encode_attr_size() argument
623 p = xdr_reserve_space(xdr, 8); in encode_attr_size()
630 static __be32 encode_attr_time(struct xdr_stream *xdr, const struct timespec64 *time) in encode_attr_time() argument
634 p = xdr_reserve_space(xdr, 12); in encode_attr_time()
642 static __be32 encode_attr_ctime(struct xdr_stream *xdr, const uint32_t *bitmap, const struct timesp… in encode_attr_ctime() argument
646 return encode_attr_time(xdr,time); in encode_attr_ctime()
649 static __be32 encode_attr_mtime(struct xdr_stream *xdr, const uint32_t *bitmap, const struct timesp… in encode_attr_mtime() argument
653 return encode_attr_time(xdr,time); in encode_attr_mtime()
656 static __be32 encode_compound_hdr_res(struct xdr_stream *xdr, struct cb_compound_hdr_res *hdr) in encode_compound_hdr_res() argument
660 hdr->status = xdr_reserve_space(xdr, 4); in encode_compound_hdr_res()
663 status = encode_string(xdr, hdr->taglen, hdr->tag); in encode_compound_hdr_res()
666 hdr->nops = xdr_reserve_space(xdr, 4); in encode_compound_hdr_res()
672 static __be32 encode_op_hdr(struct xdr_stream *xdr, uint32_t op, __be32 res) in encode_op_hdr() argument
676 p = xdr_reserve_space(xdr, 8); in encode_op_hdr()
684 static __be32 encode_getattr_res(struct svc_rqst *rqstp, struct xdr_stream *xdr, in encode_getattr_res() argument
693 status = encode_attr_bitmap(xdr, res->bitmap, ARRAY_SIZE(res->bitmap)); in encode_getattr_res()
697 savep = xdr_reserve_space(xdr, sizeof(*savep)); in encode_getattr_res()
700 status = encode_attr_change(xdr, res->bitmap, res->change_attr); in encode_getattr_res()
703 status = encode_attr_size(xdr, res->bitmap, res->size); in encode_getattr_res()
706 status = encode_attr_ctime(xdr, res->bitmap, &res->ctime); in encode_getattr_res()
709 status = encode_attr_mtime(xdr, res->bitmap, &res->mtime); in encode_getattr_res()
710 *savep = htonl((unsigned int)((char *)xdr->p - (char *)(savep+1))); in encode_getattr_res()
717 static __be32 encode_sessionid(struct xdr_stream *xdr, in encode_sessionid() argument
722 p = xdr_reserve_space(xdr, NFS4_MAX_SESSIONID_LEN); in encode_sessionid()
731 struct xdr_stream *xdr, in encode_cb_sequence_res() argument
741 status = encode_sessionid(xdr, &res->csr_sessionid); in encode_cb_sequence_res()
745 p = xdr_reserve_space(xdr, 4 * sizeof(uint32_t)); in encode_cb_sequence_res()