1/*
2 * Copyright (c) 1997-2014 Erez Zadok
3 * Copyright (c) 1990 Jan-Simon Pendry
4 * Copyright (c) 1990 Imperial College of Science, Technology & Medicine
5 * Copyright (c) 1990 The Regents of the University of California.
6 * All rights reserved.
7 *
8 * This code is derived from software contributed to Berkeley by
9 * Jan-Simon Pendry at Imperial College, London.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 * 1. Redistributions of source code must retain the above copyright
15 *    notice, this list of conditions and the following disclaimer.
16 * 2. Redistributions in binary form must reproduce the above copyright
17 *    notice, this list of conditions and the following disclaimer in the
18 *    documentation and/or other materials provided with the distribution.
19 * 3. Neither the name of the University nor the names of its contributors
20 *    may be used to endorse or promote products derived from this software
21 *    without specific prior written permission.
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 * SUCH DAMAGE.
34 *
35 *
36 * File: am-utils/include/am_xdr_func.h
37 *
38 */
39
40#ifdef HAVE_FS_NFS3
41
42#define AM_MOUNTVERS3 ((unsigned long)(3))
43
44#define AM_FHSIZE3 64		/* size in bytes of a file handle (v3) */
45#define AM_NFS3_WRITEVERFSIZE 8
46#define AM_NFS3_CREATEVERFSIZE 8
47#define AM_NFS3_COOKIEVERFSIZE 8
48#define AM_ACCESS3_READ 0x0001
49#define AM_ACCESS3_LOOKUP 0x0002
50#define AM_ACCESS3_MODIFY 0x0004
51#define AM_ACCESS3_EXTEND 0x0008
52#define AM_ACCESS3_DELETE 0x0010
53#define AM_ACCESS3_EXECUTE 0x0020
54#define AM_FSF3_LINK 0x0001
55#define AM_FSF3_SYMLINK 0x0002
56#define AM_FSF3_HOMOGENEOUS 0x0008
57#define AM_FSF3_CANSETTIME 0x0010
58
59typedef char am_cookieverf3[AM_NFS3_COOKIEVERFSIZE];
60
61typedef uint64 am_cookie3;
62
63/* NFSv3 handle */
64struct am_nfs_fh3 {
65  u_int am_fh3_length;
66  char am_fh3_data[AM_FHSIZE3];
67};
68typedef struct am_nfs_fh3 am_nfs_fh3;
69
70#define AM_NFSPROC3_LOOKUP ((u_long) 3)
71enum am_nfsstat3 {
72	AM_NFS3_OK = 0,
73	AM_NFS3ERR_PERM = 1,
74	AM_NFS3ERR_NOENT = 2,
75	AM_NFS3ERR_IO = 5,
76	AM_NFS3ERR_NXIO = 6,
77	AM_NFS3ERR_ACCES = 13,
78	AM_NFS3ERR_EXIST = 17,
79	AM_NFS3ERR_XDEV = 18,
80	AM_NFS3ERR_NODEV = 19,
81	AM_NFS3ERR_NOTDIR = 20,
82	AM_NFS3ERR_ISDIR = 21,
83	AM_NFS3ERR_INVAL = 22,
84	AM_NFS3ERR_FBIG = 27,
85	AM_NFS3ERR_NOSPC = 28,
86	AM_NFS3ERR_ROFS = 30,
87	AM_NFS3ERR_MLINK = 31,
88	AM_NFS3ERR_NAMETOOLONG = 63,
89	AM_NFS3ERR_NOTEMPTY = 66,
90	AM_NFS3ERR_DQUOT = 69,
91	AM_NFS3ERR_STALE = 70,
92	AM_NFS3ERR_REMOTE = 71,
93	AM_NFS3ERR_BADHANDLE = 10001,
94	AM_NFS3ERR_NOT_SYNC = 10002,
95	AM_NFS3ERR_BAD_COOKIE = 10003,
96	AM_NFS3ERR_NOTSUPP = 10004,
97	AM_NFS3ERR_TOOSMALL = 10005,
98	AM_NFS3ERR_SERVERFAULT = 10006,
99	AM_NFS3ERR_BADTYPE = 10007,
100	AM_NFS3ERR_JUKEBOX = 10008
101};
102typedef enum am_nfsstat3 am_nfsstat3;
103
104typedef struct {
105  u_int fhandle3_len;
106  char *fhandle3_val;
107} am_fhandle3;
108
109enum am_mountstat3 {
110       AM_MNT3_OK = 0,
111       AM_MNT3ERR_PERM = 1,
112       AM_MNT3ERR_NOENT = 2,
113       AM_MNT3ERR_IO = 5,
114       AM_MNT3ERR_ACCES = 13,
115       AM_MNT3ERR_NOTDIR = 20,
116       AM_MNT3ERR_INVAL = 22,
117       AM_MNT3ERR_NAMETOOLONG = 63,
118       AM_MNT3ERR_NOTSUPP = 10004,
119       AM_MNT3ERR_SERVERFAULT = 10006
120};
121typedef enum am_mountstat3 am_mountstat3;
122
123struct am_mountres3_ok {
124       am_fhandle3 fhandle;
125       struct {
126               u_int auth_flavors_len;
127               int *auth_flavors_val;
128       } auth_flavors;
129};
130typedef struct am_mountres3_ok am_mountres3_ok;
131
132struct am_mountres3 {
133       am_mountstat3 fhs_status;
134       union {
135               am_mountres3_ok mountinfo;
136       } mountres3_u;
137};
138typedef struct am_mountres3 am_mountres3;
139
140typedef char *am_filename3;
141
142struct am_diropargs3 {
143	am_nfs_fh3 dir;
144	am_filename3 name;
145};
146typedef struct am_diropargs3 am_diropargs3;
147
148enum am_ftype3 {
149  AM_NF3REG = 1,
150  AM_NF3DIR = 2,
151  AM_NF3BLK = 3,
152  AM_NF3CHR = 4,
153  AM_NF3LNK = 5,
154  AM_NF3SOCK = 6,
155  AM_NF3FIFO = 7,
156};
157typedef enum am_ftype3 am_ftype3;
158
159typedef u_int am_mode3;
160
161typedef u_int am_uid3;
162
163typedef u_int am_gid3;
164
165typedef uint64 am_size3;
166
167typedef uint64 am_fileid3;
168
169struct am_specdata3 {
170  u_int specdata1;
171  u_int specdata2;
172};
173typedef struct am_specdata3 am_specdata3;
174
175struct am_nfstime3 {
176  u_int seconds;
177  u_int nseconds;
178};
179typedef struct am_nfstime3 am_nfstime3;
180
181struct am_fattr3 {
182  am_ftype3 type;
183  am_mode3 mode;
184  u_int nlink;
185  am_uid3 uid;
186  am_gid3 gid;
187  am_size3 size;
188  am_size3 used;
189  am_specdata3 rdev;
190  uint64 fsid;
191  am_fileid3 fileid;
192  am_nfstime3 atime;
193  am_nfstime3 mtime;
194  am_nfstime3 ctime;
195};
196typedef struct am_fattr3 am_fattr3;
197
198struct am_post_op_attr {
199  bool_t attributes_follow;
200  union {
201    am_fattr3 attributes;
202  } am_post_op_attr_u;
203};
204typedef struct am_post_op_attr am_post_op_attr;
205
206enum am_stable_how {
207  AM_UNSTABLE = 0,
208  AM_DATA_SYNC = 1,
209  AM_FILE_SYNC = 2,
210};
211typedef enum am_stable_how am_stable_how;
212
213typedef uint64 am_offset3;
214
215typedef u_int am_count3;
216
217struct am_wcc_attr {
218  am_size3 size;
219  am_nfstime3 mtime;
220  am_nfstime3 ctime;
221};
222typedef struct am_wcc_attr am_wcc_attr;
223
224struct am_pre_op_attr {
225  bool_t attributes_follow;
226  union {
227    am_wcc_attr attributes;
228  } am_pre_op_attr_u;
229};
230typedef struct am_pre_op_attr am_pre_op_attr;
231
232struct am_wcc_data {
233  am_pre_op_attr before;
234  am_post_op_attr after;
235};
236typedef struct am_wcc_data am_wcc_data;
237
238struct am_WRITE3args {
239  am_nfs_fh3 file;
240  am_offset3 offset;
241  am_count3 count;
242  am_stable_how stable;
243  struct {
244    u_int data_len;
245    char *data_val;
246  } data;
247};
248typedef struct am_WRITE3args am_WRITE3args;
249
250typedef char am_writeverf3[AM_NFS3_WRITEVERFSIZE];
251
252struct am_WRITE3resok {
253  am_wcc_data file_wcc;
254  am_count3 count;
255  am_stable_how committed;
256  am_writeverf3 verf;
257};
258typedef struct am_WRITE3resok am_WRITE3resok;
259
260struct am_WRITE3resfail {
261  am_wcc_data file_wcc;
262};
263typedef struct am_WRITE3resfail am_WRITE3resfail;
264
265struct am_WRITE3res {
266  am_nfsstat3 status;
267  union {
268    am_WRITE3resok ok;
269    am_WRITE3resfail fail;
270  } res_u;
271};
272typedef struct am_WRITE3res am_WRITE3res;
273
274struct am_LOOKUP3args {
275  am_diropargs3 what;
276};
277typedef struct am_LOOKUP3args am_LOOKUP3args;
278
279struct am_LOOKUP3resok {
280  am_nfs_fh3 object;
281  am_post_op_attr obj_attributes;
282  am_post_op_attr dir_attributes;
283};
284typedef struct am_LOOKUP3resok am_LOOKUP3resok;
285
286struct am_LOOKUP3resfail {
287  am_post_op_attr dir_attributes;
288};
289typedef struct am_LOOKUP3resfail am_LOOKUP3resfail;
290
291struct am_LOOKUP3res {
292  am_nfsstat3 status;
293  union {
294    am_LOOKUP3resok ok;
295    am_LOOKUP3resfail fail;
296  } res_u;
297};
298typedef struct am_LOOKUP3res am_LOOKUP3res;
299
300struct am_COMMIT3args {
301  am_nfs_fh3 file;
302  am_offset3 offset;
303  am_count3 count;
304};
305typedef struct am_COMMIT3args am_COMMIT3args;
306
307struct am_COMMIT3resok {
308  am_wcc_data file_wcc;
309  am_writeverf3 verf;
310};
311typedef struct am_COMMIT3resok am_COMMIT3resok;
312
313struct am_COMMIT3resfail {
314  am_wcc_data file_wcc;
315};
316typedef struct am_COMMIT3resfail am_COMMIT3resfail;
317
318struct am_COMMIT3res {
319  am_nfsstat3 status;
320  union {
321    am_COMMIT3resok ok;
322    am_COMMIT3resfail fail;
323  } res_u;
324};
325typedef struct am_COMMIT3res am_COMMIT3res;
326
327struct am_ACCESS3args {
328  am_nfs_fh3 object;
329  u_int access;
330};
331typedef struct am_ACCESS3args am_ACCESS3args;
332
333struct am_ACCESS3resok {
334  am_post_op_attr obj_attributes;
335  u_int access;
336};
337typedef struct am_ACCESS3resok am_ACCESS3resok;
338
339struct am_ACCESS3resfail {
340  am_post_op_attr obj_attributes;
341};
342typedef struct am_ACCESS3resfail am_ACCESS3resfail;
343
344struct am_ACCESS3res {
345  am_nfsstat3 status;
346  union {
347    am_ACCESS3resok ok;
348    am_ACCESS3resfail fail;
349  } res_u;
350};
351typedef struct am_ACCESS3res am_ACCESS3res;
352
353struct am_GETATTR3args {
354  am_nfs_fh3 object;
355};
356typedef struct am_GETATTR3args am_GETATTR3args;
357
358struct am_GETATTR3resok {
359  am_fattr3 obj_attributes;
360};
361typedef struct am_GETATTR3resok am_GETATTR3resok;
362
363struct am_GETATTR3res {
364  am_nfsstat3 status;
365  union {
366    am_GETATTR3resok ok;
367  } res_u;
368};
369typedef struct am_GETATTR3res am_GETATTR3res;
370
371enum am_time_how {
372  AM_DONT_CHANGE = 0,
373  AM_SET_TO_SERVER_TIME = 1,
374  AM_SET_TO_CLIENT_TIME = 2,
375};
376typedef enum am_time_how am_time_how;
377
378struct am_set_mode3 {
379  bool_t set_it;
380  union {
381    am_mode3 mode;
382  } am_set_mode3_u;
383};
384typedef struct am_set_mode3 am_set_mode3;
385
386struct am_set_uid3 {
387  bool_t set_it;
388  union {
389    am_uid3 uid;
390  } am_set_uid3_u;
391};
392typedef struct am_set_uid3 am_set_uid3;
393
394struct am_set_gid3 {
395  bool_t set_it;
396  union {
397    am_gid3 gid;
398  } am_set_gid3_u;
399};
400typedef struct am_set_gid3 am_set_gid3;
401
402struct am_set_size3 {
403  bool_t set_it;
404  union {
405    am_size3 size;
406  } am_set_size3_u;
407};
408typedef struct am_set_size3 am_set_size3;
409
410struct am_set_atime {
411  am_time_how set_it;
412  union {
413    am_nfstime3 atime;
414  } am_set_atime_u;
415};
416typedef struct am_set_atime am_set_atime;
417
418struct am_set_mtime {
419  am_time_how set_it;
420  union {
421    am_nfstime3 mtime;
422  } am_set_mtime_u;
423};
424typedef struct am_set_mtime am_set_mtime;
425
426struct am_sattr3 {
427  am_set_mode3 mode;
428  am_set_uid3 uid;
429  am_set_gid3 gid;
430  am_set_size3 size;
431  am_set_atime atime;
432  am_set_mtime mtime;
433};
434typedef struct am_sattr3 am_sattr3;
435
436enum am_createmode3 {
437  AM_UNCHECKED = 0,
438  AM_GUARDED = 1,
439  AM_EXCLUSIVE = 2,
440};
441typedef enum am_createmode3 am_createmode3;
442
443typedef char am_createverf3[AM_NFS3_CREATEVERFSIZE];
444
445struct am_createhow3 {
446  am_createmode3 mode;
447  union {
448    am_sattr3 obj_attributes;
449    am_sattr3 g_obj_attributes;
450    am_createverf3 verf;
451  } am_createhow3_u;
452};
453typedef struct am_createhow3 am_createhow3;
454
455struct am_CREATE3args {
456  am_diropargs3 where;
457  am_createhow3 how;
458};
459typedef struct am_CREATE3args am_CREATE3args;
460
461struct am_post_op_fh3 {
462  bool_t handle_follows;
463  union {
464    am_nfs_fh3 handle;
465  } am_post_op_fh3_u;
466};
467typedef struct am_post_op_fh3 am_post_op_fh3;
468
469struct am_CREATE3resok {
470  am_post_op_fh3 obj;
471  am_post_op_attr obj_attributes;
472  am_wcc_data dir_wcc;
473};
474typedef struct am_CREATE3resok am_CREATE3resok;
475
476struct am_CREATE3resfail {
477  am_wcc_data dir_wcc;
478};
479typedef struct am_CREATE3resfail am_CREATE3resfail;
480
481struct am_CREATE3res {
482  am_nfsstat3 status;
483  union {
484    am_CREATE3resok ok;
485    am_CREATE3resfail fail;
486  } res_u;
487};
488typedef struct am_CREATE3res am_CREATE3res;
489
490struct am_REMOVE3args {
491  am_diropargs3 object;
492};
493typedef struct am_REMOVE3args am_REMOVE3args;
494
495struct am_REMOVE3resok {
496  am_wcc_data dir_wcc;
497};
498typedef struct am_REMOVE3resok am_REMOVE3resok;
499
500struct am_REMOVE3resfail {
501  am_wcc_data dir_wcc;
502};
503typedef struct am_REMOVE3resfail am_REMOVE3resfail;
504
505struct am_REMOVE3res {
506  am_nfsstat3 status;
507  union {
508    am_REMOVE3resok ok;
509    am_REMOVE3resfail fail;
510  } res_u;
511};
512typedef struct am_REMOVE3res am_REMOVE3res;
513
514struct am_READ3args {
515  am_nfs_fh3 file;
516  am_offset3 offset;
517  am_count3 count;
518};
519typedef struct am_READ3args am_READ3args;
520
521struct am_READ3resok {
522  am_post_op_attr file_attributes;
523  am_count3 count;
524  bool_t eof;
525  struct {
526    u_int data_len;
527    char *data_val;
528  } data;
529};
530typedef struct am_READ3resok am_READ3resok;
531
532struct am_READ3resfail {
533  am_post_op_attr file_attributes;
534};
535typedef struct am_READ3resfail am_READ3resfail;
536
537struct am_READ3res {
538  am_nfsstat3 status;
539  union {
540    am_READ3resok ok;
541    am_READ3resfail fail;
542  } res_u;
543};
544typedef struct am_READ3res am_READ3res;
545
546struct am_FSINFO3args {
547  am_nfs_fh3 fsroot;
548};
549typedef struct am_FSINFO3args am_FSINFO3args;
550
551struct am_FSINFO3resok {
552  am_post_op_attr obj_attributes;
553  u_int rtmax;
554  u_int rtpref;
555  u_int rtmult;
556  u_int wtmax;
557  u_int wtpref;
558  u_int wtmult;
559  u_int dtpref;
560  am_size3 maxfilesize;
561  am_nfstime3 time_delta;
562  u_int properties;
563};
564typedef struct am_FSINFO3resok am_FSINFO3resok;
565
566struct am_FSINFO3resfail {
567  am_post_op_attr obj_attributes;
568};
569typedef struct am_FSINFO3resfail am_FSINFO3resfail;
570
571struct am_FSINFO3res {
572  am_nfsstat3 status;
573  union {
574    am_FSINFO3resok ok;
575    am_FSINFO3resfail fail;
576  } res_u;
577};
578typedef struct am_FSINFO3res am_FSINFO3res;
579
580struct am_FSSTAT3args {
581  am_nfs_fh3 fsroot;
582};
583typedef struct am_FSSTAT3args am_FSSTAT3args;
584
585struct am_FSSTAT3resok {
586  am_post_op_attr obj_attributes;
587  am_size3 tbytes;
588  am_size3 fbytes;
589  am_size3 abytes;
590  am_size3 tfiles;
591  am_size3 ffiles;
592  am_size3 afiles;
593  u_int invarsec;
594};
595typedef struct am_FSSTAT3resok am_FSSTAT3resok;
596
597struct am_FSSTAT3resfail {
598  am_post_op_attr obj_attributes;
599};
600typedef struct am_FSSTAT3resfail am_FSSTAT3resfail;
601
602struct am_FSSTAT3res {
603  am_nfsstat3 status;
604  union {
605    am_FSSTAT3resok ok;
606    am_FSSTAT3resfail fail;
607  } res_u;
608};
609typedef struct am_FSSTAT3res am_FSSTAT3res;
610
611struct am_PATHCONF3args {
612  am_nfs_fh3 object;
613};
614typedef struct am_PATHCONF3args am_PATHCONF3args;
615
616struct am_PATHCONF3resok {
617  am_post_op_attr obj_attributes;
618  u_int linkmax;
619  u_int name_max;
620  bool_t no_trunc;
621  bool_t chown_restricted;
622  bool_t case_insensitive;
623  bool_t case_preserving;
624};
625typedef struct am_PATHCONF3resok am_PATHCONF3resok;
626
627struct am_PATHCONF3resfail {
628  am_post_op_attr obj_attributes;
629};
630typedef struct am_PATHCONF3resfail am_PATHCONF3resfail;
631
632struct am_PATHCONF3res {
633  am_nfsstat3 status;
634  union {
635    am_PATHCONF3resok ok;
636    am_PATHCONF3resfail fail;
637  } res_u;
638};
639typedef struct am_PATHCONF3res am_PATHCONF3res;
640
641typedef char *am_nfspath3;
642
643struct am_symlinkdata3 {
644  am_sattr3 symlink_attributes;
645  am_nfspath3 symlink_data;
646};
647typedef struct am_symlinkdata3 am_symlinkdata3;
648
649struct am_SYMLINK3args {
650  am_diropargs3 where;
651  am_symlinkdata3 symlink;
652};
653typedef struct am_SYMLINK3args am_SYMLINK3args;
654
655struct am_SYMLINK3resok {
656  am_post_op_fh3 obj;
657  am_post_op_attr obj_attributes;
658  am_wcc_data dir_wcc;
659};
660typedef struct am_SYMLINK3resok am_SYMLINK3resok;
661
662struct am_SYMLINK3resfail {
663  am_wcc_data dir_wcc;
664};
665typedef struct am_SYMLINK3resfail am_SYMLINK3resfail;
666
667struct am_SYMLINK3res {
668  am_nfsstat3 status;
669  union {
670    am_SYMLINK3resok ok;
671    am_SYMLINK3resfail fail;
672  } res_u;
673};
674typedef struct am_SYMLINK3res am_SYMLINK3res;
675
676struct am_READLINK3args {
677  am_nfs_fh3 symlink;
678};
679typedef struct am_READLINK3args am_READLINK3args;
680
681struct am_READLINK3resok {
682  am_post_op_attr symlink_attributes;
683  am_nfspath3 data;
684};
685typedef struct am_READLINK3resok am_READLINK3resok;
686
687struct am_READLINK3resfail {
688  am_post_op_attr symlink_attributes;
689};
690typedef struct am_READLINK3resfail am_READLINK3resfail;
691
692struct am_READLINK3res {
693  am_nfsstat3 status;
694  union {
695    am_READLINK3resok ok;
696    am_READLINK3resfail fail;
697  } res_u;
698};
699typedef struct am_READLINK3res am_READLINK3res;
700
701struct am_devicedata3 {
702  am_sattr3 dev_attributes;
703  am_specdata3 spec;
704};
705typedef struct am_devicedata3 am_devicedata3;
706
707struct am_mknoddata3 {
708  am_ftype3 type;
709  union {
710    am_devicedata3 chr_device;
711    am_devicedata3 blk_device;
712    am_sattr3 sock_attributes;
713    am_sattr3 pipe_attributes;
714  } am_mknoddata3_u;
715};
716typedef struct am_mknoddata3 am_mknoddata3;
717
718struct am_MKNOD3args {
719  am_diropargs3 where;
720  am_mknoddata3 what;
721};
722typedef struct am_MKNOD3args am_MKNOD3args;
723
724struct am_MKNOD3resok {
725  am_post_op_fh3 obj;
726  am_post_op_attr obj_attributes;
727  am_wcc_data dir_wcc;
728};
729typedef struct am_MKNOD3resok am_MKNOD3resok;
730
731struct am_MKNOD3resfail {
732  am_wcc_data dir_wcc;
733};
734typedef struct am_MKNOD3resfail am_MKNOD3resfail;
735
736struct am_MKNOD3res {
737  am_nfsstat3 status;
738  union {
739    am_MKNOD3resok ok;
740    am_MKNOD3resfail fail;
741  } res_u;
742};
743typedef struct am_MKNOD3res am_MKNOD3res;
744
745struct am_MKDIR3args {
746  am_diropargs3 where;
747  am_sattr3 attributes;
748};
749typedef struct am_MKDIR3args am_MKDIR3args;
750
751struct am_MKDIR3resok {
752  am_post_op_fh3 obj;
753  am_post_op_attr obj_attributes;
754  am_wcc_data dir_wcc;
755};
756typedef struct am_MKDIR3resok am_MKDIR3resok;
757
758struct am_MKDIR3resfail {
759  am_wcc_data dir_wcc;
760};
761typedef struct am_MKDIR3resfail am_MKDIR3resfail;
762
763struct am_MKDIR3res {
764  am_nfsstat3 status;
765  union {
766    am_MKDIR3resok ok;
767    am_MKDIR3resfail fail;
768  } res_u;
769};
770typedef struct am_MKDIR3res am_MKDIR3res;
771
772struct am_RMDIR3args {
773  am_diropargs3 object;
774};
775typedef struct am_RMDIR3args am_RMDIR3args;
776
777struct am_RMDIR3resok {
778  am_wcc_data dir_wcc;
779};
780typedef struct am_RMDIR3resok am_RMDIR3resok;
781
782struct am_RMDIR3resfail {
783  am_wcc_data dir_wcc;
784};
785typedef struct am_RMDIR3resfail am_RMDIR3resfail;
786
787struct am_RMDIR3res {
788  am_nfsstat3 status;
789  union {
790    am_RMDIR3resok ok;
791    am_RMDIR3resfail fail;
792  } res_u;
793};
794typedef struct am_RMDIR3res am_RMDIR3res;
795
796struct am_RENAME3args {
797  am_diropargs3 from;
798  am_diropargs3 to;
799};
800typedef struct am_RENAME3args am_RENAME3args;
801
802struct am_RENAME3resok {
803  am_wcc_data fromdir_wcc;
804  am_wcc_data todir_wcc;
805};
806typedef struct am_RENAME3resok am_RENAME3resok;
807
808struct am_RENAME3resfail {
809  am_wcc_data fromdir_wcc;
810  am_wcc_data todir_wcc;
811};
812typedef struct am_RENAME3resfail am_RENAME3resfail;
813
814struct am_RENAME3res {
815  am_nfsstat3 status;
816  union {
817    am_RENAME3resok ok;
818    am_RENAME3resfail fail;
819  } res_u;
820};
821typedef struct am_RENAME3res am_RENAME3res;
822
823struct am_READDIRPLUS3args {
824  am_nfs_fh3 dir;
825  am_cookie3 cookie;
826  am_cookieverf3 cookieverf;
827  am_count3 dircount;
828  am_count3 maxcount;
829};
830typedef struct am_READDIRPLUS3args am_READDIRPLUS3args;
831
832struct am_entryplus3 {
833  am_fileid3 fileid;
834  am_filename3 name;
835  am_cookie3 cookie;
836  am_post_op_attr name_attributes;
837  am_post_op_fh3 name_handle;
838  struct am_entryplus3 *nextentry;
839};
840typedef struct am_entryplus3 am_entryplus3;
841
842struct am_dirlistplus3 {
843  am_entryplus3 *entries;
844  bool_t eof;
845};
846typedef struct am_dirlistplus3 am_dirlistplus3;
847
848struct am_READDIRPLUS3resok {
849  am_post_op_attr dir_attributes;
850  am_cookieverf3 cookieverf;
851  am_dirlistplus3 reply;
852};
853typedef struct am_READDIRPLUS3resok am_READDIRPLUS3resok;
854
855struct am_READDIRPLUS3resfail {
856  am_post_op_attr dir_attributes;
857};
858typedef struct am_READDIRPLUS3resfail am_READDIRPLUS3resfail;
859
860struct am_READDIRPLUS3res {
861  am_nfsstat3 status;
862  union {
863    am_READDIRPLUS3resok ok;
864    am_READDIRPLUS3resfail fail;
865  } res_u;
866};
867typedef struct am_READDIRPLUS3res am_READDIRPLUS3res;
868
869struct am_READDIR3args {
870  am_nfs_fh3 dir;
871  am_cookie3 cookie;
872  am_cookieverf3 cookieverf;
873  am_count3 count;
874};
875typedef struct am_READDIR3args am_READDIR3args;
876
877struct am_entry3 {
878  am_fileid3 fileid;
879  am_filename3 name;
880  am_cookie3 cookie;
881  struct am_entry3 *nextentry;
882};
883typedef struct am_entry3 am_entry3;
884
885struct am_dirlist3 {
886  am_entry3 *entries;
887  bool_t eof;
888};
889typedef struct am_dirlist3 am_dirlist3;
890
891struct am_READDIR3resok {
892  am_post_op_attr dir_attributes;
893  am_cookieverf3 cookieverf;
894  am_dirlist3 reply;
895};
896typedef struct am_READDIR3resok am_READDIR3resok;
897
898struct am_READDIR3resfail {
899  am_post_op_attr dir_attributes;
900};
901typedef struct am_READDIR3resfail am_READDIR3resfail;
902
903struct am_READDIR3res {
904  am_nfsstat3 status;
905  union {
906    am_READDIR3resok ok;
907    am_READDIR3resfail fail;
908  } res_u;
909};
910typedef struct am_READDIR3res am_READDIR3res;
911
912struct am_LINK3args {
913  am_nfs_fh3 file;
914  am_diropargs3 link;
915};
916typedef struct am_LINK3args am_LINK3args;
917
918struct am_LINK3resok {
919  am_post_op_attr file_attributes;
920  am_wcc_data linkdir_wcc;
921};
922typedef struct am_LINK3resok am_LINK3resok;
923
924struct am_LINK3resfail {
925  am_post_op_attr file_attributes;
926  am_wcc_data linkdir_wcc;
927};
928typedef struct am_LINK3resfail am_LINK3resfail;
929
930struct am_LINK3res {
931  am_nfsstat3 status;
932  union {
933    am_LINK3resok ok;
934    am_LINK3resfail fail;
935  } res_u;
936};
937typedef struct am_LINK3res am_LINK3res;
938
939struct am_sattrguard3 {
940  bool_t check;
941  union {
942    am_nfstime3 obj_ctime;
943  } am_sattrguard3_u;
944};
945typedef struct am_sattrguard3 am_sattrguard3;
946
947struct am_SETATTR3args {
948  am_nfs_fh3 object;
949  am_sattr3 new_attributes;
950  am_sattrguard3 guard;
951};
952typedef struct am_SETATTR3args am_SETATTR3args;
953
954struct am_SETATTR3resok {
955  am_wcc_data obj_wcc;
956};
957typedef struct am_SETATTR3resok am_SETATTR3resok;
958
959struct am_SETATTR3resfail {
960  am_wcc_data obj_wcc;
961};
962typedef struct am_SETATTR3resfail am_SETATTR3resfail;
963
964struct am_SETATTR3res {
965  am_nfsstat3 status;
966  union {
967    am_SETATTR3resok ok;
968    am_SETATTR3resfail fail;
969  } res_u;
970};
971typedef struct am_SETATTR3res am_SETATTR3res;
972#endif /* HAVE_FS_NFS3 */
973
974/*
975 * Multi-protocol NFS file handle
976 */
977union am_nfs_handle {
978				/* placeholder for V4 file handle */
979#ifdef HAVE_FS_NFS3
980  am_nfs_fh3		v3;	/* NFS version 3 handle */
981#endif /* HAVE_FS_NFS3 */
982  am_nfs_fh		v2;	/* NFS version 2 handle */
983};
984typedef union am_nfs_handle am_nfs_handle_t;
985
986
987/*
988 * Definitions of all possible xdr functions that are otherwise
989 * not defined elsewhere.
990 */
991
992#ifndef _AM_XDR_FUNC_H
993#define _AM_XDR_FUNC_H
994
995#ifndef HAVE_XDR_ATTRSTAT
996bool_t xdr_attrstat(XDR *xdrs, nfsattrstat *objp);
997#endif /* not HAVE_XDR_ATTRSTAT */
998#ifndef HAVE_XDR_CREATEARGS
999bool_t xdr_createargs(XDR *xdrs, nfscreateargs *objp);
1000#endif /* not HAVE_XDR_CREATEARGS */
1001#ifndef HAVE_XDR_DIRLIST
1002bool_t xdr_dirlist(XDR *xdrs, nfsdirlist *objp);
1003#endif /* not HAVE_XDR_DIRLIST */
1004#ifndef HAVE_XDR_DIROPARGS
1005bool_t xdr_diropargs(XDR *xdrs, nfsdiropargs *objp);
1006#endif /* not HAVE_XDR_DIROPARGS */
1007#ifndef HAVE_XDR_DIROPOKRES
1008bool_t xdr_diropokres(XDR *xdrs, nfsdiropokres *objp);
1009#endif /* not HAVE_XDR_DIROPOKRES */
1010#ifndef HAVE_XDR_DIROPRES
1011bool_t xdr_diropres(XDR *xdrs, nfsdiropres *objp);
1012#endif /* not HAVE_XDR_DIROPRES */
1013#ifndef HAVE_XDR_DIRPATH
1014bool_t xdr_dirpath(XDR *xdrs, dirpath *objp);
1015#endif /* not HAVE_XDR_DIRPATH */
1016#ifndef HAVE_XDR_ENTRY
1017bool_t xdr_entry(XDR *xdrs, nfsentry *objp);
1018#endif /* not HAVE_XDR_ENTRY */
1019#ifndef HAVE_XDR_EXPORTNODE
1020bool_t xdr_exportnode(XDR *xdrs, exportnode *objp);
1021#endif /* not HAVE_XDR_EXPORTNODE */
1022#ifndef HAVE_XDR_EXPORTS
1023bool_t xdr_exports(XDR *xdrs, exports *objp);
1024#endif /* not HAVE_XDR_EXPORTS */
1025#ifndef HAVE_XDR_FATTR
1026bool_t xdr_fattr(XDR *xdrs, nfsfattr *objp);
1027#endif /* not HAVE_XDR_FATTR */
1028#ifndef HAVE_XDR_FHANDLE
1029bool_t xdr_fhandle(XDR *xdrs, fhandle objp);
1030#endif /* not HAVE_XDR_FHANDLE */
1031#ifndef HAVE_XDR_FHSTATUS
1032bool_t xdr_fhstatus(XDR *xdrs, fhstatus *objp);
1033#endif /* not HAVE_XDR_FHSTATUS */
1034#ifndef HAVE_XDR_FILENAME
1035bool_t xdr_filename(XDR *xdrs, filename *objp);
1036#endif /* not HAVE_XDR_FILENAME */
1037#ifndef HAVE_XDR_FTYPE
1038bool_t xdr_ftype(XDR *xdrs, nfsftype *objp);
1039#endif /* not HAVE_XDR_FTYPE */
1040#ifndef HAVE_XDR_GROUPNODE
1041bool_t xdr_groupnode(XDR *xdrs, groupnode *objp);
1042#endif /* not HAVE_XDR_GROUPNODE */
1043#ifndef HAVE_XDR_GROUPS
1044bool_t xdr_groups(XDR *xdrs, groups *objp);
1045#endif /* not HAVE_XDR_GROUPS */
1046#ifndef HAVE_XDR_LINKARGS
1047bool_t xdr_linkargs(XDR *xdrs, nfslinkargs *objp);
1048#endif /* not HAVE_XDR_LINKARGS */
1049#ifndef HAVE_XDR_MOUNTBODY
1050bool_t xdr_mountbody(XDR *xdrs, mountbody *objp);
1051#endif /* not HAVE_XDR_MOUNTBODY */
1052#ifndef HAVE_XDR_MOUNTLIST
1053bool_t xdr_mountlist(XDR *xdrs, mountlist *objp);
1054#endif /* not HAVE_XDR_MOUNTLIST */
1055#ifndef HAVE_XDR_NAME
1056bool_t xdr_name(XDR *xdrs, name *objp);
1057#endif /* not HAVE_XDR_NAME */
1058#ifndef HAVE_XDR_NFS_FH
1059bool_t xdr_nfs_fh(XDR *xdrs, am_nfs_fh *objp);
1060#endif /* not HAVE_XDR_NFS_FH */
1061#ifndef HAVE_XDR_NFSCOOKIE
1062bool_t xdr_nfscookie(XDR *xdrs, nfscookie objp);
1063#endif /* not HAVE_XDR_NFSCOOKIE */
1064#ifndef HAVE_XDR_NFSPATH
1065bool_t xdr_nfspath(XDR *xdrs, nfspath *objp);
1066#endif /* not HAVE_XDR_NFSPATH */
1067#ifndef HAVE_XDR_NFSSTAT
1068bool_t xdr_nfsstat(XDR *xdrs, nfsstat *objp);
1069#endif /* not HAVE_XDR_NFSSTAT */
1070#ifndef HAVE_XDR_NFSTIME
1071bool_t xdr_nfstime(XDR *xdrs, nfstime *objp);
1072#endif /* not HAVE_XDR_NFSTIME */
1073#ifndef HAVE_XDR_POINTER
1074bool_t xdr_pointer(register XDR *xdrs, char **objpp, u_int obj_size, XDRPROC_T_TYPE xdr_obj);
1075#endif /* not HAVE_XDR_POINTER */
1076#ifndef HAVE_XDR_READARGS
1077bool_t xdr_readargs(XDR *xdrs, nfsreadargs *objp);
1078#endif /* not HAVE_XDR_READARGS */
1079#ifndef HAVE_XDR_READDIRARGS
1080bool_t xdr_readdirargs(XDR *xdrs, nfsreaddirargs *objp);
1081#endif /* not HAVE_XDR_READDIRARGS */
1082#ifndef HAVE_XDR_READDIRRES
1083bool_t xdr_readdirres(XDR *xdrs, nfsreaddirres *objp);
1084#endif /* not HAVE_XDR_READDIRRES */
1085#ifndef HAVE_XDR_READLINKRES
1086bool_t xdr_readlinkres(XDR *xdrs, nfsreadlinkres *objp);
1087#endif /* not HAVE_XDR_READLINKRES */
1088#ifndef HAVE_XDR_READOKRES
1089bool_t xdr_readokres(XDR *xdrs, nfsreadokres *objp);
1090#endif /* not HAVE_XDR_READOKRES */
1091#ifndef HAVE_XDR_READRES
1092bool_t xdr_readres(XDR *xdrs, nfsreadres *objp);
1093#endif /* not HAVE_XDR_READRES */
1094#ifndef HAVE_XDR_RENAMEARGS
1095bool_t xdr_renameargs(XDR *xdrs, nfsrenameargs *objp);
1096#endif /* not HAVE_XDR_RENAMEARGS */
1097#ifndef HAVE_XDR_SATTR
1098bool_t xdr_sattr(XDR *xdrs, nfssattr *objp);
1099#endif /* not HAVE_XDR_SATTR */
1100#ifndef HAVE_XDR_SATTRARGS
1101bool_t xdr_sattrargs(XDR *xdrs, nfssattrargs *objp);
1102#endif /* not HAVE_XDR_SATTRARGS */
1103#ifndef HAVE_XDR_STATFSOKRES
1104bool_t xdr_statfsokres(XDR *xdrs, nfsstatfsokres *objp);
1105#endif /* not HAVE_XDR_STATFSOKRES */
1106#ifndef HAVE_XDR_STATFSRES
1107bool_t xdr_statfsres(XDR *xdrs, nfsstatfsres *objp);
1108#endif /* not HAVE_XDR_STATFSRES */
1109#ifndef HAVE_XDR_SYMLINKARGS
1110bool_t xdr_symlinkargs(XDR *xdrs, nfssymlinkargs *objp);
1111#endif /* not HAVE_XDR_SYMLINKARGS */
1112#ifndef HAVE_XDR_WRITEARGS
1113bool_t xdr_writeargs(XDR *xdrs, nfswriteargs *objp);
1114#endif /* not HAVE_XDR_WRITEARGS */
1115
1116/*
1117 * NFS3 XDR FUNCTIONS:
1118 */
1119#ifdef HAVE_FS_NFS3
1120#define AM_NFS3_NULL 0
1121void * am_nfs3_null_3(void *, CLIENT *);
1122void * am_nfs3_null_3_svc(void *, struct svc_req *);
1123#define AM_NFS3_GETATTR 1
1124am_GETATTR3res * am_nfs3_getattr_3(am_GETATTR3args *, CLIENT *);
1125am_GETATTR3res * am_nfs3_getattr_3_svc(am_GETATTR3args *, struct svc_req *);
1126#define AM_NFS3_SETATTR 2
1127am_SETATTR3res * am_nfs3_setattr_3(am_SETATTR3args *, CLIENT *);
1128am_SETATTR3res * am_nfs3_setattr_3_svc(am_SETATTR3args *, struct svc_req *);
1129#define AM_NFS3_LOOKUP 3
1130am_LOOKUP3res * am_nfs3_lookup_3(am_LOOKUP3args *, CLIENT *);
1131am_LOOKUP3res * am_nfs3_lookup_3_svc(am_LOOKUP3args *, struct svc_req *);
1132#define AM_NFS3_ACCESS 4
1133am_ACCESS3res * am_nfs3_access_3(am_ACCESS3args *, CLIENT *);
1134am_ACCESS3res * am_nfs3_access_3_svc(am_ACCESS3args *, struct svc_req *);
1135#define AM_NFS3_READLINK 5
1136am_READLINK3res * am_nfs3_readlink_3(am_READLINK3args *, CLIENT *);
1137am_READLINK3res * am_nfs3_readlink_3_svc(am_READLINK3args *, struct svc_req *);
1138#define AM_NFS3_READ 6
1139am_READ3res * am_nfs3_read_3(am_READ3args *, CLIENT *);
1140am_READ3res * am_nfs3_read_3_svc(am_READ3args *, struct svc_req *);
1141#define AM_NFS3_WRITE 7
1142am_WRITE3res * am_nfs3_write_3(am_WRITE3args *, CLIENT *);
1143am_WRITE3res * am_nfs3_write_3_svc(am_WRITE3args *, struct svc_req *);
1144#define AM_NFS3_CREATE 8
1145am_CREATE3res * am_nfs3_create_3(am_CREATE3args *, CLIENT *);
1146am_CREATE3res * am_nfs3_create_3_svc(am_CREATE3args *, struct svc_req *);
1147#define AM_NFS3_MKDIR 9
1148am_MKDIR3res * am_nfs3_mkdir_3(am_MKDIR3args *, CLIENT *);
1149am_MKDIR3res * am_nfs3_mkdir_3_svc(am_MKDIR3args *, struct svc_req *);
1150#define AM_NFS3_SYMLINK 10
1151am_SYMLINK3res * am_nfs3_symlink_3(am_SYMLINK3args *, CLIENT *);
1152am_SYMLINK3res * am_nfs3_symlink_3_svc(am_SYMLINK3args *, struct svc_req *);
1153#define AM_NFS3_MKNOD 11
1154am_MKNOD3res * am_nfs3_mknod_3(am_MKNOD3args *, CLIENT *);
1155am_MKNOD3res * am_nfs3_mknod_3_svc(am_MKNOD3args *, struct svc_req *);
1156#define AM_NFS3_REMOVE 12
1157am_REMOVE3res * am_nfs3_remove_3(am_REMOVE3args *, CLIENT *);
1158am_REMOVE3res * am_nfs3_remove_3_svc(am_REMOVE3args *, struct svc_req *);
1159#define AM_NFS3_RMDIR 13
1160am_RMDIR3res * am_nfs3_rmdir_3(am_RMDIR3args *, CLIENT *);
1161am_RMDIR3res * am_nfs3_rmdir_3_svc(am_RMDIR3args *, struct svc_req *);
1162#define AM_NFS3_RENAME 14
1163am_RENAME3res * am_nfs3_rename_3(am_RENAME3args *, CLIENT *);
1164am_RENAME3res * am_nfs3_rename_3_svc(am_RENAME3args *, struct svc_req *);
1165#define AM_NFS3_LINK 15
1166am_LINK3res * am_nfs3_link_3(am_LINK3args *, CLIENT *);
1167am_LINK3res * am_nfs3_link_3_svc(am_LINK3args *, struct svc_req *);
1168#define AM_NFS3_READDIR 16
1169am_READDIR3res * am_nfs3_readdir_3(am_READDIR3args *, CLIENT *);
1170am_READDIR3res * am_nfs3_readdir_3_svc(am_READDIR3args *, struct svc_req *);
1171#define AM_NFS3_READDIRPLUS 17
1172am_READDIRPLUS3res * am_nfs3_readdirplus_3(am_READDIRPLUS3args *, CLIENT *);
1173am_READDIRPLUS3res * am_nfs3_readdirplus_3_svc(am_READDIRPLUS3args *, struct svc_req *);
1174#define AM_NFS3_FSSTAT 18
1175am_FSSTAT3res * am_nfs3_fsstat_3(am_FSSTAT3args *, CLIENT *);
1176am_FSSTAT3res * am_nfs3_fsstat_3_svc(am_FSSTAT3args *, struct svc_req *);
1177#define AM_NFS3_FSINFO 19
1178am_FSINFO3res * am_nfs3_fsinfo_3(am_FSINFO3args *, CLIENT *);
1179am_FSINFO3res * am_nfs3_fsinfo_3_svc(am_FSINFO3args *, struct svc_req *);
1180#define AM_NFS3_PATHCONF 20
1181am_PATHCONF3res * am_nfs3_pathconf_3(am_PATHCONF3args *, CLIENT *);
1182am_PATHCONF3res * am_nfs3_pathconf_3_svc(am_PATHCONF3args *, struct svc_req *);
1183#define AM_NFS3_COMMIT 21
1184am_COMMIT3res * am_nfs3_commit_3(am_COMMIT3args *, CLIENT *);
1185am_COMMIT3res * am_nfs3_commit_3_svc(am_COMMIT3args *, struct svc_req *);
1186int nfs_program_3_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
1187
1188bool_t xdr_am_fhandle3(XDR *xdrs, am_fhandle3 *objp);
1189bool_t xdr_am_mountstat3(XDR *xdrs, am_mountstat3 *objp);
1190bool_t xdr_am_mountres3_ok(XDR *xdrs, am_mountres3_ok *objp);
1191bool_t xdr_am_mountres3(XDR *xdrs, am_mountres3 *objp);
1192bool_t xdr_am_diropargs3(XDR *xdrs, am_diropargs3 *objp);
1193bool_t xdr_am_filename3(XDR *xdrs, am_filename3 *objp);
1194bool_t xdr_am_LOOKUP3args(XDR *xdrs, am_LOOKUP3args *objp);
1195bool_t xdr_am_LOOKUP3res(XDR *xdrs, am_LOOKUP3res *objp);
1196bool_t xdr_am_LOOKUP3resfail(XDR *xdrs, am_LOOKUP3resfail *objp);
1197bool_t xdr_am_LOOKUP3resok(XDR *xdrs, am_LOOKUP3resok *objp);
1198bool_t xdr_am_nfsstat3(XDR *xdrs, am_nfsstat3 *objp);
1199bool_t xdr_am_nfs_fh3(XDR *xdrs, am_nfs_fh3 *objp);
1200bool_t xdr_am_cookieverf3 (XDR *, am_cookieverf3);
1201bool_t xdr_uint64 (XDR *, uint64*);
1202bool_t xdr_am_cookie3 (XDR *, am_cookie3*);
1203bool_t xdr_am_nfs_fh3 (XDR *, am_nfs_fh3*);
1204bool_t xdr_am_nfsstat3 (XDR *, am_nfsstat3*);
1205bool_t xdr_am_filename3 (XDR *, am_filename3*);
1206bool_t xdr_am_diropargs3 (XDR *, am_diropargs3*);
1207bool_t xdr_am_ftype3 (XDR *, am_ftype3*);
1208bool_t xdr_am_mode3 (XDR *, am_mode3*);
1209bool_t xdr_am_uid3 (XDR *, am_uid3*);
1210bool_t xdr_am_gid3 (XDR *, am_gid3*);
1211bool_t xdr_am_size3 (XDR *, am_size3*);
1212bool_t xdr_am_fileid3 (XDR *, am_fileid3*);
1213bool_t xdr_am_specdata3 (XDR *, am_specdata3*);
1214bool_t xdr_am_nfstime3 (XDR *, am_nfstime3*);
1215bool_t xdr_am_fattr3 (XDR *, am_fattr3*);
1216bool_t xdr_am_post_op_attr (XDR *, am_post_op_attr*);
1217bool_t xdr_am_stable_how (XDR *, am_stable_how*);
1218bool_t xdr_am_offset3 (XDR *, am_offset3*);
1219bool_t xdr_am_count3 (XDR *, am_count3*);
1220bool_t xdr_am_wcc_attr (XDR *, am_wcc_attr*);
1221bool_t xdr_am_pre_op_attr (XDR *, am_pre_op_attr*);
1222bool_t xdr_am_wcc_data (XDR *, am_wcc_data*);
1223bool_t xdr_am_WRITE3args (XDR *, am_WRITE3args*);
1224bool_t xdr_am_writeverf3 (XDR *, am_writeverf3);
1225bool_t xdr_am_WRITE3resok (XDR *, am_WRITE3resok*);
1226bool_t xdr_am_WRITE3resfail (XDR *, am_WRITE3resfail*);
1227bool_t xdr_am_WRITE3res (XDR *, am_WRITE3res*);
1228bool_t xdr_am_LOOKUP3args (XDR *, am_LOOKUP3args*);
1229bool_t xdr_am_LOOKUP3resok (XDR *, am_LOOKUP3resok*);
1230bool_t xdr_am_LOOKUP3resfail (XDR *, am_LOOKUP3resfail*);
1231bool_t xdr_am_LOOKUP3res (XDR *, am_LOOKUP3res*);
1232bool_t xdr_am_COMMIT3args (XDR *, am_COMMIT3args*);
1233bool_t xdr_am_COMMIT3resok (XDR *, am_COMMIT3resok*);
1234bool_t xdr_am_COMMIT3resfail (XDR *, am_COMMIT3resfail*);
1235bool_t xdr_am_COMMIT3res (XDR *, am_COMMIT3res*);
1236bool_t xdr_am_ACCESS3args (XDR *, am_ACCESS3args*);
1237bool_t xdr_am_ACCESS3resok (XDR *, am_ACCESS3resok*);
1238bool_t xdr_am_ACCESS3resfail (XDR *, am_ACCESS3resfail*);
1239bool_t xdr_am_ACCESS3res (XDR *, am_ACCESS3res*);
1240bool_t xdr_am_GETATTR3args (XDR *, am_GETATTR3args*);
1241bool_t xdr_am_GETATTR3resok (XDR *, am_GETATTR3resok*);
1242bool_t xdr_am_GETATTR3res (XDR *, am_GETATTR3res*);
1243bool_t xdr_am_time_how (XDR *, am_time_how*);
1244bool_t xdr_am_set_mode3 (XDR *, am_set_mode3*);
1245bool_t xdr_am_set_uid3 (XDR *, am_set_uid3*);
1246bool_t xdr_am_set_gid3 (XDR *, am_set_gid3*);
1247bool_t xdr_am_set_size3 (XDR *, am_set_size3*);
1248bool_t xdr_am_set_atime (XDR *, am_set_atime*);
1249bool_t xdr_am_set_mtime (XDR *, am_set_mtime*);
1250bool_t xdr_am_sattr3 (XDR *, am_sattr3*);
1251bool_t xdr_am_createmode3 (XDR *, am_createmode3*);
1252bool_t xdr_am_createverf3 (XDR *, am_createverf3);
1253bool_t xdr_am_createhow3 (XDR *, am_createhow3*);
1254bool_t xdr_am_CREATE3args (XDR *, am_CREATE3args*);
1255bool_t xdr_am_post_op_fh3 (XDR *, am_post_op_fh3*);
1256bool_t xdr_am_CREATE3resok (XDR *, am_CREATE3resok*);
1257bool_t xdr_am_CREATE3resfail (XDR *, am_CREATE3resfail*);
1258bool_t xdr_am_CREATE3res (XDR *, am_CREATE3res*);
1259bool_t xdr_am_REMOVE3args (XDR *, am_REMOVE3args*);
1260bool_t xdr_am_REMOVE3resok (XDR *, am_REMOVE3resok*);
1261bool_t xdr_am_REMOVE3resfail (XDR *, am_REMOVE3resfail*);
1262bool_t xdr_am_REMOVE3res (XDR *, am_REMOVE3res*);
1263bool_t xdr_am_READ3args (XDR *, am_READ3args*);
1264bool_t xdr_am_READ3resok (XDR *, am_READ3resok*);
1265bool_t xdr_am_READ3resfail (XDR *, am_READ3resfail*);
1266bool_t xdr_am_READ3res (XDR *, am_READ3res*);
1267bool_t xdr_am_FSINFO3args (XDR *, am_FSINFO3args*);
1268bool_t xdr_am_FSINFO3resok (XDR *, am_FSINFO3resok*);
1269bool_t xdr_am_FSINFO3resfail (XDR *, am_FSINFO3resfail*);
1270bool_t xdr_am_FSINFO3res (XDR *, am_FSINFO3res*);
1271bool_t xdr_am_FSSTAT3args (XDR *, am_FSSTAT3args*);
1272bool_t xdr_am_FSSTAT3resok (XDR *, am_FSSTAT3resok*);
1273bool_t xdr_am_FSSTAT3resfail (XDR *, am_FSSTAT3resfail*);
1274bool_t xdr_am_FSSTAT3res (XDR *, am_FSSTAT3res*);
1275bool_t xdr_am_PATHCONF3args (XDR *, am_PATHCONF3args*);
1276bool_t xdr_am_PATHCONF3resok (XDR *, am_PATHCONF3resok*);
1277bool_t xdr_am_PATHCONF3resfail (XDR *, am_PATHCONF3resfail*);
1278bool_t xdr_am_PATHCONF3res (XDR *, am_PATHCONF3res*);
1279bool_t xdr_am_nfspath3 (XDR *, am_nfspath3*);
1280bool_t xdr_am_symlinkdata3 (XDR *, am_symlinkdata3*);
1281bool_t xdr_am_SYMLINK3args (XDR *, am_SYMLINK3args*);
1282bool_t xdr_am_SYMLINK3resok (XDR *, am_SYMLINK3resok*);
1283bool_t xdr_am_SYMLINK3resfail (XDR *, am_SYMLINK3resfail*);
1284bool_t xdr_am_SYMLINK3res (XDR *, am_SYMLINK3res*);
1285bool_t xdr_am_READLINK3args (XDR *, am_READLINK3args*);
1286bool_t xdr_am_READLINK3resok (XDR *, am_READLINK3resok*);
1287bool_t xdr_am_READLINK3resfail (XDR *, am_READLINK3resfail*);
1288bool_t xdr_am_READLINK3res (XDR *, am_READLINK3res*);
1289bool_t xdr_am_devicedata3 (XDR *, am_devicedata3*);
1290bool_t xdr_am_mknoddata3 (XDR *, am_mknoddata3*);
1291bool_t xdr_am_MKNOD3args (XDR *, am_MKNOD3args*);
1292bool_t xdr_am_MKNOD3resok (XDR *, am_MKNOD3resok*);
1293bool_t xdr_am_MKNOD3resfail (XDR *, am_MKNOD3resfail*);
1294bool_t xdr_am_MKNOD3res (XDR *, am_MKNOD3res*);
1295bool_t xdr_am_MKDIR3args (XDR *, am_MKDIR3args*);
1296bool_t xdr_am_MKDIR3resok (XDR *, am_MKDIR3resok*);
1297bool_t xdr_am_MKDIR3resfail (XDR *, am_MKDIR3resfail*);
1298bool_t xdr_am_MKDIR3res (XDR *, am_MKDIR3res*);
1299bool_t xdr_am_RMDIR3args (XDR *, am_RMDIR3args*);
1300bool_t xdr_am_RMDIR3resok (XDR *, am_RMDIR3resok*);
1301bool_t xdr_am_RMDIR3resfail (XDR *, am_RMDIR3resfail*);
1302bool_t xdr_am_RMDIR3res (XDR *, am_RMDIR3res*);
1303bool_t xdr_am_RENAME3args (XDR *, am_RENAME3args*);
1304bool_t xdr_am_RENAME3resok (XDR *, am_RENAME3resok*);
1305bool_t xdr_am_RENAME3resfail (XDR *, am_RENAME3resfail*);
1306bool_t xdr_am_RENAME3res (XDR *, am_RENAME3res*);
1307bool_t xdr_am_READDIRPLUS3args (XDR *, am_READDIRPLUS3args*);
1308bool_t xdr_am_entryplus3 (XDR *, am_entryplus3*);
1309bool_t xdr_am_dirlistplus3 (XDR *, am_dirlistplus3*);
1310bool_t xdr_am_READDIRPLUS3resok (XDR *, am_READDIRPLUS3resok*);
1311bool_t xdr_am_READDIRPLUS3resfail (XDR *, am_READDIRPLUS3resfail*);
1312bool_t xdr_am_READDIRPLUS3res (XDR *, am_READDIRPLUS3res*);
1313bool_t xdr_am_READDIR3args (XDR *, am_READDIR3args*);
1314bool_t xdr_am_entry3 (XDR *, am_entry3*);
1315bool_t xdr_am_dirlist3 (XDR *, am_dirlist3*);
1316bool_t xdr_am_READDIR3resok (XDR *, am_READDIR3resok*);
1317bool_t xdr_am_READDIR3resfail (XDR *, am_READDIR3resfail*);
1318bool_t xdr_am_READDIR3res (XDR *, am_READDIR3res*);
1319bool_t xdr_am_LINK3args (XDR *, am_LINK3args*);
1320bool_t xdr_am_LINK3resok (XDR *, am_LINK3resok*);
1321bool_t xdr_am_LINK3resfail (XDR *, am_LINK3resfail*);
1322bool_t xdr_am_LINK3res (XDR *, am_LINK3res*);
1323bool_t xdr_am_sattrguard3 (XDR *, am_sattrguard3*);
1324bool_t xdr_am_SETATTR3args (XDR *, am_SETATTR3args*);
1325bool_t xdr_am_SETATTR3resok (XDR *, am_SETATTR3resok*);
1326bool_t xdr_am_SETATTR3resfail (XDR *, am_SETATTR3resfail*);
1327bool_t xdr_am_SETATTR3res (XDR *, am_SETATTR3res*);
1328#endif /* HAVE_FS_NFS3 */
1329
1330#endif /* not _AM_XDR_FUNC_H */
1331