]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - contrib/amd/include/am_xdr_func.h
MFC r308493, r308619: Update amd from am-utils 6.1.5 to 6.2.
[FreeBSD/stable/10.git] / contrib / amd / include / am_xdr_func.h
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
59 typedef char am_cookieverf3[AM_NFS3_COOKIEVERFSIZE];
60
61 typedef uint64 am_cookie3;
62
63 /* NFSv3 handle */
64 struct am_nfs_fh3 {
65   u_int am_fh3_length;
66   char am_fh3_data[AM_FHSIZE3];
67 };
68 typedef struct am_nfs_fh3 am_nfs_fh3;
69
70 #define AM_NFSPROC3_LOOKUP ((u_long) 3)
71 enum 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 };
102 typedef enum am_nfsstat3 am_nfsstat3;
103
104 typedef struct {
105   u_int fhandle3_len;
106   char *fhandle3_val;
107 } am_fhandle3;
108
109 enum 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 };
121 typedef enum am_mountstat3 am_mountstat3;
122
123 struct am_mountres3_ok {
124        am_fhandle3 fhandle;
125        struct {
126                u_int auth_flavors_len;
127                int *auth_flavors_val;
128        } auth_flavors;
129 };
130 typedef struct am_mountres3_ok am_mountres3_ok;
131
132 struct am_mountres3 {
133        am_mountstat3 fhs_status;
134        union {
135                am_mountres3_ok mountinfo;
136        } mountres3_u;
137 };
138 typedef struct am_mountres3 am_mountres3;
139
140 typedef char *am_filename3;
141
142 struct am_diropargs3 {
143         am_nfs_fh3 dir;
144         am_filename3 name;
145 };
146 typedef struct am_diropargs3 am_diropargs3;
147
148 enum 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 };
157 typedef enum am_ftype3 am_ftype3;
158
159 typedef u_int am_mode3;
160
161 typedef u_int am_uid3;
162
163 typedef u_int am_gid3;
164
165 typedef uint64 am_size3;
166
167 typedef uint64 am_fileid3;
168
169 struct am_specdata3 {
170   u_int specdata1;
171   u_int specdata2;
172 };
173 typedef struct am_specdata3 am_specdata3;
174
175 struct am_nfstime3 {
176   u_int seconds;
177   u_int nseconds;
178 };
179 typedef struct am_nfstime3 am_nfstime3;
180
181 struct 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 };
196 typedef struct am_fattr3 am_fattr3;
197
198 struct am_post_op_attr {
199   bool_t attributes_follow;
200   union {
201     am_fattr3 attributes;
202   } am_post_op_attr_u;
203 };
204 typedef struct am_post_op_attr am_post_op_attr;
205
206 enum am_stable_how {
207   AM_UNSTABLE = 0,
208   AM_DATA_SYNC = 1,
209   AM_FILE_SYNC = 2,
210 };
211 typedef enum am_stable_how am_stable_how;
212
213 typedef uint64 am_offset3;
214
215 typedef u_int am_count3;
216
217 struct am_wcc_attr {
218   am_size3 size;
219   am_nfstime3 mtime;
220   am_nfstime3 ctime;
221 };
222 typedef struct am_wcc_attr am_wcc_attr;
223
224 struct am_pre_op_attr {
225   bool_t attributes_follow;
226   union {
227     am_wcc_attr attributes;
228   } am_pre_op_attr_u;
229 };
230 typedef struct am_pre_op_attr am_pre_op_attr;
231
232 struct am_wcc_data {
233   am_pre_op_attr before;
234   am_post_op_attr after;
235 };
236 typedef struct am_wcc_data am_wcc_data;
237
238 struct 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 };
248 typedef struct am_WRITE3args am_WRITE3args;
249
250 typedef char am_writeverf3[AM_NFS3_WRITEVERFSIZE];
251
252 struct am_WRITE3resok {
253   am_wcc_data file_wcc;
254   am_count3 count;
255   am_stable_how committed;
256   am_writeverf3 verf;
257 };
258 typedef struct am_WRITE3resok am_WRITE3resok;
259
260 struct am_WRITE3resfail {
261   am_wcc_data file_wcc;
262 };
263 typedef struct am_WRITE3resfail am_WRITE3resfail;
264
265 struct am_WRITE3res {
266   am_nfsstat3 status;
267   union {
268     am_WRITE3resok ok;
269     am_WRITE3resfail fail;
270   } res_u;
271 };
272 typedef struct am_WRITE3res am_WRITE3res;
273
274 struct am_LOOKUP3args {
275   am_diropargs3 what;
276 };
277 typedef struct am_LOOKUP3args am_LOOKUP3args;
278
279 struct am_LOOKUP3resok {
280   am_nfs_fh3 object;
281   am_post_op_attr obj_attributes;
282   am_post_op_attr dir_attributes;
283 };
284 typedef struct am_LOOKUP3resok am_LOOKUP3resok;
285
286 struct am_LOOKUP3resfail {
287   am_post_op_attr dir_attributes;
288 };
289 typedef struct am_LOOKUP3resfail am_LOOKUP3resfail;
290
291 struct am_LOOKUP3res {
292   am_nfsstat3 status;
293   union {
294     am_LOOKUP3resok ok;
295     am_LOOKUP3resfail fail;
296   } res_u;
297 };
298 typedef struct am_LOOKUP3res am_LOOKUP3res;
299
300 struct am_COMMIT3args {
301   am_nfs_fh3 file;
302   am_offset3 offset;
303   am_count3 count;
304 };
305 typedef struct am_COMMIT3args am_COMMIT3args;
306
307 struct am_COMMIT3resok {
308   am_wcc_data file_wcc;
309   am_writeverf3 verf;
310 };
311 typedef struct am_COMMIT3resok am_COMMIT3resok;
312
313 struct am_COMMIT3resfail {
314   am_wcc_data file_wcc;
315 };
316 typedef struct am_COMMIT3resfail am_COMMIT3resfail;
317
318 struct am_COMMIT3res {
319   am_nfsstat3 status;
320   union {
321     am_COMMIT3resok ok;
322     am_COMMIT3resfail fail;
323   } res_u;
324 };
325 typedef struct am_COMMIT3res am_COMMIT3res;
326
327 struct am_ACCESS3args {
328   am_nfs_fh3 object;
329   u_int access;
330 };
331 typedef struct am_ACCESS3args am_ACCESS3args;
332
333 struct am_ACCESS3resok {
334   am_post_op_attr obj_attributes;
335   u_int access;
336 };
337 typedef struct am_ACCESS3resok am_ACCESS3resok;
338
339 struct am_ACCESS3resfail {
340   am_post_op_attr obj_attributes;
341 };
342 typedef struct am_ACCESS3resfail am_ACCESS3resfail;
343
344 struct am_ACCESS3res {
345   am_nfsstat3 status;
346   union {
347     am_ACCESS3resok ok;
348     am_ACCESS3resfail fail;
349   } res_u;
350 };
351 typedef struct am_ACCESS3res am_ACCESS3res;
352
353 struct am_GETATTR3args {
354   am_nfs_fh3 object;
355 };
356 typedef struct am_GETATTR3args am_GETATTR3args;
357
358 struct am_GETATTR3resok {
359   am_fattr3 obj_attributes;
360 };
361 typedef struct am_GETATTR3resok am_GETATTR3resok;
362
363 struct am_GETATTR3res {
364   am_nfsstat3 status;
365   union {
366     am_GETATTR3resok ok;
367   } res_u;
368 };
369 typedef struct am_GETATTR3res am_GETATTR3res;
370
371 enum am_time_how {
372   AM_DONT_CHANGE = 0,
373   AM_SET_TO_SERVER_TIME = 1,
374   AM_SET_TO_CLIENT_TIME = 2,
375 };
376 typedef enum am_time_how am_time_how;
377
378 struct am_set_mode3 {
379   bool_t set_it;
380   union {
381     am_mode3 mode;
382   } am_set_mode3_u;
383 };
384 typedef struct am_set_mode3 am_set_mode3;
385
386 struct am_set_uid3 {
387   bool_t set_it;
388   union {
389     am_uid3 uid;
390   } am_set_uid3_u;
391 };
392 typedef struct am_set_uid3 am_set_uid3;
393
394 struct am_set_gid3 {
395   bool_t set_it;
396   union {
397     am_gid3 gid;
398   } am_set_gid3_u;
399 };
400 typedef struct am_set_gid3 am_set_gid3;
401
402 struct am_set_size3 {
403   bool_t set_it;
404   union {
405     am_size3 size;
406   } am_set_size3_u;
407 };
408 typedef struct am_set_size3 am_set_size3;
409
410 struct am_set_atime {
411   am_time_how set_it;
412   union {
413     am_nfstime3 atime;
414   } am_set_atime_u;
415 };
416 typedef struct am_set_atime am_set_atime;
417
418 struct am_set_mtime {
419   am_time_how set_it;
420   union {
421     am_nfstime3 mtime;
422   } am_set_mtime_u;
423 };
424 typedef struct am_set_mtime am_set_mtime;
425
426 struct 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 };
434 typedef struct am_sattr3 am_sattr3;
435
436 enum am_createmode3 {
437   AM_UNCHECKED = 0,
438   AM_GUARDED = 1,
439   AM_EXCLUSIVE = 2,
440 };
441 typedef enum am_createmode3 am_createmode3;
442
443 typedef char am_createverf3[AM_NFS3_CREATEVERFSIZE];
444
445 struct 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 };
453 typedef struct am_createhow3 am_createhow3;
454
455 struct am_CREATE3args {
456   am_diropargs3 where;
457   am_createhow3 how;
458 };
459 typedef struct am_CREATE3args am_CREATE3args;
460
461 struct am_post_op_fh3 {
462   bool_t handle_follows;
463   union {
464     am_nfs_fh3 handle;
465   } am_post_op_fh3_u;
466 };
467 typedef struct am_post_op_fh3 am_post_op_fh3;
468
469 struct am_CREATE3resok {
470   am_post_op_fh3 obj;
471   am_post_op_attr obj_attributes;
472   am_wcc_data dir_wcc;
473 };
474 typedef struct am_CREATE3resok am_CREATE3resok;
475
476 struct am_CREATE3resfail {
477   am_wcc_data dir_wcc;
478 };
479 typedef struct am_CREATE3resfail am_CREATE3resfail;
480
481 struct am_CREATE3res {
482   am_nfsstat3 status;
483   union {
484     am_CREATE3resok ok;
485     am_CREATE3resfail fail;
486   } res_u;
487 };
488 typedef struct am_CREATE3res am_CREATE3res;
489
490 struct am_REMOVE3args {
491   am_diropargs3 object;
492 };
493 typedef struct am_REMOVE3args am_REMOVE3args;
494
495 struct am_REMOVE3resok {
496   am_wcc_data dir_wcc;
497 };
498 typedef struct am_REMOVE3resok am_REMOVE3resok;
499
500 struct am_REMOVE3resfail {
501   am_wcc_data dir_wcc;
502 };
503 typedef struct am_REMOVE3resfail am_REMOVE3resfail;
504
505 struct am_REMOVE3res {
506   am_nfsstat3 status;
507   union {
508     am_REMOVE3resok ok;
509     am_REMOVE3resfail fail;
510   } res_u;
511 };
512 typedef struct am_REMOVE3res am_REMOVE3res;
513
514 struct am_READ3args {
515   am_nfs_fh3 file;
516   am_offset3 offset;
517   am_count3 count;
518 };
519 typedef struct am_READ3args am_READ3args;
520
521 struct 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 };
530 typedef struct am_READ3resok am_READ3resok;
531
532 struct am_READ3resfail {
533   am_post_op_attr file_attributes;
534 };
535 typedef struct am_READ3resfail am_READ3resfail;
536
537 struct am_READ3res {
538   am_nfsstat3 status;
539   union {
540     am_READ3resok ok;
541     am_READ3resfail fail;
542   } res_u;
543 };
544 typedef struct am_READ3res am_READ3res;
545
546 struct am_FSINFO3args {
547   am_nfs_fh3 fsroot;
548 };
549 typedef struct am_FSINFO3args am_FSINFO3args;
550
551 struct 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 };
564 typedef struct am_FSINFO3resok am_FSINFO3resok;
565
566 struct am_FSINFO3resfail {
567   am_post_op_attr obj_attributes;
568 };
569 typedef struct am_FSINFO3resfail am_FSINFO3resfail;
570
571 struct am_FSINFO3res {
572   am_nfsstat3 status;
573   union {
574     am_FSINFO3resok ok;
575     am_FSINFO3resfail fail;
576   } res_u;
577 };
578 typedef struct am_FSINFO3res am_FSINFO3res;
579
580 struct am_FSSTAT3args {
581   am_nfs_fh3 fsroot;
582 };
583 typedef struct am_FSSTAT3args am_FSSTAT3args;
584
585 struct 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 };
595 typedef struct am_FSSTAT3resok am_FSSTAT3resok;
596
597 struct am_FSSTAT3resfail {
598   am_post_op_attr obj_attributes;
599 };
600 typedef struct am_FSSTAT3resfail am_FSSTAT3resfail;
601
602 struct am_FSSTAT3res {
603   am_nfsstat3 status;
604   union {
605     am_FSSTAT3resok ok;
606     am_FSSTAT3resfail fail;
607   } res_u;
608 };
609 typedef struct am_FSSTAT3res am_FSSTAT3res;
610
611 struct am_PATHCONF3args {
612   am_nfs_fh3 object;
613 };
614 typedef struct am_PATHCONF3args am_PATHCONF3args;
615
616 struct 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 };
625 typedef struct am_PATHCONF3resok am_PATHCONF3resok;
626
627 struct am_PATHCONF3resfail {
628   am_post_op_attr obj_attributes;
629 };
630 typedef struct am_PATHCONF3resfail am_PATHCONF3resfail;
631
632 struct am_PATHCONF3res {
633   am_nfsstat3 status;
634   union {
635     am_PATHCONF3resok ok;
636     am_PATHCONF3resfail fail;
637   } res_u;
638 };
639 typedef struct am_PATHCONF3res am_PATHCONF3res;
640
641 typedef char *am_nfspath3;
642
643 struct am_symlinkdata3 {
644   am_sattr3 symlink_attributes;
645   am_nfspath3 symlink_data;
646 };
647 typedef struct am_symlinkdata3 am_symlinkdata3;
648
649 struct am_SYMLINK3args {
650   am_diropargs3 where;
651   am_symlinkdata3 symlink;
652 };
653 typedef struct am_SYMLINK3args am_SYMLINK3args;
654
655 struct am_SYMLINK3resok {
656   am_post_op_fh3 obj;
657   am_post_op_attr obj_attributes;
658   am_wcc_data dir_wcc;
659 };
660 typedef struct am_SYMLINK3resok am_SYMLINK3resok;
661
662 struct am_SYMLINK3resfail {
663   am_wcc_data dir_wcc;
664 };
665 typedef struct am_SYMLINK3resfail am_SYMLINK3resfail;
666
667 struct am_SYMLINK3res {
668   am_nfsstat3 status;
669   union {
670     am_SYMLINK3resok ok;
671     am_SYMLINK3resfail fail;
672   } res_u;
673 };
674 typedef struct am_SYMLINK3res am_SYMLINK3res;
675
676 struct am_READLINK3args {
677   am_nfs_fh3 symlink;
678 };
679 typedef struct am_READLINK3args am_READLINK3args;
680
681 struct am_READLINK3resok {
682   am_post_op_attr symlink_attributes;
683   am_nfspath3 data;
684 };
685 typedef struct am_READLINK3resok am_READLINK3resok;
686
687 struct am_READLINK3resfail {
688   am_post_op_attr symlink_attributes;
689 };
690 typedef struct am_READLINK3resfail am_READLINK3resfail;
691
692 struct am_READLINK3res {
693   am_nfsstat3 status;
694   union {
695     am_READLINK3resok ok;
696     am_READLINK3resfail fail;
697   } res_u;
698 };
699 typedef struct am_READLINK3res am_READLINK3res;
700
701 struct am_devicedata3 {
702   am_sattr3 dev_attributes;
703   am_specdata3 spec;
704 };
705 typedef struct am_devicedata3 am_devicedata3;
706
707 struct 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 };
716 typedef struct am_mknoddata3 am_mknoddata3;
717
718 struct am_MKNOD3args {
719   am_diropargs3 where;
720   am_mknoddata3 what;
721 };
722 typedef struct am_MKNOD3args am_MKNOD3args;
723
724 struct am_MKNOD3resok {
725   am_post_op_fh3 obj;
726   am_post_op_attr obj_attributes;
727   am_wcc_data dir_wcc;
728 };
729 typedef struct am_MKNOD3resok am_MKNOD3resok;
730
731 struct am_MKNOD3resfail {
732   am_wcc_data dir_wcc;
733 };
734 typedef struct am_MKNOD3resfail am_MKNOD3resfail;
735
736 struct am_MKNOD3res {
737   am_nfsstat3 status;
738   union {
739     am_MKNOD3resok ok;
740     am_MKNOD3resfail fail;
741   } res_u;
742 };
743 typedef struct am_MKNOD3res am_MKNOD3res;
744
745 struct am_MKDIR3args {
746   am_diropargs3 where;
747   am_sattr3 attributes;
748 };
749 typedef struct am_MKDIR3args am_MKDIR3args;
750
751 struct am_MKDIR3resok {
752   am_post_op_fh3 obj;
753   am_post_op_attr obj_attributes;
754   am_wcc_data dir_wcc;
755 };
756 typedef struct am_MKDIR3resok am_MKDIR3resok;
757
758 struct am_MKDIR3resfail {
759   am_wcc_data dir_wcc;
760 };
761 typedef struct am_MKDIR3resfail am_MKDIR3resfail;
762
763 struct am_MKDIR3res {
764   am_nfsstat3 status;
765   union {
766     am_MKDIR3resok ok;
767     am_MKDIR3resfail fail;
768   } res_u;
769 };
770 typedef struct am_MKDIR3res am_MKDIR3res;
771
772 struct am_RMDIR3args {
773   am_diropargs3 object;
774 };
775 typedef struct am_RMDIR3args am_RMDIR3args;
776
777 struct am_RMDIR3resok {
778   am_wcc_data dir_wcc;
779 };
780 typedef struct am_RMDIR3resok am_RMDIR3resok;
781
782 struct am_RMDIR3resfail {
783   am_wcc_data dir_wcc;
784 };
785 typedef struct am_RMDIR3resfail am_RMDIR3resfail;
786
787 struct am_RMDIR3res {
788   am_nfsstat3 status;
789   union {
790     am_RMDIR3resok ok;
791     am_RMDIR3resfail fail;
792   } res_u;
793 };
794 typedef struct am_RMDIR3res am_RMDIR3res;
795
796 struct am_RENAME3args {
797   am_diropargs3 from;
798   am_diropargs3 to;
799 };
800 typedef struct am_RENAME3args am_RENAME3args;
801
802 struct am_RENAME3resok {
803   am_wcc_data fromdir_wcc;
804   am_wcc_data todir_wcc;
805 };
806 typedef struct am_RENAME3resok am_RENAME3resok;
807
808 struct am_RENAME3resfail {
809   am_wcc_data fromdir_wcc;
810   am_wcc_data todir_wcc;
811 };
812 typedef struct am_RENAME3resfail am_RENAME3resfail;
813
814 struct am_RENAME3res {
815   am_nfsstat3 status;
816   union {
817     am_RENAME3resok ok;
818     am_RENAME3resfail fail;
819   } res_u;
820 };
821 typedef struct am_RENAME3res am_RENAME3res;
822
823 struct am_READDIRPLUS3args {
824   am_nfs_fh3 dir;
825   am_cookie3 cookie;
826   am_cookieverf3 cookieverf;
827   am_count3 dircount;
828   am_count3 maxcount;
829 };
830 typedef struct am_READDIRPLUS3args am_READDIRPLUS3args;
831
832 struct 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 };
840 typedef struct am_entryplus3 am_entryplus3;
841
842 struct am_dirlistplus3 {
843   am_entryplus3 *entries;
844   bool_t eof;
845 };
846 typedef struct am_dirlistplus3 am_dirlistplus3;
847
848 struct am_READDIRPLUS3resok {
849   am_post_op_attr dir_attributes;
850   am_cookieverf3 cookieverf;
851   am_dirlistplus3 reply;
852 };
853 typedef struct am_READDIRPLUS3resok am_READDIRPLUS3resok;
854
855 struct am_READDIRPLUS3resfail {
856   am_post_op_attr dir_attributes;
857 };
858 typedef struct am_READDIRPLUS3resfail am_READDIRPLUS3resfail;
859
860 struct am_READDIRPLUS3res {
861   am_nfsstat3 status;
862   union {
863     am_READDIRPLUS3resok ok;
864     am_READDIRPLUS3resfail fail;
865   } res_u;
866 };
867 typedef struct am_READDIRPLUS3res am_READDIRPLUS3res;
868
869 struct am_READDIR3args {
870   am_nfs_fh3 dir;
871   am_cookie3 cookie;
872   am_cookieverf3 cookieverf;
873   am_count3 count;
874 };
875 typedef struct am_READDIR3args am_READDIR3args;
876
877 struct am_entry3 {
878   am_fileid3 fileid;
879   am_filename3 name;
880   am_cookie3 cookie;
881   struct am_entry3 *nextentry;
882 };
883 typedef struct am_entry3 am_entry3;
884
885 struct am_dirlist3 {
886   am_entry3 *entries;
887   bool_t eof;
888 };
889 typedef struct am_dirlist3 am_dirlist3;
890
891 struct am_READDIR3resok {
892   am_post_op_attr dir_attributes;
893   am_cookieverf3 cookieverf;
894   am_dirlist3 reply;
895 };
896 typedef struct am_READDIR3resok am_READDIR3resok;
897
898 struct am_READDIR3resfail {
899   am_post_op_attr dir_attributes;
900 };
901 typedef struct am_READDIR3resfail am_READDIR3resfail;
902
903 struct am_READDIR3res {
904   am_nfsstat3 status;
905   union {
906     am_READDIR3resok ok;
907     am_READDIR3resfail fail;
908   } res_u;
909 };
910 typedef struct am_READDIR3res am_READDIR3res;
911
912 struct am_LINK3args {
913   am_nfs_fh3 file;
914   am_diropargs3 link;
915 };
916 typedef struct am_LINK3args am_LINK3args;
917
918 struct am_LINK3resok {
919   am_post_op_attr file_attributes;
920   am_wcc_data linkdir_wcc;
921 };
922 typedef struct am_LINK3resok am_LINK3resok;
923
924 struct am_LINK3resfail {
925   am_post_op_attr file_attributes;
926   am_wcc_data linkdir_wcc;
927 };
928 typedef struct am_LINK3resfail am_LINK3resfail;
929
930 struct am_LINK3res {
931   am_nfsstat3 status;
932   union {
933     am_LINK3resok ok;
934     am_LINK3resfail fail;
935   } res_u;
936 };
937 typedef struct am_LINK3res am_LINK3res;
938
939 struct am_sattrguard3 {
940   bool_t check;
941   union {
942     am_nfstime3 obj_ctime;
943   } am_sattrguard3_u;
944 };
945 typedef struct am_sattrguard3 am_sattrguard3;
946
947 struct am_SETATTR3args {
948   am_nfs_fh3 object;
949   am_sattr3 new_attributes;
950   am_sattrguard3 guard;
951 };
952 typedef struct am_SETATTR3args am_SETATTR3args;
953
954 struct am_SETATTR3resok {
955   am_wcc_data obj_wcc;
956 };
957 typedef struct am_SETATTR3resok am_SETATTR3resok;
958
959 struct am_SETATTR3resfail {
960   am_wcc_data obj_wcc;
961 };
962 typedef struct am_SETATTR3resfail am_SETATTR3resfail;
963
964 struct am_SETATTR3res {
965   am_nfsstat3 status;
966   union {
967     am_SETATTR3resok ok;
968     am_SETATTR3resfail fail;
969   } res_u;
970 };
971 typedef struct am_SETATTR3res am_SETATTR3res;
972 #endif /* HAVE_FS_NFS3 */
973
974 /*
975  * Multi-protocol NFS file handle
976  */
977 union 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 };
984 typedef 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
996 bool_t xdr_attrstat(XDR *xdrs, nfsattrstat *objp);
997 #endif /* not HAVE_XDR_ATTRSTAT */
998 #ifndef HAVE_XDR_CREATEARGS
999 bool_t xdr_createargs(XDR *xdrs, nfscreateargs *objp);
1000 #endif /* not HAVE_XDR_CREATEARGS */
1001 #ifndef HAVE_XDR_DIRLIST
1002 bool_t xdr_dirlist(XDR *xdrs, nfsdirlist *objp);
1003 #endif /* not HAVE_XDR_DIRLIST */
1004 #ifndef HAVE_XDR_DIROPARGS
1005 bool_t xdr_diropargs(XDR *xdrs, nfsdiropargs *objp);
1006 #endif /* not HAVE_XDR_DIROPARGS */
1007 #ifndef HAVE_XDR_DIROPOKRES
1008 bool_t xdr_diropokres(XDR *xdrs, nfsdiropokres *objp);
1009 #endif /* not HAVE_XDR_DIROPOKRES */
1010 #ifndef HAVE_XDR_DIROPRES
1011 bool_t xdr_diropres(XDR *xdrs, nfsdiropres *objp);
1012 #endif /* not HAVE_XDR_DIROPRES */
1013 #ifndef HAVE_XDR_DIRPATH
1014 bool_t xdr_dirpath(XDR *xdrs, dirpath *objp);
1015 #endif /* not HAVE_XDR_DIRPATH */
1016 #ifndef HAVE_XDR_ENTRY
1017 bool_t xdr_entry(XDR *xdrs, nfsentry *objp);
1018 #endif /* not HAVE_XDR_ENTRY */
1019 #ifndef HAVE_XDR_EXPORTNODE
1020 bool_t xdr_exportnode(XDR *xdrs, exportnode *objp);
1021 #endif /* not HAVE_XDR_EXPORTNODE */
1022 #ifndef HAVE_XDR_EXPORTS
1023 bool_t xdr_exports(XDR *xdrs, exports *objp);
1024 #endif /* not HAVE_XDR_EXPORTS */
1025 #ifndef HAVE_XDR_FATTR
1026 bool_t xdr_fattr(XDR *xdrs, nfsfattr *objp);
1027 #endif /* not HAVE_XDR_FATTR */
1028 #ifndef HAVE_XDR_FHANDLE
1029 bool_t xdr_fhandle(XDR *xdrs, fhandle objp);
1030 #endif /* not HAVE_XDR_FHANDLE */
1031 #ifndef HAVE_XDR_FHSTATUS
1032 bool_t xdr_fhstatus(XDR *xdrs, fhstatus *objp);
1033 #endif /* not HAVE_XDR_FHSTATUS */
1034 #ifndef HAVE_XDR_FILENAME
1035 bool_t xdr_filename(XDR *xdrs, filename *objp);
1036 #endif /* not HAVE_XDR_FILENAME */
1037 #ifndef HAVE_XDR_FTYPE
1038 bool_t xdr_ftype(XDR *xdrs, nfsftype *objp);
1039 #endif /* not HAVE_XDR_FTYPE */
1040 #ifndef HAVE_XDR_GROUPNODE
1041 bool_t xdr_groupnode(XDR *xdrs, groupnode *objp);
1042 #endif /* not HAVE_XDR_GROUPNODE */
1043 #ifndef HAVE_XDR_GROUPS
1044 bool_t xdr_groups(XDR *xdrs, groups *objp);
1045 #endif /* not HAVE_XDR_GROUPS */
1046 #ifndef HAVE_XDR_LINKARGS
1047 bool_t xdr_linkargs(XDR *xdrs, nfslinkargs *objp);
1048 #endif /* not HAVE_XDR_LINKARGS */
1049 #ifndef HAVE_XDR_MOUNTBODY
1050 bool_t xdr_mountbody(XDR *xdrs, mountbody *objp);
1051 #endif /* not HAVE_XDR_MOUNTBODY */
1052 #ifndef HAVE_XDR_MOUNTLIST
1053 bool_t xdr_mountlist(XDR *xdrs, mountlist *objp);
1054 #endif /* not HAVE_XDR_MOUNTLIST */
1055 #ifndef HAVE_XDR_NAME
1056 bool_t xdr_name(XDR *xdrs, name *objp);
1057 #endif /* not HAVE_XDR_NAME */
1058 #ifndef HAVE_XDR_NFS_FH
1059 bool_t xdr_nfs_fh(XDR *xdrs, am_nfs_fh *objp);
1060 #endif /* not HAVE_XDR_NFS_FH */
1061 #ifndef HAVE_XDR_NFSCOOKIE
1062 bool_t xdr_nfscookie(XDR *xdrs, nfscookie objp);
1063 #endif /* not HAVE_XDR_NFSCOOKIE */
1064 #ifndef HAVE_XDR_NFSPATH
1065 bool_t xdr_nfspath(XDR *xdrs, nfspath *objp);
1066 #endif /* not HAVE_XDR_NFSPATH */
1067 #ifndef HAVE_XDR_NFSSTAT
1068 bool_t xdr_nfsstat(XDR *xdrs, nfsstat *objp);
1069 #endif /* not HAVE_XDR_NFSSTAT */
1070 #ifndef HAVE_XDR_NFSTIME
1071 bool_t xdr_nfstime(XDR *xdrs, nfstime *objp);
1072 #endif /* not HAVE_XDR_NFSTIME */
1073 #ifndef HAVE_XDR_POINTER
1074 bool_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
1077 bool_t xdr_readargs(XDR *xdrs, nfsreadargs *objp);
1078 #endif /* not HAVE_XDR_READARGS */
1079 #ifndef HAVE_XDR_READDIRARGS
1080 bool_t xdr_readdirargs(XDR *xdrs, nfsreaddirargs *objp);
1081 #endif /* not HAVE_XDR_READDIRARGS */
1082 #ifndef HAVE_XDR_READDIRRES
1083 bool_t xdr_readdirres(XDR *xdrs, nfsreaddirres *objp);
1084 #endif /* not HAVE_XDR_READDIRRES */
1085 #ifndef HAVE_XDR_READLINKRES
1086 bool_t xdr_readlinkres(XDR *xdrs, nfsreadlinkres *objp);
1087 #endif /* not HAVE_XDR_READLINKRES */
1088 #ifndef HAVE_XDR_READOKRES
1089 bool_t xdr_readokres(XDR *xdrs, nfsreadokres *objp);
1090 #endif /* not HAVE_XDR_READOKRES */
1091 #ifndef HAVE_XDR_READRES
1092 bool_t xdr_readres(XDR *xdrs, nfsreadres *objp);
1093 #endif /* not HAVE_XDR_READRES */
1094 #ifndef HAVE_XDR_RENAMEARGS
1095 bool_t xdr_renameargs(XDR *xdrs, nfsrenameargs *objp);
1096 #endif /* not HAVE_XDR_RENAMEARGS */
1097 #ifndef HAVE_XDR_SATTR
1098 bool_t xdr_sattr(XDR *xdrs, nfssattr *objp);
1099 #endif /* not HAVE_XDR_SATTR */
1100 #ifndef HAVE_XDR_SATTRARGS
1101 bool_t xdr_sattrargs(XDR *xdrs, nfssattrargs *objp);
1102 #endif /* not HAVE_XDR_SATTRARGS */
1103 #ifndef HAVE_XDR_STATFSOKRES
1104 bool_t xdr_statfsokres(XDR *xdrs, nfsstatfsokres *objp);
1105 #endif /* not HAVE_XDR_STATFSOKRES */
1106 #ifndef HAVE_XDR_STATFSRES
1107 bool_t xdr_statfsres(XDR *xdrs, nfsstatfsres *objp);
1108 #endif /* not HAVE_XDR_STATFSRES */
1109 #ifndef HAVE_XDR_SYMLINKARGS
1110 bool_t xdr_symlinkargs(XDR *xdrs, nfssymlinkargs *objp);
1111 #endif /* not HAVE_XDR_SYMLINKARGS */
1112 #ifndef HAVE_XDR_WRITEARGS
1113 bool_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
1121 void * am_nfs3_null_3(void *, CLIENT *);
1122 void * am_nfs3_null_3_svc(void *, struct svc_req *);
1123 #define AM_NFS3_GETATTR 1
1124 am_GETATTR3res * am_nfs3_getattr_3(am_GETATTR3args *, CLIENT *);
1125 am_GETATTR3res * am_nfs3_getattr_3_svc(am_GETATTR3args *, struct svc_req *);
1126 #define AM_NFS3_SETATTR 2
1127 am_SETATTR3res * am_nfs3_setattr_3(am_SETATTR3args *, CLIENT *);
1128 am_SETATTR3res * am_nfs3_setattr_3_svc(am_SETATTR3args *, struct svc_req *);
1129 #define AM_NFS3_LOOKUP 3
1130 am_LOOKUP3res * am_nfs3_lookup_3(am_LOOKUP3args *, CLIENT *);
1131 am_LOOKUP3res * am_nfs3_lookup_3_svc(am_LOOKUP3args *, struct svc_req *);
1132 #define AM_NFS3_ACCESS 4
1133 am_ACCESS3res * am_nfs3_access_3(am_ACCESS3args *, CLIENT *);
1134 am_ACCESS3res * am_nfs3_access_3_svc(am_ACCESS3args *, struct svc_req *);
1135 #define AM_NFS3_READLINK 5
1136 am_READLINK3res * am_nfs3_readlink_3(am_READLINK3args *, CLIENT *);
1137 am_READLINK3res * am_nfs3_readlink_3_svc(am_READLINK3args *, struct svc_req *);
1138 #define AM_NFS3_READ 6
1139 am_READ3res * am_nfs3_read_3(am_READ3args *, CLIENT *);
1140 am_READ3res * am_nfs3_read_3_svc(am_READ3args *, struct svc_req *);
1141 #define AM_NFS3_WRITE 7
1142 am_WRITE3res * am_nfs3_write_3(am_WRITE3args *, CLIENT *);
1143 am_WRITE3res * am_nfs3_write_3_svc(am_WRITE3args *, struct svc_req *);
1144 #define AM_NFS3_CREATE 8
1145 am_CREATE3res * am_nfs3_create_3(am_CREATE3args *, CLIENT *);
1146 am_CREATE3res * am_nfs3_create_3_svc(am_CREATE3args *, struct svc_req *);
1147 #define AM_NFS3_MKDIR 9
1148 am_MKDIR3res * am_nfs3_mkdir_3(am_MKDIR3args *, CLIENT *);
1149 am_MKDIR3res * am_nfs3_mkdir_3_svc(am_MKDIR3args *, struct svc_req *);
1150 #define AM_NFS3_SYMLINK 10
1151 am_SYMLINK3res * am_nfs3_symlink_3(am_SYMLINK3args *, CLIENT *);
1152 am_SYMLINK3res * am_nfs3_symlink_3_svc(am_SYMLINK3args *, struct svc_req *);
1153 #define AM_NFS3_MKNOD 11
1154 am_MKNOD3res * am_nfs3_mknod_3(am_MKNOD3args *, CLIENT *);
1155 am_MKNOD3res * am_nfs3_mknod_3_svc(am_MKNOD3args *, struct svc_req *);
1156 #define AM_NFS3_REMOVE 12
1157 am_REMOVE3res * am_nfs3_remove_3(am_REMOVE3args *, CLIENT *);
1158 am_REMOVE3res * am_nfs3_remove_3_svc(am_REMOVE3args *, struct svc_req *);
1159 #define AM_NFS3_RMDIR 13
1160 am_RMDIR3res * am_nfs3_rmdir_3(am_RMDIR3args *, CLIENT *);
1161 am_RMDIR3res * am_nfs3_rmdir_3_svc(am_RMDIR3args *, struct svc_req *);
1162 #define AM_NFS3_RENAME 14
1163 am_RENAME3res * am_nfs3_rename_3(am_RENAME3args *, CLIENT *);
1164 am_RENAME3res * am_nfs3_rename_3_svc(am_RENAME3args *, struct svc_req *);
1165 #define AM_NFS3_LINK 15
1166 am_LINK3res * am_nfs3_link_3(am_LINK3args *, CLIENT *);
1167 am_LINK3res * am_nfs3_link_3_svc(am_LINK3args *, struct svc_req *);
1168 #define AM_NFS3_READDIR 16
1169 am_READDIR3res * am_nfs3_readdir_3(am_READDIR3args *, CLIENT *);
1170 am_READDIR3res * am_nfs3_readdir_3_svc(am_READDIR3args *, struct svc_req *);
1171 #define AM_NFS3_READDIRPLUS 17
1172 am_READDIRPLUS3res * am_nfs3_readdirplus_3(am_READDIRPLUS3args *, CLIENT *);
1173 am_READDIRPLUS3res * am_nfs3_readdirplus_3_svc(am_READDIRPLUS3args *, struct svc_req *);
1174 #define AM_NFS3_FSSTAT 18
1175 am_FSSTAT3res * am_nfs3_fsstat_3(am_FSSTAT3args *, CLIENT *);
1176 am_FSSTAT3res * am_nfs3_fsstat_3_svc(am_FSSTAT3args *, struct svc_req *);
1177 #define AM_NFS3_FSINFO 19
1178 am_FSINFO3res * am_nfs3_fsinfo_3(am_FSINFO3args *, CLIENT *);
1179 am_FSINFO3res * am_nfs3_fsinfo_3_svc(am_FSINFO3args *, struct svc_req *);
1180 #define AM_NFS3_PATHCONF 20
1181 am_PATHCONF3res * am_nfs3_pathconf_3(am_PATHCONF3args *, CLIENT *);
1182 am_PATHCONF3res * am_nfs3_pathconf_3_svc(am_PATHCONF3args *, struct svc_req *);
1183 #define AM_NFS3_COMMIT 21
1184 am_COMMIT3res * am_nfs3_commit_3(am_COMMIT3args *, CLIENT *);
1185 am_COMMIT3res * am_nfs3_commit_3_svc(am_COMMIT3args *, struct svc_req *);
1186 int nfs_program_3_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
1187
1188 bool_t xdr_am_fhandle3(XDR *xdrs, am_fhandle3 *objp);
1189 bool_t xdr_am_mountstat3(XDR *xdrs, am_mountstat3 *objp);
1190 bool_t xdr_am_mountres3_ok(XDR *xdrs, am_mountres3_ok *objp);
1191 bool_t xdr_am_mountres3(XDR *xdrs, am_mountres3 *objp);
1192 bool_t xdr_am_diropargs3(XDR *xdrs, am_diropargs3 *objp);
1193 bool_t xdr_am_filename3(XDR *xdrs, am_filename3 *objp);
1194 bool_t xdr_am_LOOKUP3args(XDR *xdrs, am_LOOKUP3args *objp);
1195 bool_t xdr_am_LOOKUP3res(XDR *xdrs, am_LOOKUP3res *objp);
1196 bool_t xdr_am_LOOKUP3resfail(XDR *xdrs, am_LOOKUP3resfail *objp);
1197 bool_t xdr_am_LOOKUP3resok(XDR *xdrs, am_LOOKUP3resok *objp);
1198 bool_t xdr_am_nfsstat3(XDR *xdrs, am_nfsstat3 *objp);
1199 bool_t xdr_am_nfs_fh3(XDR *xdrs, am_nfs_fh3 *objp);
1200 bool_t xdr_am_cookieverf3 (XDR *, am_cookieverf3);
1201 bool_t xdr_uint64 (XDR *, uint64*);
1202 bool_t xdr_am_cookie3 (XDR *, am_cookie3*);
1203 bool_t xdr_am_nfs_fh3 (XDR *, am_nfs_fh3*);
1204 bool_t xdr_am_nfsstat3 (XDR *, am_nfsstat3*);
1205 bool_t xdr_am_filename3 (XDR *, am_filename3*);
1206 bool_t xdr_am_diropargs3 (XDR *, am_diropargs3*);
1207 bool_t xdr_am_ftype3 (XDR *, am_ftype3*);
1208 bool_t xdr_am_mode3 (XDR *, am_mode3*);
1209 bool_t xdr_am_uid3 (XDR *, am_uid3*);
1210 bool_t xdr_am_gid3 (XDR *, am_gid3*);
1211 bool_t xdr_am_size3 (XDR *, am_size3*);
1212 bool_t xdr_am_fileid3 (XDR *, am_fileid3*);
1213 bool_t xdr_am_specdata3 (XDR *, am_specdata3*);
1214 bool_t xdr_am_nfstime3 (XDR *, am_nfstime3*);
1215 bool_t xdr_am_fattr3 (XDR *, am_fattr3*);
1216 bool_t xdr_am_post_op_attr (XDR *, am_post_op_attr*);
1217 bool_t xdr_am_stable_how (XDR *, am_stable_how*);
1218 bool_t xdr_am_offset3 (XDR *, am_offset3*);
1219 bool_t xdr_am_count3 (XDR *, am_count3*);
1220 bool_t xdr_am_wcc_attr (XDR *, am_wcc_attr*);
1221 bool_t xdr_am_pre_op_attr (XDR *, am_pre_op_attr*);
1222 bool_t xdr_am_wcc_data (XDR *, am_wcc_data*);
1223 bool_t xdr_am_WRITE3args (XDR *, am_WRITE3args*);
1224 bool_t xdr_am_writeverf3 (XDR *, am_writeverf3);
1225 bool_t xdr_am_WRITE3resok (XDR *, am_WRITE3resok*);
1226 bool_t xdr_am_WRITE3resfail (XDR *, am_WRITE3resfail*);
1227 bool_t xdr_am_WRITE3res (XDR *, am_WRITE3res*);
1228 bool_t xdr_am_LOOKUP3args (XDR *, am_LOOKUP3args*);
1229 bool_t xdr_am_LOOKUP3resok (XDR *, am_LOOKUP3resok*);
1230 bool_t xdr_am_LOOKUP3resfail (XDR *, am_LOOKUP3resfail*);
1231 bool_t xdr_am_LOOKUP3res (XDR *, am_LOOKUP3res*);
1232 bool_t xdr_am_COMMIT3args (XDR *, am_COMMIT3args*);
1233 bool_t xdr_am_COMMIT3resok (XDR *, am_COMMIT3resok*);
1234 bool_t xdr_am_COMMIT3resfail (XDR *, am_COMMIT3resfail*);
1235 bool_t xdr_am_COMMIT3res (XDR *, am_COMMIT3res*);
1236 bool_t xdr_am_ACCESS3args (XDR *, am_ACCESS3args*);
1237 bool_t xdr_am_ACCESS3resok (XDR *, am_ACCESS3resok*);
1238 bool_t xdr_am_ACCESS3resfail (XDR *, am_ACCESS3resfail*);
1239 bool_t xdr_am_ACCESS3res (XDR *, am_ACCESS3res*);
1240 bool_t xdr_am_GETATTR3args (XDR *, am_GETATTR3args*);
1241 bool_t xdr_am_GETATTR3resok (XDR *, am_GETATTR3resok*);
1242 bool_t xdr_am_GETATTR3res (XDR *, am_GETATTR3res*);
1243 bool_t xdr_am_time_how (XDR *, am_time_how*);
1244 bool_t xdr_am_set_mode3 (XDR *, am_set_mode3*);
1245 bool_t xdr_am_set_uid3 (XDR *, am_set_uid3*);
1246 bool_t xdr_am_set_gid3 (XDR *, am_set_gid3*);
1247 bool_t xdr_am_set_size3 (XDR *, am_set_size3*);
1248 bool_t xdr_am_set_atime (XDR *, am_set_atime*);
1249 bool_t xdr_am_set_mtime (XDR *, am_set_mtime*);
1250 bool_t xdr_am_sattr3 (XDR *, am_sattr3*);
1251 bool_t xdr_am_createmode3 (XDR *, am_createmode3*);
1252 bool_t xdr_am_createverf3 (XDR *, am_createverf3);
1253 bool_t xdr_am_createhow3 (XDR *, am_createhow3*);
1254 bool_t xdr_am_CREATE3args (XDR *, am_CREATE3args*);
1255 bool_t xdr_am_post_op_fh3 (XDR *, am_post_op_fh3*);
1256 bool_t xdr_am_CREATE3resok (XDR *, am_CREATE3resok*);
1257 bool_t xdr_am_CREATE3resfail (XDR *, am_CREATE3resfail*);
1258 bool_t xdr_am_CREATE3res (XDR *, am_CREATE3res*);
1259 bool_t xdr_am_REMOVE3args (XDR *, am_REMOVE3args*);
1260 bool_t xdr_am_REMOVE3resok (XDR *, am_REMOVE3resok*);
1261 bool_t xdr_am_REMOVE3resfail (XDR *, am_REMOVE3resfail*);
1262 bool_t xdr_am_REMOVE3res (XDR *, am_REMOVE3res*);
1263 bool_t xdr_am_READ3args (XDR *, am_READ3args*);
1264 bool_t xdr_am_READ3resok (XDR *, am_READ3resok*);
1265 bool_t xdr_am_READ3resfail (XDR *, am_READ3resfail*);
1266 bool_t xdr_am_READ3res (XDR *, am_READ3res*);
1267 bool_t xdr_am_FSINFO3args (XDR *, am_FSINFO3args*);
1268 bool_t xdr_am_FSINFO3resok (XDR *, am_FSINFO3resok*);
1269 bool_t xdr_am_FSINFO3resfail (XDR *, am_FSINFO3resfail*);
1270 bool_t xdr_am_FSINFO3res (XDR *, am_FSINFO3res*);
1271 bool_t xdr_am_FSSTAT3args (XDR *, am_FSSTAT3args*);
1272 bool_t xdr_am_FSSTAT3resok (XDR *, am_FSSTAT3resok*);
1273 bool_t xdr_am_FSSTAT3resfail (XDR *, am_FSSTAT3resfail*);
1274 bool_t xdr_am_FSSTAT3res (XDR *, am_FSSTAT3res*);
1275 bool_t xdr_am_PATHCONF3args (XDR *, am_PATHCONF3args*);
1276 bool_t xdr_am_PATHCONF3resok (XDR *, am_PATHCONF3resok*);
1277 bool_t xdr_am_PATHCONF3resfail (XDR *, am_PATHCONF3resfail*);
1278 bool_t xdr_am_PATHCONF3res (XDR *, am_PATHCONF3res*);
1279 bool_t xdr_am_nfspath3 (XDR *, am_nfspath3*);
1280 bool_t xdr_am_symlinkdata3 (XDR *, am_symlinkdata3*);
1281 bool_t xdr_am_SYMLINK3args (XDR *, am_SYMLINK3args*);
1282 bool_t xdr_am_SYMLINK3resok (XDR *, am_SYMLINK3resok*);
1283 bool_t xdr_am_SYMLINK3resfail (XDR *, am_SYMLINK3resfail*);
1284 bool_t xdr_am_SYMLINK3res (XDR *, am_SYMLINK3res*);
1285 bool_t xdr_am_READLINK3args (XDR *, am_READLINK3args*);
1286 bool_t xdr_am_READLINK3resok (XDR *, am_READLINK3resok*);
1287 bool_t xdr_am_READLINK3resfail (XDR *, am_READLINK3resfail*);
1288 bool_t xdr_am_READLINK3res (XDR *, am_READLINK3res*);
1289 bool_t xdr_am_devicedata3 (XDR *, am_devicedata3*);
1290 bool_t xdr_am_mknoddata3 (XDR *, am_mknoddata3*);
1291 bool_t xdr_am_MKNOD3args (XDR *, am_MKNOD3args*);
1292 bool_t xdr_am_MKNOD3resok (XDR *, am_MKNOD3resok*);
1293 bool_t xdr_am_MKNOD3resfail (XDR *, am_MKNOD3resfail*);
1294 bool_t xdr_am_MKNOD3res (XDR *, am_MKNOD3res*);
1295 bool_t xdr_am_MKDIR3args (XDR *, am_MKDIR3args*);
1296 bool_t xdr_am_MKDIR3resok (XDR *, am_MKDIR3resok*);
1297 bool_t xdr_am_MKDIR3resfail (XDR *, am_MKDIR3resfail*);
1298 bool_t xdr_am_MKDIR3res (XDR *, am_MKDIR3res*);
1299 bool_t xdr_am_RMDIR3args (XDR *, am_RMDIR3args*);
1300 bool_t xdr_am_RMDIR3resok (XDR *, am_RMDIR3resok*);
1301 bool_t xdr_am_RMDIR3resfail (XDR *, am_RMDIR3resfail*);
1302 bool_t xdr_am_RMDIR3res (XDR *, am_RMDIR3res*);
1303 bool_t xdr_am_RENAME3args (XDR *, am_RENAME3args*);
1304 bool_t xdr_am_RENAME3resok (XDR *, am_RENAME3resok*);
1305 bool_t xdr_am_RENAME3resfail (XDR *, am_RENAME3resfail*);
1306 bool_t xdr_am_RENAME3res (XDR *, am_RENAME3res*);
1307 bool_t xdr_am_READDIRPLUS3args (XDR *, am_READDIRPLUS3args*);
1308 bool_t xdr_am_entryplus3 (XDR *, am_entryplus3*);
1309 bool_t xdr_am_dirlistplus3 (XDR *, am_dirlistplus3*);
1310 bool_t xdr_am_READDIRPLUS3resok (XDR *, am_READDIRPLUS3resok*);
1311 bool_t xdr_am_READDIRPLUS3resfail (XDR *, am_READDIRPLUS3resfail*);
1312 bool_t xdr_am_READDIRPLUS3res (XDR *, am_READDIRPLUS3res*);
1313 bool_t xdr_am_READDIR3args (XDR *, am_READDIR3args*);
1314 bool_t xdr_am_entry3 (XDR *, am_entry3*);
1315 bool_t xdr_am_dirlist3 (XDR *, am_dirlist3*);
1316 bool_t xdr_am_READDIR3resok (XDR *, am_READDIR3resok*);
1317 bool_t xdr_am_READDIR3resfail (XDR *, am_READDIR3resfail*);
1318 bool_t xdr_am_READDIR3res (XDR *, am_READDIR3res*);
1319 bool_t xdr_am_LINK3args (XDR *, am_LINK3args*);
1320 bool_t xdr_am_LINK3resok (XDR *, am_LINK3resok*);
1321 bool_t xdr_am_LINK3resfail (XDR *, am_LINK3resfail*);
1322 bool_t xdr_am_LINK3res (XDR *, am_LINK3res*);
1323 bool_t xdr_am_sattrguard3 (XDR *, am_sattrguard3*);
1324 bool_t xdr_am_SETATTR3args (XDR *, am_SETATTR3args*);
1325 bool_t xdr_am_SETATTR3resok (XDR *, am_SETATTR3resok*);
1326 bool_t xdr_am_SETATTR3resfail (XDR *, am_SETATTR3resfail*);
1327 bool_t xdr_am_SETATTR3res (XDR *, am_SETATTR3res*);
1328 #endif /* HAVE_FS_NFS3 */
1329
1330 #endif /* not _AM_XDR_FUNC_H */