1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #define NFS4_MAXTAGLEN 20 |
3 | |
4 | #define NFS4_enc_cb_null_sz 0 |
5 | #define NFS4_dec_cb_null_sz 0 |
6 | #define cb_compound_enc_hdr_sz 4 |
7 | #define cb_compound_dec_hdr_sz (3 + (NFS4_MAXTAGLEN >> 2)) |
8 | #define sessionid_sz (NFS4_MAX_SESSIONID_LEN >> 2) |
9 | #define cb_sequence_enc_sz (sessionid_sz + 4 + \ |
10 | 1 /* no referring calls list yet */) |
11 | #define cb_sequence_dec_sz (op_dec_sz + sessionid_sz + 4) |
12 | |
13 | #define op_enc_sz 1 |
14 | #define op_dec_sz 2 |
15 | #define enc_nfs4_fh_sz (1 + (NFS4_FHSIZE >> 2)) |
16 | #define enc_stateid_sz (NFS4_STATEID_SIZE >> 2) |
17 | #define NFS4_enc_cb_recall_sz (cb_compound_enc_hdr_sz + \ |
18 | cb_sequence_enc_sz + \ |
19 | 1 + enc_stateid_sz + \ |
20 | enc_nfs4_fh_sz) |
21 | |
22 | #define NFS4_dec_cb_recall_sz (cb_compound_dec_hdr_sz + \ |
23 | cb_sequence_dec_sz + \ |
24 | op_dec_sz) |
25 | #define NFS4_enc_cb_layout_sz (cb_compound_enc_hdr_sz + \ |
26 | cb_sequence_enc_sz + \ |
27 | 1 + 3 + \ |
28 | enc_nfs4_fh_sz + 4) |
29 | #define NFS4_dec_cb_layout_sz (cb_compound_dec_hdr_sz + \ |
30 | cb_sequence_dec_sz + \ |
31 | op_dec_sz) |
32 | |
33 | #define NFS4_enc_cb_notify_lock_sz (cb_compound_enc_hdr_sz + \ |
34 | cb_sequence_enc_sz + \ |
35 | 2 + 1 + \ |
36 | XDR_QUADLEN(NFS4_OPAQUE_LIMIT) + \ |
37 | enc_nfs4_fh_sz) |
38 | #define NFS4_dec_cb_notify_lock_sz (cb_compound_dec_hdr_sz + \ |
39 | cb_sequence_dec_sz + \ |
40 | op_dec_sz) |
41 | #define enc_cb_offload_info_sz (1 + 1 + 2 + 1 + \ |
42 | XDR_QUADLEN(NFS4_VERIFIER_SIZE)) |
43 | #define NFS4_enc_cb_offload_sz (cb_compound_enc_hdr_sz + \ |
44 | cb_sequence_enc_sz + \ |
45 | enc_nfs4_fh_sz + \ |
46 | enc_stateid_sz + \ |
47 | enc_cb_offload_info_sz) |
48 | #define NFS4_dec_cb_offload_sz (cb_compound_dec_hdr_sz + \ |
49 | cb_sequence_dec_sz + \ |
50 | op_dec_sz) |
51 | #define NFS4_enc_cb_recall_any_sz (cb_compound_enc_hdr_sz + \ |
52 | cb_sequence_enc_sz + \ |
53 | 1 + 1 + 1) |
54 | #define NFS4_dec_cb_recall_any_sz (cb_compound_dec_hdr_sz + \ |
55 | cb_sequence_dec_sz + \ |
56 | op_dec_sz) |
57 | |
58 | /* |
59 | * 1: CB_GETATTR opcode (32-bit) |
60 | * N: file_handle |
61 | * 1: number of entry in attribute array (32-bit) |
62 | * 1: entry 0 in attribute array (32-bit) |
63 | */ |
64 | #define NFS4_enc_cb_getattr_sz (cb_compound_enc_hdr_sz + \ |
65 | cb_sequence_enc_sz + \ |
66 | 1 + enc_nfs4_fh_sz + 1 + 1) |
67 | /* |
68 | * 4: fattr_bitmap_maxsz |
69 | * 1: attribute array len |
70 | * 2: change attr (64-bit) |
71 | * 2: size (64-bit) |
72 | */ |
73 | #define NFS4_dec_cb_getattr_sz (cb_compound_dec_hdr_sz + \ |
74 | cb_sequence_dec_sz + 4 + 1 + 2 + 2 + op_dec_sz) |
75 | |