]> CyberLeo.Net >> Repos - FreeBSD/releng/7.2.git/blob - sys/nfs4client/nfs4m_subs.h
Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.
[FreeBSD/releng/7.2.git] / sys / nfs4client / nfs4m_subs.h
1 /* $FreeBSD$ */
2 /* $Id: nfs4m_subs.h,v 1.36 2003/11/05 14:59:01 rees Exp $ */
3
4 /*-
5  * copyright (c) 2003
6  * the regents of the university of michigan
7  * all rights reserved
8  * 
9  * permission is granted to use, copy, create derivative works and redistribute
10  * this software and such derivative works for any purpose, so long as the name
11  * of the university of michigan is not used in any advertising or publicity
12  * pertaining to the use or distribution of this software without specific,
13  * written prior authorization.  if the above copyright notice or any other
14  * identification of the university of michigan is included in any copy of any
15  * portion of this software, then the disclaimer below must also be included.
16  * 
17  * this software is provided as is, without representation from the university
18  * of michigan as to its fitness for any purpose, and without warranty by the
19  * university of michigan of any kind, either express or implied, including
20  * without limitation the implied warranties of merchantability and fitness for
21  * a particular purpose. the regents of the university of michigan shall not be
22  * liable for any damages, including special, indirect, incidental, or
23  * consequential damages, with respect to any claim arising out of or in
24  * connection with the use of the software, even if it has been or is hereafter
25  * advised of the possibility of such damages.
26  */
27
28 #ifndef _NFS4CLIENT_NFSM4_SUBS_H
29 #define _NFS4CLIENT_NFSM4_SUBS_H
30
31 void nfsm_v4init(void);
32
33 void nfsm_buildf_xx(struct mbuf **mb, caddr_t *bpos, char *fmt, ...);
34 int nfsm_dissectf_xx(struct mbuf **md, caddr_t *dpos, char *fmt, ...);
35
36 int nfsm_v4build_compound_xx(struct nfs4_compound *, char *,
37         struct mbuf **, caddr_t *);
38 int nfsm_v4build_putfh_xx(struct nfs4_compound *, struct vnode *,
39         struct mbuf **, caddr_t *);
40 int nfsm_v4build_putfh_nv_xx(struct nfs4_compound *, struct nfs4_oparg_getfh *,
41         struct mbuf **, caddr_t *);
42 int nfsm_v4build_getattr_xx(struct nfs4_compound *, struct nfs4_oparg_getattr *,
43         struct mbuf **, caddr_t *);
44 int nfsm_v4build_finalize_xx(struct nfs4_compound *, struct mbuf **, caddr_t *);
45 int nfsm_v4build_getfh_xx(struct nfs4_compound *, struct nfs4_oparg_getfh *,
46         struct mbuf **, caddr_t *);
47 int nfsm_v4build_lookup_xx(struct nfs4_compound *, struct nfs4_oparg_lookup *,
48         struct mbuf **, caddr_t *);
49 int nfsm_v4build_setclientid_xx(struct nfs4_compound *,
50         struct nfs4_oparg_setclientid *, struct mbuf **, caddr_t *);
51 int nfsm_v4build_setclientid_confirm_xx(struct nfs4_compound *,
52         struct nfs4_oparg_setclientid *, struct mbuf **, caddr_t *);
53 int nfsm_v4build_close_xx(struct nfs4_compound *, struct nfs4_fctx *,
54         struct mbuf **, caddr_t *);
55 int nfsm_v4build_access_xx(struct nfs4_compound *, struct nfs4_oparg_access *,
56         struct mbuf **, caddr_t *);
57 int nfsm_v4build_open_xx(struct nfs4_compound *, struct nfs4_oparg_open *,
58         struct mbuf **, caddr_t *);
59 int nfsm_v4build_open_confirm_xx(struct nfs4_compound *, struct nfs4_oparg_open *,
60         struct mbuf **, caddr_t *);
61 int nfsm_v4build_read_xx(struct nfs4_compound *, struct nfs4_oparg_read *,
62         struct mbuf **, caddr_t *);
63 int nfsm_v4build_write_xx(struct nfs4_compound *, struct nfs4_oparg_write *,
64         struct mbuf **, caddr_t *);
65 int nfsm_v4build_commit_xx(struct nfs4_compound *, struct nfs4_oparg_commit *,
66         struct mbuf **, caddr_t *);
67 int nfsm_v4build_readdir_xx(struct nfs4_compound *, struct nfs4_oparg_readdir *,
68         struct mbuf **, caddr_t *);
69 int nfsm_v4build_renew_xx(struct nfs4_compound *, uint64_t,
70         struct mbuf **, caddr_t *);
71 int nfsm_v4build_setattr_xx(struct nfs4_compound *, struct vattr *,
72         struct nfs4_fctx *, struct mbuf **, caddr_t *);
73 int nfsm_v4build_create_xx(struct nfs4_compound *, struct nfs4_oparg_create *,
74         struct mbuf **, caddr_t *);
75 int nfsm_v4build_rename_xx(struct nfs4_compound *, struct nfs4_oparg_rename *,
76         struct mbuf **, caddr_t *);
77 int nfsm_v4build_link_xx(struct nfs4_compound *, struct nfs4_oparg_link *,
78         struct mbuf **, caddr_t *);
79 int nfsm_v4build_remove_xx(struct nfs4_compound *, const char *, u_int,
80         struct mbuf **, caddr_t *);
81
82 int nfsm_v4dissect_compound_xx(struct nfs4_compound *, struct mbuf **, caddr_t *);
83 int nfsm_v4dissect_getattr_xx(struct nfs4_compound *, struct nfs4_oparg_getattr *,
84         struct mbuf **, caddr_t *);
85 int nfsm_v4dissect_getfh_xx(struct nfs4_compound *, struct nfs4_oparg_getfh *,
86         struct mbuf **, caddr_t *);
87 int nfsm_v4dissect_setclientid_xx(struct nfs4_compound *,
88         struct nfs4_oparg_setclientid *, struct mbuf **, caddr_t *);
89 int nfsm_v4dissect_close_xx(struct nfs4_compound *, struct nfs4_fctx *,
90         struct mbuf **, caddr_t *);
91 int nfsm_v4dissect_access_xx(struct nfs4_compound *, struct nfs4_oparg_access *,
92         struct mbuf **, caddr_t *);
93 int nfsm_v4dissect_open_xx(struct nfs4_compound *, struct nfs4_oparg_open *,
94         struct mbuf **, caddr_t *);
95 int nfsm_v4dissect_open_confirm_xx(struct nfs4_compound *, struct nfs4_oparg_open *,
96         struct mbuf **, caddr_t *);
97 int nfsm_v4dissect_read_xx(struct nfs4_compound *, struct nfs4_oparg_read *,
98         struct mbuf **, caddr_t *);
99 int nfsm_v4dissect_write_xx(struct nfs4_compound *, struct nfs4_oparg_write *,
100         struct mbuf **, caddr_t *);
101 int nfsm_v4dissect_commit_xx(struct nfs4_compound *, struct nfs4_oparg_commit *,
102         struct mbuf **, caddr_t *);
103 int nfsm_v4dissect_setattr_xx(struct nfs4_compound *, struct mbuf **, caddr_t *);
104 int nfsm_v4dissect_create_xx(struct nfs4_compound *, struct nfs4_oparg_create *,
105         struct mbuf **, caddr_t *);
106 int nfsm_v4dissect_readlink_xx(struct nfs4_compound *, struct uio *, 
107         struct mbuf **, caddr_t *);
108
109 int nfsm_v4dissect_attrs_xx(struct nfsv4_fattr *, struct mbuf **, caddr_t *);
110
111 int nfsm_v4build_simple_xx(struct nfs4_compound *, uint32_t,
112         struct mbuf **, caddr_t *);
113 int nfsm_v4dissect_simple_xx(struct nfs4_compound *, uint32_t,
114         uint32_t, struct mbuf **, caddr_t *);
115
116 #define nfsm_v4build_putrootfh_xx(cp, mb, bpos) \
117         nfsm_v4build_simple_xx((cp), NFSV4OP_PUTROOTFH, (mb), (bpos))
118
119 #define nfsm_v4build_lookupp_xx(cp, mb, bpos) \
120         nfsm_v4build_simple_xx((cp), NFSV4OP_LOOKUPP, (mb), (bpos))
121
122 #define nfsm_v4build_savefh_xx(cp, mb, bpos)                            \
123         nfsm_v4build_simple_xx((cp), NFSV4OP_SAVEFH, (mb), (bpos))
124
125 #define nfsm_v4build_readlink_xx(cp, mb, bpos)                          \
126         nfsm_v4build_simple_xx((cp), NFSV4OP_READLINK, (mb), (bpos))
127
128
129 #define nfsm_v4dissect_putrootfh_xx(cp, mb, bpos)                               \
130         nfsm_v4dissect_simple_xx((cp), NFSV4OP_PUTROOTFH, 0, (mb), (bpos))
131
132 #define nfsm_v4dissect_lookup_xx(cp, mb, bpos) \
133         nfsm_v4dissect_simple_xx((cp), NFSV4OP_LOOKUP, 0, (mb), (bpos))
134
135 #define nfsm_v4dissect_lookupp_xx(cp, mb, bpos) \
136         nfsm_v4dissect_simple_xx((cp), NFSV4OP_LOOKUPP, 0, (mb), (bpos))
137
138 #define nfsm_v4dissect_putfh_xx(cp, mb, bpos) \
139         nfsm_v4dissect_simple_xx((cp), NFSV4OP_PUTFH, 0, (mb), (bpos))
140
141 #define nfsm_v4dissect_renew_xx(cp, mb, bpos) \
142         nfsm_v4dissect_simple_xx((cp), NFSV4OP_RENEW, 0, (mb), (bpos))
143
144 #define nfsm_v4dissect_setclientid_confirm_xx(cp, mb, bpos) \
145         nfsm_v4dissect_simple_xx((cp), NFSV4OP_SETCLIENTID_CONFIRM, 0, (mb), (bpos))
146
147 #define nfsm_v4dissect_rename_xx(cp, mb, bpos)                          \
148         nfsm_v4dissect_simple_xx((cp), NFSV4OP_RENAME, 0, (mb), (bpos))
149
150 #define nfsm_v4dissect_link_xx(cp, mb, bpos)                            \
151         nfsm_v4dissect_simple_xx((cp), NFSV4OP_LINK, 0, (mb), (bpos))
152
153 #define nfsm_v4dissect_savefh_xx(cp, mb, bpos)                          \
154         nfsm_v4dissect_simple_xx((cp), NFSV4OP_SAVEFH, 0, (mb), (bpos))
155
156 #define nfsm_v4dissect_remove_xx(cp, mb, bpos)                          \
157         nfsm_v4dissect_simple_xx((cp), NFSV4OP_REMOVE, 0, (mb), (bpos))
158
159 #define nfsm_v4build_compound(cp, tag) do {                     \
160         int32_t t1;                                             \
161         t1 = nfsm_v4build_compound_xx((cp), (tag), &mb, &bpos); \
162         nfsm_bcheck(t1, mreq);                                  \
163 } while (0)
164
165 #define nfsm_v4build_finalize(cp) do {                  \
166         int32_t t1;                                     \
167         t1 = nfsm_v4build_finalize_xx((cp), &mb, &bpos);        \
168         nfsm_bcheck(t1, mreq);                          \
169 } while (0)
170
171 #define nfsm_v4build_putfh(cp, vp) do {                         \
172         int32_t t1;                                             \
173         t1 = nfsm_v4build_putfh_xx((cp), (vp), &mb, &bpos);     \
174         nfsm_bcheck(t1, mreq);                                  \
175 } while (0)
176
177 #define nfsm_v4build_putfh_nv(cp, gfh) do {                             \
178         int32_t t1;                                             \
179         t1 = nfsm_v4build_putfh_nv_xx((cp), (gfh), &mb, &bpos); \
180         nfsm_bcheck(t1, mreq);                                  \
181 } while (0)
182
183 #define nfsm_v4build_putrootfh(cp) do {                         \
184         int32_t t1;                                             \
185         t1 = nfsm_v4build_putrootfh_xx((cp), &mb, &bpos);       \
186         nfsm_bcheck(t1, mreq);                                  \
187 } while (0)
188
189 #define nfsm_v4build_getattr(cp, ga) do {                       \
190         int32_t t1;                                             \
191         t1 = nfsm_v4build_getattr_xx((cp), (ga), &mb, &bpos);   \
192         nfsm_bcheck(t1, mreq);                                  \
193 } while (0)
194
195 #define nfsm_v4build_setattr(cp, vap, fcp) do {                         \
196         int32_t t1;                                                     \
197         t1 = nfsm_v4build_setattr_xx((cp), (vap), (fcp), &mb, &bpos);   \
198         nfsm_bcheck(t1, mreq);                                          \
199 } while (0)
200
201 #define nfsm_v4build_lookup(cp, l) do {                         \
202         int32_t t1;                                             \
203         t1 = nfsm_v4build_lookup_xx((cp), (l), &mb, &bpos);     \
204         nfsm_bcheck(t1, mreq);                                  \
205 } while (0)
206
207 #define nfsm_v4build_lookupp(cp) do {                   \
208         int32_t t1;                                     \
209         t1 = nfsm_v4build_lookupp_xx((cp), &mb, &bpos); \
210         nfsm_bcheck(t1, mreq);                          \
211 } while (0)
212
213 #define nfsm_v4build_getfh(cp, gfh) do {                                \
214         int32_t t1;                                             \
215         t1 = nfsm_v4build_getfh_xx((cp), (gfh), &mb, &bpos);    \
216         nfsm_bcheck(t1, mreq);                                  \
217 } while (0)
218
219 #define nfsm_v4build_close(cp, fcp) do {                        \
220         int32_t t1;                                             \
221         t1 = nfsm_v4build_close_xx((cp), (fcp), &mb, &bpos);    \
222         nfsm_bcheck(t1, mreq);                                  \
223 } while (0)
224
225 #define nfsm_v4build_access(cp, acc) do {                       \
226         int32_t t1;                                             \
227         t1 = nfsm_v4build_access_xx((cp), (acc), &mb, &bpos);   \
228         nfsm_bcheck(t1, mreq);                                  \
229 } while (0)
230
231 #define nfsm_v4build_open(cp, o) do {                           \
232         int32_t t1;                                             \
233         t1 = nfsm_v4build_open_xx((cp), (o), &mb, &bpos);       \
234         nfsm_bcheck(t1, mreq);                                  \
235 } while (0)
236
237 #define nfsm_v4build_open_confirm(cp, o) do {                           \
238         int32_t t1;                                             \
239         t1 = nfsm_v4build_open_confirm_xx((cp), (o), &mb, &bpos);       \
240         nfsm_bcheck(t1, mreq);                                  \
241 } while (0)
242
243 #define nfsm_v4build_read(cp, r) do {                           \
244         int32_t t1;                                             \
245         t1 = nfsm_v4build_read_xx((cp), (r), &mb, &bpos);       \
246         nfsm_bcheck(t1, mreq);                                  \
247 } while (0)
248
249 #define nfsm_v4build_write(cp, w) do {                          \
250         int32_t t1;                                             \
251         t1 = nfsm_v4build_write_xx((cp), (w), &mb, &bpos);      \
252         nfsm_bcheck(t1, mreq);                                  \
253 } while (0)
254
255 #define nfsm_v4build_commit(cp, c) do {                         \
256         int32_t t1;                                             \
257         t1 = nfsm_v4build_commit_xx((cp), (c), &mb, &bpos);     \
258         nfsm_bcheck(t1, mreq);                                  \
259 } while (0)
260
261 #define nfsm_v4build_readdir(cp, r) do {                                \
262         int32_t t1;                                             \
263         t1 = nfsm_v4build_readdir_xx((cp), (r), &mb, &bpos);    \
264         nfsm_bcheck(t1, mreq);                                  \
265 } while (0)
266
267 #define nfsm_v4build_renew(cp, cid) do {                                \
268         int32_t t1;                                             \
269         t1 = nfsm_v4build_renew_xx((cp), (cid), &mb, &bpos);    \
270         nfsm_bcheck(t1, mreq);                                  \
271 } while (0)
272
273 #define nfsm_v4build_setclientid(cp, cid) do {                          \
274         int32_t t1;                                             \
275         t1 = nfsm_v4build_setclientid_xx((cp), (cid), &mb, &bpos);      \
276         nfsm_bcheck(t1, mreq);                                  \
277 } while (0)
278
279 #define nfsm_v4build_setclientid_confirm(cp, cid) do {                          \
280         int32_t t1;                                             \
281         t1 = nfsm_v4build_setclientid_confirm_xx((cp), (cid), &mb, &bpos);      \
282         nfsm_bcheck(t1, mreq);                                  \
283 } while (0)
284
285 #define nfsm_v4build_create(cp, c) do {                         \
286         int32_t t1;                                             \
287         t1 = nfsm_v4build_create_xx((cp), (c), &mb, &bpos);     \
288         nfsm_bcheck(t1, mreq);                                  \
289 } while (0)
290
291 #define nfsm_v4build_rename(cp, r) do {                         \
292         int32_t t1;                                             \
293         t1 = nfsm_v4build_rename_xx((cp), (r), &mb, &bpos);     \
294         nfsm_bcheck(t1, mreq);                                  \
295 } while (0)
296
297 #define nfsm_v4build_link(cp, r) do {                           \
298         int32_t t1;                                             \
299         t1 = nfsm_v4build_link_xx((cp), (r), &mb, &bpos);       \
300         nfsm_bcheck(t1, mreq);                                  \
301 } while (0)
302
303 #define nfsm_v4build_savefh(cp) do {                    \
304         int32_t t1;                                     \
305         t1 = nfsm_v4build_savefh_xx((cp), &mb, &bpos);  \
306         nfsm_bcheck(t1, mreq);                          \
307 } while (0)
308
309 #define nfsm_v4build_readlink(cp) do {                          \
310         int32_t t1;                                             \
311         t1 = nfsm_v4build_readlink_xx((cp), &mb, &bpos);        \
312         nfsm_bcheck(t1, mreq);                                  \
313 } while (0)
314
315 #define nfsm_v4build_remove(cp, name, namelen) do {                             \
316         int32_t t1;                                                             \
317         t1 = nfsm_v4build_remove_xx((cp), (name), (namelen), &mb, &bpos);       \
318         nfsm_bcheck(t1, mreq);                                                  \
319 } while (0)
320
321 /* --- */
322
323 #define nfsm_v4dissect_compound(cp)                             \
324 do {                                                            \
325         int32_t t1;                                             \
326         t1 = nfsm_v4dissect_compound_xx((cp), &md, &dpos);      \
327         nfsm_dcheck(t1, mrep);                                  \
328 } while (0)
329
330 #define nfsm_v4dissect_putfh(cp)                        \
331 do {                                                    \
332         int32_t t1;                                     \
333         t1 = nfsm_v4dissect_putfh_xx((cp), &md, &dpos); \
334         nfsm_dcheck(t1, mrep);                          \
335 } while (0)
336
337 #define nfsm_v4dissect_putrootfh(cp)                            \
338 do {                                                            \
339         int32_t t1;                                             \
340         t1 = nfsm_v4dissect_putrootfh_xx((cp), &md, &dpos);     \
341         nfsm_dcheck(t1, mrep);                                  \
342 } while (0)
343
344 #define nfsm_v4dissect_getattr(cp, ga)                          \
345 do {                                                            \
346         int32_t t1;                                             \
347         t1 = nfsm_v4dissect_getattr_xx((cp), (ga), &md, &dpos); \
348         nfsm_dcheck(t1, mrep);                                  \
349 } while (0)
350
351 #define nfsm_v4dissect_setattr(cp)                              \
352 do {                                                            \
353         int32_t t1;                                             \
354         t1 = nfsm_v4dissect_setattr_xx((cp), &md, &dpos);       \
355         nfsm_dcheck(t1, mrep);                                  \
356 } while (0)
357
358 #define nfsm_v4dissect_lookup(cp)                               \
359 do {                                                            \
360         int32_t t1;                                             \
361         t1 = nfsm_v4dissect_lookup_xx((cp), &md, &dpos);        \
362         nfsm_dcheck(t1, mrep);                                  \
363 } while (0)
364
365 #define nfsm_v4dissect_lookupp(cp)                              \
366 do {                                                            \
367         int32_t t1;                                             \
368         t1 = nfsm_v4dissect_lookupp_xx((cp), &md, &dpos);       \
369         nfsm_dcheck(t1, mrep);                                  \
370 } while (0)
371
372 #define nfsm_v4dissect_getfh(cp, gfh)                           \
373 do {                                                            \
374         int32_t t1;                                             \
375         t1 = nfsm_v4dissect_getfh_xx((cp), (gfh), &md, &dpos);  \
376         nfsm_dcheck(t1, mrep);                                  \
377 } while (0)
378
379 #define nfsm_v4dissect_setclientid(cp, sci)                             \
380 do {                                                                    \
381         int32_t t1;                                                     \
382         t1 = nfsm_v4dissect_setclientid_xx((cp), (sci), &md, &dpos);    \
383         nfsm_dcheck(t1, mrep);                                          \
384 } while (0)
385
386 #define nfsm_v4dissect_setclientid_confirm(cp)                          \
387 do {                                                                    \
388         int32_t t1;                                                     \
389         t1 = nfsm_v4dissect_setclientid_confirm_xx((cp), &md, &dpos);   \
390         nfsm_dcheck(t1, mrep);                                          \
391 } while (0)
392
393 #define nfsm_v4dissect_close(cp, fcp)                           \
394 do {                                                            \
395         int32_t t1;                                             \
396         t1 = nfsm_v4dissect_close_xx((cp), (fcp), &md, &dpos);  \
397         nfsm_dcheck(t1, mrep);                                  \
398 } while (0)
399
400 #define nfsm_v4dissect_access(cp, acc)                          \
401 do {                                                            \
402         int32_t t1;                                             \
403         t1 = nfsm_v4dissect_access_xx((cp), (acc), &md, &dpos); \
404         nfsm_dcheck(t1, mrep);                                  \
405 } while (0)
406
407 #define nfsm_v4dissect_open(cp, openp)                          \
408 do {                                                            \
409         int32_t t1;                                             \
410         t1 = nfsm_v4dissect_open_xx((cp), (openp), &md, &dpos); \
411         nfsm_dcheck(t1, mrep);                                  \
412 } while (0)
413
414 #define nfsm_v4dissect_open_confirm(cp, openp)                          \
415 do {                                                            \
416         int32_t t1;                                             \
417         t1 = nfsm_v4dissect_open_confirm_xx((cp), (openp), &md, &dpos); \
418         nfsm_dcheck(t1, mrep);                                  \
419 } while (0)
420
421 #define nfsm_v4dissect_read(cp, r)                              \
422 do {                                                            \
423         int32_t t1;                                             \
424         t1 = nfsm_v4dissect_read_xx((cp), (r), &md, &dpos);     \
425         nfsm_dcheck(t1, mrep);                                  \
426 } while (0)
427
428 #define nfsm_v4dissect_write(cp, w)                             \
429 do {                                                            \
430         int32_t t1;                                             \
431         t1 = nfsm_v4dissect_write_xx((cp), (w), &md, &dpos);    \
432         nfsm_dcheck(t1, mrep);                                  \
433 } while (0)
434
435 #define nfsm_v4dissect_commit(cp, c)                            \
436 do {                                                            \
437         int32_t t1;                                             \
438         t1 = nfsm_v4dissect_commit_xx((cp), (c), &md, &dpos);   \
439         nfsm_dcheck(t1, mrep);                                  \
440 } while (0)
441
442 #define nfsm_v4dissect_attrs(fattr)                             \
443 do {                                                            \
444         int32_t t1;                                             \
445         t1 = nfsm_v4dissect_attrs_xx((fattr), &md, &dpos);      \
446         nfsm_dcheck(t1, mrep);                                  \
447 } while (0)
448
449 #define nfsm_v4dissect_renew(cp)                        \
450 do {                                                    \
451         int32_t t1;                                     \
452         t1 = nfsm_v4dissect_renew_xx((cp), &md, &dpos); \
453         nfsm_dcheck(t1, mrep);                          \
454 } while (0)
455
456 #define nfsm_v4dissect_create(cp, c)                            \
457 do {                                                            \
458         int32_t t1;                                             \
459         t1 = nfsm_v4dissect_create_xx((cp), (c), &md, &dpos);   \
460         nfsm_dcheck(t1, mrep);                                  \
461 } while (0)
462
463 #define nfsm_v4dissect_rename(cp)                               \
464 do {                                                            \
465         int32_t t1;                                             \
466         t1 = nfsm_v4dissect_rename_xx((cp), &md, &dpos);        \
467         nfsm_dcheck(t1, mrep);                                  \
468 } while (0)
469
470 #define nfsm_v4dissect_link(cp)                         \
471 do {                                                            \
472         int32_t t1;                                             \
473         t1 = nfsm_v4dissect_link_xx((cp), &md, &dpos);  \
474         nfsm_dcheck(t1, mrep);                                  \
475 } while (0)
476
477 #define nfsm_v4dissect_savefh(cp)                               \
478 do {                                                            \
479         int32_t t1;                                             \
480         t1 = nfsm_v4dissect_savefh_xx((cp), &md, &dpos);        \
481         nfsm_dcheck(t1, mrep);                                  \
482 } while (0)
483
484 #define nfsm_v4dissect_readlink(cp, uiop)                               \
485 do {                                                                    \
486         int32_t t1;                                                     \
487         t1 = nfsm_v4dissect_readlink_xx((cp), (uiop), &md, &dpos);      \
488         nfsm_dcheck(t1, mrep);                                          \
489 } while (0)
490
491 #define nfsm_v4dissect_remove(cp)                               \
492 do {                                                            \
493         int32_t t1;                                             \
494         t1 = nfsm_v4dissect_remove_xx((cp), &md, &dpos);        \
495         nfsm_dcheck(t1, mrep);                                  \
496 } while (0)
497
498 #endif /* _NFS4CLIENT_NFSM4_SUBS_H */