Lines Matching refs:xdr

80 static void encode_uint32(struct xdr_stream *xdr, u32 n)
82 WARN_ON_ONCE(xdr_stream_encode_u32(xdr, n) < 0);
85 static void encode_bitmap4(struct xdr_stream *xdr, const __u32 *bitmap,
88 xdr_stream_encode_uint32_array(xdr, bitmap, len);
91 static int decode_cb_fattr4(struct xdr_stream *xdr, uint32_t *bitmap,
97 if (xdr_stream_decode_u64(xdr, &fattr->ncf_cb_change) < 0)
100 if (xdr_stream_decode_u64(xdr, &fattr->ncf_cb_fsize) < 0)
105 static void encode_nfs_cb_opnum4(struct xdr_stream *xdr, enum nfs_cb_opnum4 op)
109 p = xdr_reserve_space(xdr, 4);
118 static void encode_nfs_fh4(struct xdr_stream *xdr, const struct knfsd_fh *fh)
124 p = xdr_reserve_space(xdr, 4 + length);
136 static void encode_stateid4(struct xdr_stream *xdr, const stateid_t *sid)
140 p = xdr_reserve_space(xdr, NFS4_STATEID_SIZE);
150 static void encode_sessionid4(struct xdr_stream *xdr,
155 p = xdr_reserve_space(xdr, NFS4_MAX_SESSIONID_LEN);
220 static int decode_cb_op_status(struct xdr_stream *xdr,
226 p = xdr_inline_decode(xdr, 4 + 4);
252 static void encode_cb_compound4args(struct xdr_stream *xdr,
257 p = xdr_reserve_space(xdr, 4 + 4 + 4 + 4);
284 static int decode_cb_compound4res(struct xdr_stream *xdr,
290 p = xdr_inline_decode(xdr, 4 + 4);
296 p = xdr_inline_decode(xdr, length + 4);
315 static void encode_cb_recall4args(struct xdr_stream *xdr,
321 encode_nfs_cb_opnum4(xdr, OP_CB_RECALL);
322 encode_stateid4(xdr, &dp->dl_stid.sc_stateid);
324 p = xdr_reserve_space(xdr, 4);
327 encode_nfs_fh4(xdr, &dp->dl_stid.sc_file->fi_fhandle);
341 encode_cb_recallany4args(struct xdr_stream *xdr,
344 encode_nfs_cb_opnum4(xdr, OP_CB_RECALL_ANY);
345 encode_uint32(xdr, ra->ra_keep);
346 encode_bitmap4(xdr, ra->ra_bmval, ARRAY_SIZE(ra->ra_bmval));
361 encode_cb_getattr4args(struct xdr_stream *xdr, struct nfs4_cb_compound_hdr *hdr,
368 encode_nfs_cb_opnum4(xdr, OP_CB_GETATTR);
369 encode_nfs_fh4(xdr, fh);
370 encode_bitmap4(xdr, fattr->ncf_cb_bmap, ARRAY_SIZE(fattr->ncf_cb_bmap));
386 static void encode_cb_sequence4args(struct xdr_stream *xdr,
396 encode_nfs_cb_opnum4(xdr, OP_CB_SEQUENCE);
397 encode_sessionid4(xdr, session);
399 p = xdr_reserve_space(xdr, 4 + 4 + 4 + 4 + 4);
430 static int decode_cb_sequence4resok(struct xdr_stream *xdr,
442 p = xdr_inline_decode(xdr, NFS4_MAX_SESSIONID_LEN + 4 + 4 + 4 + 4);
476 static int decode_cb_sequence4res(struct xdr_stream *xdr,
484 status = decode_cb_op_status(xdr, OP_CB_SEQUENCE, &cb->cb_seq_status);
488 return decode_cb_sequence4resok(xdr, cb);
503 static void nfs4_xdr_enc_cb_null(struct rpc_rqst *req, struct xdr_stream *xdr,
506 xdr_reserve_space(xdr, 0);
513 struct xdr_stream *xdr, const void *data)
523 encode_cb_compound4args(xdr, &hdr);
524 encode_cb_sequence4args(xdr, cb, &hdr);
525 encode_cb_getattr4args(xdr, &hdr, ncf);
532 static void nfs4_xdr_enc_cb_recall(struct rpc_rqst *req, struct xdr_stream *xdr,
542 encode_cb_compound4args(xdr, &hdr);
543 encode_cb_sequence4args(xdr, cb, &hdr);
544 encode_cb_recall4args(xdr, dp, &hdr);
553 struct xdr_stream *xdr, const void *data)
563 encode_cb_compound4args(xdr, &hdr);
564 encode_cb_sequence4args(xdr, cb, &hdr);
565 encode_cb_recallany4args(xdr, &hdr, ra);
578 static int nfs4_xdr_dec_cb_null(struct rpc_rqst *req, struct xdr_stream *xdr,
588 struct xdr_stream *xdr,
599 status = decode_cb_compound4res(xdr, &hdr);
603 status = decode_cb_sequence4res(xdr, cb);
607 status = decode_cb_op_status(xdr, OP_CB_GETATTR, &cb->cb_status);
610 if (xdr_stream_decode_uint32_array(xdr, bitmap, 3) < 0)
612 if (xdr_stream_decode_u32(xdr, &attrlen) < 0)
616 status = decode_cb_fattr4(xdr, bitmap, ncf);
624 struct xdr_stream *xdr,
631 status = decode_cb_compound4res(xdr, &hdr);
635 status = decode_cb_sequence4res(xdr, cb);
639 return decode_cb_op_status(xdr, OP_CB_RECALL, &cb->cb_status);
647 struct xdr_stream *xdr,
654 status = decode_cb_compound4res(xdr, &hdr);
657 status = decode_cb_sequence4res(xdr, cb);
660 status = decode_cb_op_status(xdr, OP_CB_RECALL_ANY, &cb->cb_status);
691 static void encode_cb_layout4args(struct xdr_stream *xdr,
699 p = xdr_reserve_space(xdr, 5 * 4);
706 encode_nfs_fh4(xdr, &ls->ls_stid.sc_file->fi_fhandle);
708 p = xdr_reserve_space(xdr, 2 * 8);
712 encode_stateid4(xdr, &ls->ls_recall_sid);
718 struct xdr_stream *xdr,
729 encode_cb_compound4args(xdr, &hdr);
730 encode_cb_sequence4args(xdr, cb, &hdr);
731 encode_cb_layout4args(xdr, ls, &hdr);
736 struct xdr_stream *xdr,
743 status = decode_cb_compound4res(xdr, &hdr);
747 status = decode_cb_sequence4res(xdr, cb);
751 return decode_cb_op_status(xdr, OP_CB_LAYOUTRECALL, &cb->cb_status);
755 static void encode_stateowner(struct xdr_stream *xdr, struct nfs4_stateowner *so)
759 p = xdr_reserve_space(xdr, 8 + 4 + so->so_owner.len);
765 struct xdr_stream *xdr,
781 encode_cb_compound4args(xdr, &hdr);
782 encode_cb_sequence4args(xdr, cb, &hdr);
784 p = xdr_reserve_space(xdr, 4);
786 encode_nfs_fh4(xdr, &nbl->nbl_fh);
787 encode_stateowner(xdr, &lo->lo_owner);
794 struct xdr_stream *xdr,
801 status = decode_cb_compound4res(xdr, &hdr);
805 status = decode_cb_sequence4res(xdr, cb);
809 return decode_cb_op_status(xdr, OP_CB_NOTIFY_LOCK, &cb->cb_status);
831 static void encode_offload_info4(struct xdr_stream *xdr,
836 p = xdr_reserve_space(xdr, 4);
840 p = xdr_reserve_space(xdr, 4 + 8 + 4 + NFS4_VERIFIER_SIZE);
848 p = xdr_reserve_space(xdr, 8);
854 static void encode_cb_offload4args(struct xdr_stream *xdr,
860 p = xdr_reserve_space(xdr, 4);
862 encode_nfs_fh4(xdr, &cbo->co_fh);
863 encode_stateid4(xdr, &cbo->co_res.cb_stateid);
864 encode_offload_info4(xdr, cbo);
870 struct xdr_stream *xdr,
881 encode_cb_compound4args(xdr, &hdr);
882 encode_cb_sequence4args(xdr, cb, &hdr);
883 encode_cb_offload4args(xdr, cbo, &hdr);
888 struct xdr_stream *xdr,
895 status = decode_cb_compound4res(xdr, &hdr);
899 status = decode_cb_sequence4res(xdr, cb);
903 return decode_cb_op_status(xdr, OP_CB_OFFLOAD, &cb->cb_status);
936 * official xdr descriptions for both 4.0 and 4.1 specify version 1, and