162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#define NFS4_MAXTAGLEN 20 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci#define NFS4_enc_cb_null_sz 0 562306a36Sopenharmony_ci#define NFS4_dec_cb_null_sz 0 662306a36Sopenharmony_ci#define cb_compound_enc_hdr_sz 4 762306a36Sopenharmony_ci#define cb_compound_dec_hdr_sz (3 + (NFS4_MAXTAGLEN >> 2)) 862306a36Sopenharmony_ci#define sessionid_sz (NFS4_MAX_SESSIONID_LEN >> 2) 962306a36Sopenharmony_ci#define cb_sequence_enc_sz (sessionid_sz + 4 + \ 1062306a36Sopenharmony_ci 1 /* no referring calls list yet */) 1162306a36Sopenharmony_ci#define cb_sequence_dec_sz (op_dec_sz + sessionid_sz + 4) 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#define op_enc_sz 1 1462306a36Sopenharmony_ci#define op_dec_sz 2 1562306a36Sopenharmony_ci#define enc_nfs4_fh_sz (1 + (NFS4_FHSIZE >> 2)) 1662306a36Sopenharmony_ci#define enc_stateid_sz (NFS4_STATEID_SIZE >> 2) 1762306a36Sopenharmony_ci#define NFS4_enc_cb_recall_sz (cb_compound_enc_hdr_sz + \ 1862306a36Sopenharmony_ci cb_sequence_enc_sz + \ 1962306a36Sopenharmony_ci 1 + enc_stateid_sz + \ 2062306a36Sopenharmony_ci enc_nfs4_fh_sz) 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci#define NFS4_dec_cb_recall_sz (cb_compound_dec_hdr_sz + \ 2362306a36Sopenharmony_ci cb_sequence_dec_sz + \ 2462306a36Sopenharmony_ci op_dec_sz) 2562306a36Sopenharmony_ci#define NFS4_enc_cb_layout_sz (cb_compound_enc_hdr_sz + \ 2662306a36Sopenharmony_ci cb_sequence_enc_sz + \ 2762306a36Sopenharmony_ci 1 + 3 + \ 2862306a36Sopenharmony_ci enc_nfs4_fh_sz + 4) 2962306a36Sopenharmony_ci#define NFS4_dec_cb_layout_sz (cb_compound_dec_hdr_sz + \ 3062306a36Sopenharmony_ci cb_sequence_dec_sz + \ 3162306a36Sopenharmony_ci op_dec_sz) 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci#define NFS4_enc_cb_notify_lock_sz (cb_compound_enc_hdr_sz + \ 3462306a36Sopenharmony_ci cb_sequence_enc_sz + \ 3562306a36Sopenharmony_ci 2 + 1 + \ 3662306a36Sopenharmony_ci XDR_QUADLEN(NFS4_OPAQUE_LIMIT) + \ 3762306a36Sopenharmony_ci enc_nfs4_fh_sz) 3862306a36Sopenharmony_ci#define NFS4_dec_cb_notify_lock_sz (cb_compound_dec_hdr_sz + \ 3962306a36Sopenharmony_ci cb_sequence_dec_sz + \ 4062306a36Sopenharmony_ci op_dec_sz) 4162306a36Sopenharmony_ci#define enc_cb_offload_info_sz (1 + 1 + 2 + 1 + \ 4262306a36Sopenharmony_ci XDR_QUADLEN(NFS4_VERIFIER_SIZE)) 4362306a36Sopenharmony_ci#define NFS4_enc_cb_offload_sz (cb_compound_enc_hdr_sz + \ 4462306a36Sopenharmony_ci cb_sequence_enc_sz + \ 4562306a36Sopenharmony_ci enc_nfs4_fh_sz + \ 4662306a36Sopenharmony_ci enc_stateid_sz + \ 4762306a36Sopenharmony_ci enc_cb_offload_info_sz) 4862306a36Sopenharmony_ci#define NFS4_dec_cb_offload_sz (cb_compound_dec_hdr_sz + \ 4962306a36Sopenharmony_ci cb_sequence_dec_sz + \ 5062306a36Sopenharmony_ci op_dec_sz) 5162306a36Sopenharmony_ci#define NFS4_enc_cb_recall_any_sz (cb_compound_enc_hdr_sz + \ 5262306a36Sopenharmony_ci cb_sequence_enc_sz + \ 5362306a36Sopenharmony_ci 1 + 1 + 1) 5462306a36Sopenharmony_ci#define NFS4_dec_cb_recall_any_sz (cb_compound_dec_hdr_sz + \ 5562306a36Sopenharmony_ci cb_sequence_dec_sz + \ 5662306a36Sopenharmony_ci op_dec_sz) 57