xref: /OK3568_Linux_fs/kernel/fs/nfsd/xdr4cb.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun #define NFS4_MAXTAGLEN		20
3*4882a593Smuzhiyun 
4*4882a593Smuzhiyun #define NFS4_enc_cb_null_sz		0
5*4882a593Smuzhiyun #define NFS4_dec_cb_null_sz		0
6*4882a593Smuzhiyun #define cb_compound_enc_hdr_sz		4
7*4882a593Smuzhiyun #define cb_compound_dec_hdr_sz		(3 + (NFS4_MAXTAGLEN >> 2))
8*4882a593Smuzhiyun #define sessionid_sz			(NFS4_MAX_SESSIONID_LEN >> 2)
9*4882a593Smuzhiyun #define cb_sequence_enc_sz		(sessionid_sz + 4 +             \
10*4882a593Smuzhiyun 					1 /* no referring calls list yet */)
11*4882a593Smuzhiyun #define cb_sequence_dec_sz		(op_dec_sz + sessionid_sz + 4)
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun #define op_enc_sz			1
14*4882a593Smuzhiyun #define op_dec_sz			2
15*4882a593Smuzhiyun #define enc_nfs4_fh_sz			(1 + (NFS4_FHSIZE >> 2))
16*4882a593Smuzhiyun #define enc_stateid_sz			(NFS4_STATEID_SIZE >> 2)
17*4882a593Smuzhiyun #define NFS4_enc_cb_recall_sz		(cb_compound_enc_hdr_sz +       \
18*4882a593Smuzhiyun 					cb_sequence_enc_sz +            \
19*4882a593Smuzhiyun 					1 + enc_stateid_sz +            \
20*4882a593Smuzhiyun 					enc_nfs4_fh_sz)
21*4882a593Smuzhiyun 
22*4882a593Smuzhiyun #define NFS4_dec_cb_recall_sz		(cb_compound_dec_hdr_sz  +      \
23*4882a593Smuzhiyun 					cb_sequence_dec_sz +            \
24*4882a593Smuzhiyun 					op_dec_sz)
25*4882a593Smuzhiyun #define NFS4_enc_cb_layout_sz		(cb_compound_enc_hdr_sz +       \
26*4882a593Smuzhiyun 					cb_sequence_enc_sz +            \
27*4882a593Smuzhiyun 					1 + 3 +                         \
28*4882a593Smuzhiyun 					enc_nfs4_fh_sz + 4)
29*4882a593Smuzhiyun #define NFS4_dec_cb_layout_sz		(cb_compound_dec_hdr_sz  +      \
30*4882a593Smuzhiyun 					cb_sequence_dec_sz +            \
31*4882a593Smuzhiyun 					op_dec_sz)
32*4882a593Smuzhiyun 
33*4882a593Smuzhiyun #define NFS4_enc_cb_notify_lock_sz	(cb_compound_enc_hdr_sz +        \
34*4882a593Smuzhiyun 					cb_sequence_enc_sz +             \
35*4882a593Smuzhiyun 					2 + 1 +				 \
36*4882a593Smuzhiyun 					XDR_QUADLEN(NFS4_OPAQUE_LIMIT) + \
37*4882a593Smuzhiyun 					enc_nfs4_fh_sz)
38*4882a593Smuzhiyun #define NFS4_dec_cb_notify_lock_sz	(cb_compound_dec_hdr_sz  +      \
39*4882a593Smuzhiyun 					cb_sequence_dec_sz +            \
40*4882a593Smuzhiyun 					op_dec_sz)
41*4882a593Smuzhiyun #define enc_cb_offload_info_sz		(1 + 1 + 2 + 1 +		\
42*4882a593Smuzhiyun 					XDR_QUADLEN(NFS4_VERIFIER_SIZE))
43*4882a593Smuzhiyun #define NFS4_enc_cb_offload_sz		(cb_compound_enc_hdr_sz +       \
44*4882a593Smuzhiyun 					cb_sequence_enc_sz +            \
45*4882a593Smuzhiyun 					enc_nfs4_fh_sz +		\
46*4882a593Smuzhiyun 					enc_stateid_sz +		\
47*4882a593Smuzhiyun 					enc_cb_offload_info_sz)
48*4882a593Smuzhiyun #define NFS4_dec_cb_offload_sz		(cb_compound_dec_hdr_sz  +      \
49*4882a593Smuzhiyun 					cb_sequence_dec_sz +            \
50*4882a593Smuzhiyun 					op_dec_sz)
51