1 /*
2  * Copyright (c) 2006-2021, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  */
9 /*
10  * Please do not edit this file.
11  * It was generated using rpcgen.
12  */
13 
14 #ifndef _NFS_H_RPCGEN
15 #define _NFS_H_RPCGEN
16 
17 #include <rpc/rpc.h>
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 /* This file is copied from RFC1813
24  * Copyright 1995 Sun Micrososystems (I assume)
25  */
26 #define NFS3_FHSIZE 64
27 #define NFS3_COOKIEVERFSIZE 8
28 #define NFS3_CREATEVERFSIZE 8
29 #define NFS3_WRITEVERFSIZE 8
30 #define ACCESS3_READ 0x0001
31 #define ACCESS3_LOOKUP 0x0002
32 #define ACCESS3_MODIFY 0x0004
33 #define ACCESS3_EXTEND 0x0008
34 #define ACCESS3_DELETE 0x0010
35 #define ACCESS3_EXECUTE 0x0020
36 #define FSF3_LINK 0x0001
37 #define FSF3_SYMLINK 0x0002
38 #define FSF3_HOMOGENEOUS 0x0008
39 #define FSF3_CANSETTIME 0x0010
40 
41 typedef unsigned long long uint64;
42 
43 typedef long long int64;
44 
45 typedef u_long uint32;
46 
47 typedef long int32;
48 
49 typedef char *filename3;
50 
51 typedef char *nfspath3;
52 
53 typedef uint64 fileid3;
54 
55 typedef uint64 cookie3;
56 
57 typedef char cookieverf3[NFS3_COOKIEVERFSIZE];
58 
59 typedef char createverf3[NFS3_CREATEVERFSIZE];
60 
61 typedef char writeverf3[NFS3_WRITEVERFSIZE];
62 
63 typedef uint32 uid3;
64 
65 typedef uint32 gid3;
66 
67 typedef uint64 size3;
68 
69 typedef uint64 offset3;
70 
71 typedef uint32 mode3;
72 
73 typedef uint32 count3;
74 
75 enum nfsstat3 {
76     NFS3_OK = 0,
77     NFS3ERR_PERM = 1,
78     NFS3ERR_NOENT = 2,
79     NFS3ERR_IO = 5,
80     NFS3ERR_NXIO = 6,
81     NFS3ERR_ACCES = 13,
82     NFS3ERR_EXIST = 17,
83     NFS3ERR_XDEV = 18,
84     NFS3ERR_NODEV = 19,
85     NFS3ERR_NOTDIR = 20,
86     NFS3ERR_ISDIR = 21,
87     NFS3ERR_INVAL = 22,
88     NFS3ERR_FBIG = 27,
89     NFS3ERR_NOSPC = 28,
90     NFS3ERR_ROFS = 30,
91     NFS3ERR_MLINK = 31,
92     NFS3ERR_NAMETOOLONG = 63,
93     NFS3ERR_NOTEMPTY = 66,
94     NFS3ERR_DQUOT = 69,
95     NFS3ERR_STALE = 70,
96     NFS3ERR_REMOTE = 71,
97     NFS3ERR_BADHANDLE = 10001,
98     NFS3ERR_NOT_SYNC = 10002,
99     NFS3ERR_BAD_COOKIE = 10003,
100     NFS3ERR_NOTSUPP = 10004,
101     NFS3ERR_TOOSMALL = 10005,
102     NFS3ERR_SERVERFAULT = 10006,
103     NFS3ERR_BADTYPE = 10007,
104     NFS3ERR_JUKEBOX = 10008
105 };
106 typedef enum nfsstat3 nfsstat3;
107 
108 enum ftype3 {
109     NFS3REG = 1,
110     NFS3DIR = 2,
111     NFS3BLK = 3,
112     NFS3CHR = 4,
113     NFS3LNK = 5,
114     NFS3SOCK = 6,
115     NFS3FIFO = 7
116 };
117 typedef enum ftype3 ftype3;
118 
119 enum stable_how {
120     UNSTABLE = 0,
121     DATA_SYNC = 1,
122     FILE_SYNC = 2
123 };
124 typedef enum stable_how stable_how;
125 
126 enum createmode3 {
127     UNCHECKED = 0,
128     GUARDED = 1,
129     EXCLUSIVE = 2
130 };
131 typedef enum createmode3 createmode3;
132 
133 struct specdata3 {
134     uint32 specdata1;
135     uint32 specdata2;
136 };
137 typedef struct specdata3 specdata3;
138 
139 struct nfs_fh3 {
140     struct {
141         unsigned int data_len;
142         char *data_val;
143     } data;
144 };
145 typedef struct nfs_fh3 nfs_fh3;
146 
147 struct nfstime3 {
148     uint32 seconds;
149     uint32 nseconds;
150 };
151 typedef struct nfstime3 nfstime3;
152 
153 struct fattr3 {
154     ftype3 type;
155     mode3 mode;
156     uint32 nlink;
157     uid3 uid;
158     gid3 gid;
159     size3 size;
160     size3 used;
161     specdata3 rdev;
162     uint64 fsid;
163     fileid3 fileid;
164     nfstime3 atime;
165     nfstime3 mtime;
166     nfstime3 ctime;
167 };
168 typedef struct fattr3 fattr3;
169 
170 struct post_op_attr {
171     bool_t attributes_follow;
172     union {
173         fattr3 attributes;
174     } post_op_attr_u;
175 };
176 typedef struct post_op_attr post_op_attr;
177 
178 struct wcc_attr {
179     size3 size;
180     nfstime3 mtime;
181     nfstime3 ctime;
182 };
183 typedef struct wcc_attr wcc_attr;
184 
185 struct pre_op_attr {
186     bool_t attributes_follow;
187     union {
188         wcc_attr attributes;
189     } pre_op_attr_u;
190 };
191 typedef struct pre_op_attr pre_op_attr;
192 
193 struct wcc_data {
194     pre_op_attr before;
195     post_op_attr after;
196 };
197 typedef struct wcc_data wcc_data;
198 
199 struct post_op_fh3 {
200     bool_t handle_follows;
201     union {
202         nfs_fh3 handle;
203     } post_op_fh3_u;
204 };
205 typedef struct post_op_fh3 post_op_fh3;
206 
207 enum time_how {
208     DONT_CHANGE = 0,
209     SET_TO_SERVER_TIME = 1,
210     SET_TO_CLIENT_TIME = 2
211 };
212 typedef enum time_how time_how;
213 
214 struct set_mode3 {
215     bool_t set_it;
216     union {
217         mode3 mode;
218     } set_mode3_u;
219 };
220 typedef struct set_mode3 set_mode3;
221 
222 struct set_uid3 {
223     bool_t set_it;
224     union {
225         uid3 uid;
226     } set_uid3_u;
227 };
228 typedef struct set_uid3 set_uid3;
229 
230 struct set_gid3 {
231     bool_t set_it;
232     union {
233         gid3 gid;
234     } set_gid3_u;
235 };
236 typedef struct set_gid3 set_gid3;
237 
238 struct set_size3 {
239     bool_t set_it;
240     union {
241         size3 size;
242     } set_size3_u;
243 };
244 typedef struct set_size3 set_size3;
245 
246 struct set_atime {
247     time_how set_it;
248     union {
249         nfstime3 atime;
250     } set_atime_u;
251 };
252 typedef struct set_atime set_atime;
253 
254 struct set_mtime {
255     time_how set_it;
256     union {
257         nfstime3 mtime;
258     } set_mtime_u;
259 };
260 typedef struct set_mtime set_mtime;
261 
262 struct sattr3 {
263     set_mode3 mode;
264     set_uid3 uid;
265     set_gid3 gid;
266     set_size3 size;
267     set_atime atime;
268     set_mtime mtime;
269 };
270 typedef struct sattr3 sattr3;
271 
272 struct diropargs3 {
273     nfs_fh3 dir;
274     filename3 name;
275 };
276 typedef struct diropargs3 diropargs3;
277 
278 struct GETATTR3args {
279     nfs_fh3 object;
280 };
281 typedef struct GETATTR3args GETATTR3args;
282 
283 struct GETATTR3resok {
284     fattr3 obj_attributes;
285 };
286 typedef struct GETATTR3resok GETATTR3resok;
287 
288 struct GETATTR3res {
289     nfsstat3 status;
290     union {
291         GETATTR3resok resok;
292     } GETATTR3res_u;
293 };
294 typedef struct GETATTR3res GETATTR3res;
295 
296 struct sattrguard3 {
297     bool_t check;
298     union {
299         nfstime3 obj_ctime;
300     } sattrguard3_u;
301 };
302 typedef struct sattrguard3 sattrguard3;
303 
304 struct SETATTR3args {
305     nfs_fh3 object;
306     sattr3 new_attributes;
307     sattrguard3 guard;
308 };
309 typedef struct SETATTR3args SETATTR3args;
310 
311 struct SETATTR3resok {
312     wcc_data obj_wcc;
313 };
314 typedef struct SETATTR3resok SETATTR3resok;
315 
316 struct SETATTR3resfail {
317     wcc_data obj_wcc;
318 };
319 typedef struct SETATTR3resfail SETATTR3resfail;
320 
321 struct SETATTR3res {
322     nfsstat3 status;
323     union {
324         SETATTR3resok resok;
325         SETATTR3resfail resfail;
326     } SETATTR3res_u;
327 };
328 typedef struct SETATTR3res SETATTR3res;
329 
330 struct LOOKUP3args {
331     diropargs3 what;
332 };
333 typedef struct LOOKUP3args LOOKUP3args;
334 
335 struct LOOKUP3resok {
336     nfs_fh3 object;
337     post_op_attr obj_attributes;
338     post_op_attr dir_attributes;
339 };
340 typedef struct LOOKUP3resok LOOKUP3resok;
341 
342 struct LOOKUP3resfail {
343     post_op_attr dir_attributes;
344 };
345 typedef struct LOOKUP3resfail LOOKUP3resfail;
346 
347 struct LOOKUP3res {
348     nfsstat3 status;
349     union {
350         LOOKUP3resok resok;
351         LOOKUP3resfail resfail;
352     } LOOKUP3res_u;
353 };
354 typedef struct LOOKUP3res LOOKUP3res;
355 
356 struct ACCESS3args {
357     nfs_fh3 object;
358     uint32 access;
359 };
360 typedef struct ACCESS3args ACCESS3args;
361 
362 struct ACCESS3resok {
363     post_op_attr obj_attributes;
364     uint32 access;
365 };
366 typedef struct ACCESS3resok ACCESS3resok;
367 
368 struct ACCESS3resfail {
369     post_op_attr obj_attributes;
370 };
371 typedef struct ACCESS3resfail ACCESS3resfail;
372 
373 struct ACCESS3res {
374     nfsstat3 status;
375     union {
376         ACCESS3resok resok;
377         ACCESS3resfail resfail;
378     } ACCESS3res_u;
379 };
380 typedef struct ACCESS3res ACCESS3res;
381 
382 struct READLINK3args {
383     nfs_fh3 symlink;
384 };
385 typedef struct READLINK3args READLINK3args;
386 
387 struct READLINK3resok {
388     post_op_attr symlink_attributes;
389     nfspath3 data;
390 };
391 typedef struct READLINK3resok READLINK3resok;
392 
393 struct READLINK3resfail {
394     post_op_attr symlink_attributes;
395 };
396 typedef struct READLINK3resfail READLINK3resfail;
397 
398 struct READLINK3res {
399     nfsstat3 status;
400     union {
401         READLINK3resok resok;
402         READLINK3resfail resfail;
403     } READLINK3res_u;
404 };
405 typedef struct READLINK3res READLINK3res;
406 
407 struct READ3args {
408     nfs_fh3 file;
409     offset3 offset;
410     count3 count;
411 };
412 typedef struct READ3args READ3args;
413 
414 struct READ3resok {
415     post_op_attr file_attributes;
416     count3 count;
417     bool_t eof;
418     struct {
419         unsigned int data_len;
420         char *data_val;
421     } data;
422 };
423 typedef struct READ3resok READ3resok;
424 
425 struct READ3resfail {
426     post_op_attr file_attributes;
427 };
428 typedef struct READ3resfail READ3resfail;
429 
430 struct READ3res {
431     nfsstat3 status;
432     union {
433         READ3resok resok;
434         READ3resfail resfail;
435     } READ3res_u;
436 };
437 typedef struct READ3res READ3res;
438 
439 struct WRITE3args {
440     nfs_fh3 file;
441     offset3 offset;
442     count3 count;
443     stable_how stable;
444     struct {
445         unsigned int data_len;
446         char *data_val;
447     } data;
448 };
449 typedef struct WRITE3args WRITE3args;
450 
451 struct WRITE3resok {
452     wcc_data file_wcc;
453     count3 count;
454     stable_how committed;
455     writeverf3 verf;
456 };
457 typedef struct WRITE3resok WRITE3resok;
458 
459 struct WRITE3resfail {
460     wcc_data file_wcc;
461 };
462 typedef struct WRITE3resfail WRITE3resfail;
463 
464 struct WRITE3res {
465     nfsstat3 status;
466     union {
467         WRITE3resok resok;
468         WRITE3resfail resfail;
469     } WRITE3res_u;
470 };
471 typedef struct WRITE3res WRITE3res;
472 
473 struct createhow3 {
474     createmode3 mode;
475     union {
476         sattr3 obj_attributes;
477         createverf3 verf;
478     } createhow3_u;
479 };
480 typedef struct createhow3 createhow3;
481 
482 struct CREATE3args {
483     diropargs3 where;
484     createhow3 how;
485 };
486 typedef struct CREATE3args CREATE3args;
487 
488 struct CREATE3resok {
489     post_op_fh3 obj;
490     post_op_attr obj_attributes;
491     wcc_data dir_wcc;
492 };
493 typedef struct CREATE3resok CREATE3resok;
494 
495 struct CREATE3resfail {
496     wcc_data dir_wcc;
497 };
498 typedef struct CREATE3resfail CREATE3resfail;
499 
500 struct CREATE3res {
501     nfsstat3 status;
502     union {
503         CREATE3resok resok;
504         CREATE3resfail resfail;
505     } CREATE3res_u;
506 };
507 typedef struct CREATE3res CREATE3res;
508 
509 struct MKDIR3args {
510     diropargs3 where;
511     sattr3 attributes;
512 };
513 typedef struct MKDIR3args MKDIR3args;
514 
515 struct MKDIR3resok {
516     post_op_fh3 obj;
517     post_op_attr obj_attributes;
518     wcc_data dir_wcc;
519 };
520 typedef struct MKDIR3resok MKDIR3resok;
521 
522 struct MKDIR3resfail {
523     wcc_data dir_wcc;
524 };
525 typedef struct MKDIR3resfail MKDIR3resfail;
526 
527 struct MKDIR3res {
528     nfsstat3 status;
529     union {
530         MKDIR3resok resok;
531         MKDIR3resfail resfail;
532     } MKDIR3res_u;
533 };
534 typedef struct MKDIR3res MKDIR3res;
535 
536 struct symlinkdata3 {
537     sattr3 symlink_attributes;
538     nfspath3 symlink_data;
539 };
540 typedef struct symlinkdata3 symlinkdata3;
541 
542 struct SYMLINK3args {
543     diropargs3 where;
544     symlinkdata3 symlink;
545 };
546 typedef struct SYMLINK3args SYMLINK3args;
547 
548 struct SYMLINK3resok {
549     post_op_fh3 obj;
550     post_op_attr obj_attributes;
551     wcc_data dir_wcc;
552 };
553 typedef struct SYMLINK3resok SYMLINK3resok;
554 
555 struct SYMLINK3resfail {
556     wcc_data dir_wcc;
557 };
558 typedef struct SYMLINK3resfail SYMLINK3resfail;
559 
560 struct SYMLINK3res {
561     nfsstat3 status;
562     union {
563         SYMLINK3resok resok;
564         SYMLINK3resfail resfail;
565     } SYMLINK3res_u;
566 };
567 typedef struct SYMLINK3res SYMLINK3res;
568 
569 struct devicedata3 {
570     sattr3 dev_attributes;
571     specdata3 spec;
572 };
573 typedef struct devicedata3 devicedata3;
574 
575 struct mknoddata3 {
576     ftype3 type;
577     union {
578         devicedata3 device;
579         sattr3 pipe_attributes;
580     } mknoddata3_u;
581 };
582 typedef struct mknoddata3 mknoddata3;
583 
584 struct MKNOD3args {
585     diropargs3 where;
586     mknoddata3 what;
587 };
588 typedef struct MKNOD3args MKNOD3args;
589 
590 struct MKNOD3resok {
591     post_op_fh3 obj;
592     post_op_attr obj_attributes;
593     wcc_data dir_wcc;
594 };
595 typedef struct MKNOD3resok MKNOD3resok;
596 
597 struct MKNOD3resfail {
598     wcc_data dir_wcc;
599 };
600 typedef struct MKNOD3resfail MKNOD3resfail;
601 
602 struct MKNOD3res {
603     nfsstat3 status;
604     union {
605         MKNOD3resok resok;
606         MKNOD3resfail resfail;
607     } MKNOD3res_u;
608 };
609 typedef struct MKNOD3res MKNOD3res;
610 
611 struct REMOVE3args {
612     diropargs3 object;
613 };
614 typedef struct REMOVE3args REMOVE3args;
615 
616 struct REMOVE3resok {
617     wcc_data dir_wcc;
618 };
619 typedef struct REMOVE3resok REMOVE3resok;
620 
621 struct REMOVE3resfail {
622     wcc_data dir_wcc;
623 };
624 typedef struct REMOVE3resfail REMOVE3resfail;
625 
626 struct REMOVE3res {
627     nfsstat3 status;
628     union {
629         REMOVE3resok resok;
630         REMOVE3resfail resfail;
631     } REMOVE3res_u;
632 };
633 typedef struct REMOVE3res REMOVE3res;
634 
635 struct RMDIR3args {
636     diropargs3 object;
637 };
638 typedef struct RMDIR3args RMDIR3args;
639 
640 struct RMDIR3resok {
641     wcc_data dir_wcc;
642 };
643 typedef struct RMDIR3resok RMDIR3resok;
644 
645 struct RMDIR3resfail {
646     wcc_data dir_wcc;
647 };
648 typedef struct RMDIR3resfail RMDIR3resfail;
649 
650 struct RMDIR3res {
651     nfsstat3 status;
652     union {
653         RMDIR3resok resok;
654         RMDIR3resfail resfail;
655     } RMDIR3res_u;
656 };
657 typedef struct RMDIR3res RMDIR3res;
658 
659 struct RENAME3args {
660     diropargs3 from;
661     diropargs3 to;
662 };
663 typedef struct RENAME3args RENAME3args;
664 
665 struct RENAME3resok {
666     wcc_data fromdir_wcc;
667     wcc_data todir_wcc;
668 };
669 typedef struct RENAME3resok RENAME3resok;
670 
671 struct RENAME3resfail {
672     wcc_data fromdir_wcc;
673     wcc_data todir_wcc;
674 };
675 typedef struct RENAME3resfail RENAME3resfail;
676 
677 struct RENAME3res {
678     nfsstat3 status;
679     union {
680         RENAME3resok resok;
681         RENAME3resfail resfail;
682     } RENAME3res_u;
683 };
684 typedef struct RENAME3res RENAME3res;
685 
686 struct LINK3args {
687     nfs_fh3 file;
688     diropargs3 link;
689 };
690 typedef struct LINK3args LINK3args;
691 
692 struct LINK3resok {
693     post_op_attr file_attributes;
694     wcc_data linkdir_wcc;
695 };
696 typedef struct LINK3resok LINK3resok;
697 
698 struct LINK3resfail {
699     post_op_attr file_attributes;
700     wcc_data linkdir_wcc;
701 };
702 typedef struct LINK3resfail LINK3resfail;
703 
704 struct LINK3res {
705     nfsstat3 status;
706     union {
707         LINK3resok resok;
708         LINK3resfail resfail;
709     } LINK3res_u;
710 };
711 typedef struct LINK3res LINK3res;
712 
713 struct READDIR3args {
714     nfs_fh3 dir;
715     cookie3 cookie;
716     cookieverf3 cookieverf;
717     count3 count;
718 };
719 typedef struct READDIR3args READDIR3args;
720 
721 struct entry3 {
722     fileid3 fileid;
723     filename3 name;
724     cookie3 cookie;
725     struct entry3 *nextentry;
726 };
727 typedef struct entry3 entry3;
728 
729 struct dirlist3 {
730     entry3 *entries;
731     bool_t eof;
732 };
733 typedef struct dirlist3 dirlist3;
734 
735 struct READDIR3resok {
736     post_op_attr dir_attributes;
737     cookieverf3 cookieverf;
738     dirlist3 reply;
739 };
740 typedef struct READDIR3resok READDIR3resok;
741 
742 struct READDIR3resfail {
743     post_op_attr dir_attributes;
744 };
745 typedef struct READDIR3resfail READDIR3resfail;
746 
747 struct READDIR3res {
748     nfsstat3 status;
749     union {
750         READDIR3resok resok;
751         READDIR3resfail resfail;
752     } READDIR3res_u;
753 };
754 typedef struct READDIR3res READDIR3res;
755 
756 struct READDIRPLUS3args {
757     nfs_fh3 dir;
758     cookie3 cookie;
759     cookieverf3 cookieverf;
760     count3 dircount;
761     count3 maxcount;
762 };
763 typedef struct READDIRPLUS3args READDIRPLUS3args;
764 
765 struct entryplus3 {
766     fileid3 fileid;
767     filename3 name;
768     cookie3 cookie;
769     post_op_attr name_attributes;
770     post_op_fh3 name_handle;
771     struct entryplus3 *nextentry;
772 };
773 typedef struct entryplus3 entryplus3;
774 
775 struct dirlistplus3 {
776     entryplus3 *entries;
777     bool_t eof;
778 };
779 typedef struct dirlistplus3 dirlistplus3;
780 
781 struct READDIRPLUS3resok {
782     post_op_attr dir_attributes;
783     cookieverf3 cookieverf;
784     dirlistplus3 reply;
785 };
786 typedef struct READDIRPLUS3resok READDIRPLUS3resok;
787 
788 struct READDIRPLUS3resfail {
789     post_op_attr dir_attributes;
790 };
791 typedef struct READDIRPLUS3resfail READDIRPLUS3resfail;
792 
793 struct READDIRPLUS3res {
794     nfsstat3 status;
795     union {
796         READDIRPLUS3resok resok;
797         READDIRPLUS3resfail resfail;
798     } READDIRPLUS3res_u;
799 };
800 typedef struct READDIRPLUS3res READDIRPLUS3res;
801 
802 struct FSSTAT3args {
803     nfs_fh3 fsroot;
804 };
805 typedef struct FSSTAT3args FSSTAT3args;
806 
807 struct FSSTAT3resok {
808     post_op_attr obj_attributes;
809     size3 tbytes;
810     size3 fbytes;
811     size3 abytes;
812     size3 tfiles;
813     size3 ffiles;
814     size3 afiles;
815     uint32 invarsec;
816 };
817 typedef struct FSSTAT3resok FSSTAT3resok;
818 
819 struct FSSTAT3resfail {
820     post_op_attr obj_attributes;
821 };
822 typedef struct FSSTAT3resfail FSSTAT3resfail;
823 
824 struct FSSTAT3res {
825     nfsstat3 status;
826     union {
827         FSSTAT3resok resok;
828         FSSTAT3resfail resfail;
829     } FSSTAT3res_u;
830 };
831 typedef struct FSSTAT3res FSSTAT3res;
832 
833 struct FSINFO3args {
834     nfs_fh3 fsroot;
835 };
836 typedef struct FSINFO3args FSINFO3args;
837 
838 struct FSINFO3resok {
839     post_op_attr obj_attributes;
840     uint32 rtmax;
841     uint32 rtpref;
842     uint32 rtmult;
843     uint32 wtmax;
844     uint32 wtpref;
845     uint32 wtmult;
846     uint32 dtpref;
847     size3 maxfilesize;
848     nfstime3 time_delta;
849     uint32 properties;
850 };
851 typedef struct FSINFO3resok FSINFO3resok;
852 
853 struct FSINFO3resfail {
854     post_op_attr obj_attributes;
855 };
856 typedef struct FSINFO3resfail FSINFO3resfail;
857 
858 struct FSINFO3res {
859     nfsstat3 status;
860     union {
861         FSINFO3resok resok;
862         FSINFO3resfail resfail;
863     } FSINFO3res_u;
864 };
865 typedef struct FSINFO3res FSINFO3res;
866 
867 struct PATHCONF3args {
868     nfs_fh3 object;
869 };
870 typedef struct PATHCONF3args PATHCONF3args;
871 
872 struct PATHCONF3resok {
873     post_op_attr obj_attributes;
874     uint32 linkmax;
875     uint32 name_max;
876     bool_t no_trunc;
877     bool_t chown_restricted;
878     bool_t case_insensitive;
879     bool_t case_preserving;
880 };
881 typedef struct PATHCONF3resok PATHCONF3resok;
882 
883 struct PATHCONF3resfail {
884     post_op_attr obj_attributes;
885 };
886 typedef struct PATHCONF3resfail PATHCONF3resfail;
887 
888 struct PATHCONF3res {
889     nfsstat3 status;
890     union {
891         PATHCONF3resok resok;
892         PATHCONF3resfail resfail;
893     } PATHCONF3res_u;
894 };
895 typedef struct PATHCONF3res PATHCONF3res;
896 
897 struct COMMIT3args {
898     nfs_fh3 file;
899     offset3 offset;
900     count3 count;
901 };
902 typedef struct COMMIT3args COMMIT3args;
903 
904 struct COMMIT3resok {
905     wcc_data file_wcc;
906     writeverf3 verf;
907 };
908 typedef struct COMMIT3resok COMMIT3resok;
909 
910 struct COMMIT3resfail {
911     wcc_data file_wcc;
912 };
913 typedef struct COMMIT3resfail COMMIT3resfail;
914 
915 struct COMMIT3res {
916     nfsstat3 status;
917     union {
918         COMMIT3resok resok;
919         COMMIT3resfail resfail;
920     } COMMIT3res_u;
921 };
922 typedef struct COMMIT3res COMMIT3res;
923 
924 #define NFS_PROGRAM 100003
925 #define NFS_V3  3
926 
927 #define NFSPROC3_NULL   0
928 extern  enum clnt_stat nfsproc3_null_3(void *, CLIENT *);
929 #define NFSPROC3_GETATTR    1
930 extern  enum clnt_stat nfsproc3_getattr_3(GETATTR3args , GETATTR3res *, CLIENT *);
931 #define NFSPROC3_SETATTR    2
932 extern  enum clnt_stat nfsproc3_setattr_3(SETATTR3args , SETATTR3res *, CLIENT *);
933 #define NFSPROC3_LOOKUP 3
934 extern  enum clnt_stat nfsproc3_lookup_3(LOOKUP3args , LOOKUP3res *, CLIENT *);
935 #define NFSPROC3_ACCESS 4
936 extern  enum clnt_stat nfsproc3_access_3(ACCESS3args , ACCESS3res *, CLIENT *);
937 #define NFSPROC3_READLINK   5
938 extern  enum clnt_stat nfsproc3_readlink_3(READLINK3args , READLINK3res *, CLIENT *);
939 #define NFSPROC3_READ   6
940 extern  enum clnt_stat nfsproc3_read_3(READ3args , READ3res *, CLIENT *);
941 #define NFSPROC3_WRITE  7
942 extern  enum clnt_stat nfsproc3_write_3(WRITE3args , WRITE3res *, CLIENT *);
943 #define NFSPROC3_CREATE 8
944 extern  enum clnt_stat nfsproc3_create_3(CREATE3args , CREATE3res *, CLIENT *);
945 #define NFSPROC3_MKDIR  9
946 extern  enum clnt_stat nfsproc3_mkdir_3(MKDIR3args , MKDIR3res *, CLIENT *);
947 #define NFSPROC3_SYMLINK    10
948 extern  enum clnt_stat nfsproc3_symlink_3(SYMLINK3args , SYMLINK3res *, CLIENT *);
949 #define NFSPROC3_MKNOD  11
950 extern  enum clnt_stat nfsproc3_mknod_3(MKNOD3args , MKNOD3res *, CLIENT *);
951 #define NFSPROC3_REMOVE 12
952 extern  enum clnt_stat nfsproc3_remove_3(REMOVE3args , REMOVE3res *, CLIENT *);
953 #define NFSPROC3_RMDIR  13
954 extern  enum clnt_stat nfsproc3_rmdir_3(RMDIR3args , RMDIR3res *, CLIENT *);
955 #define NFSPROC3_RENAME 14
956 extern  enum clnt_stat nfsproc3_rename_3(RENAME3args , RENAME3res *, CLIENT *);
957 #define NFSPROC3_LINK   15
958 extern  enum clnt_stat nfsproc3_link_3(LINK3args , LINK3res *, CLIENT *);
959 #define NFSPROC3_READDIR    16
960 extern  enum clnt_stat nfsproc3_readdir_3(READDIR3args , READDIR3res *, CLIENT *);
961 #define NFSPROC3_READDIRPLUS    17
962 extern  enum clnt_stat nfsproc3_readdirplus_3(READDIRPLUS3args , READDIRPLUS3res *, CLIENT *);
963 #define NFSPROC3_FSSTAT 18
964 extern  enum clnt_stat nfsproc3_fsstat_3(FSSTAT3args , FSSTAT3res *, CLIENT *);
965 #define NFSPROC3_FSINFO 19
966 extern  enum clnt_stat nfsproc3_fsinfo_3(FSINFO3args , FSINFO3res *, CLIENT *);
967 #define NFSPROC3_PATHCONF   20
968 extern  enum clnt_stat nfsproc3_pathconf_3(PATHCONF3args , PATHCONF3res *, CLIENT *);
969 #define NFSPROC3_COMMIT 21
970 extern  enum clnt_stat nfsproc3_commit_3(COMMIT3args , COMMIT3res *, CLIENT *);
971 
972 /* the xdr functions */
973 
974 extern  bool_t xdr_uint64(XDR *, uint64*);
975 extern  bool_t xdr_int64(XDR *, int64*);
976 extern  bool_t xdr_uint32(XDR *, uint32*);
977 extern  bool_t xdr_int32(XDR *, int32*);
978 extern  bool_t xdr_filename3(XDR *, filename3*);
979 extern  bool_t xdr_nfspath3(XDR *, nfspath3*);
980 extern  bool_t xdr_fileid3(XDR *, fileid3*);
981 extern  bool_t xdr_cookie3(XDR *, cookie3*);
982 extern  bool_t xdr_cookieverf3(XDR *, cookieverf3);
983 extern  bool_t xdr_createverf3(XDR *, createverf3);
984 extern  bool_t xdr_writeverf3(XDR *, writeverf3);
985 extern  bool_t xdr_uid3(XDR *, uid3*);
986 extern  bool_t xdr_gid3(XDR *, gid3*);
987 extern  bool_t xdr_size3(XDR *, size3*);
988 extern  bool_t xdr_offset3(XDR *, offset3*);
989 extern  bool_t xdr_mode3(XDR *, mode3*);
990 extern  bool_t xdr_count3(XDR *, count3*);
991 extern  bool_t xdr_nfsstat3(XDR *, nfsstat3*);
992 extern  bool_t xdr_ftype3(XDR *, ftype3*);
993 extern  bool_t xdr_stable_how(XDR *, stable_how*);
994 extern  bool_t xdr_createmode3(XDR *, createmode3*);
995 extern  bool_t xdr_specdata3(XDR *, specdata3*);
996 extern  bool_t xdr_nfs_fh3(XDR *, nfs_fh3*);
997 extern  bool_t xdr_nfstime3(XDR *, nfstime3*);
998 extern  bool_t xdr_fattr3(XDR *, fattr3*);
999 extern  bool_t xdr_post_op_attr(XDR *, post_op_attr*);
1000 extern  bool_t xdr_wcc_attr(XDR *, wcc_attr*);
1001 extern  bool_t xdr_pre_op_attr(XDR *, pre_op_attr*);
1002 extern  bool_t xdr_wcc_data(XDR *, wcc_data*);
1003 extern  bool_t xdr_post_op_fh3(XDR *, post_op_fh3*);
1004 extern  bool_t xdr_time_how(XDR *, time_how*);
1005 extern  bool_t xdr_set_mode3(XDR *, set_mode3*);
1006 extern  bool_t xdr_set_uid3(XDR *, set_uid3*);
1007 extern  bool_t xdr_set_gid3(XDR *, set_gid3*);
1008 extern  bool_t xdr_set_size3(XDR *, set_size3*);
1009 extern  bool_t xdr_set_atime(XDR *, set_atime*);
1010 extern  bool_t xdr_set_mtime(XDR *, set_mtime*);
1011 extern  bool_t xdr_sattr3(XDR *, sattr3*);
1012 extern  bool_t xdr_diropargs3(XDR *, diropargs3*);
1013 extern  bool_t xdr_GETATTR3args(XDR *, GETATTR3args*);
1014 extern  bool_t xdr_GETATTR3resok(XDR *, GETATTR3resok*);
1015 extern  bool_t xdr_GETATTR3res(XDR *, GETATTR3res*);
1016 extern  bool_t xdr_sattrguard3(XDR *, sattrguard3*);
1017 extern  bool_t xdr_SETATTR3args(XDR *, SETATTR3args*);
1018 extern  bool_t xdr_SETATTR3resok(XDR *, SETATTR3resok*);
1019 extern  bool_t xdr_SETATTR3resfail(XDR *, SETATTR3resfail*);
1020 extern  bool_t xdr_SETATTR3res(XDR *, SETATTR3res*);
1021 extern  bool_t xdr_LOOKUP3args(XDR *, LOOKUP3args*);
1022 extern  bool_t xdr_LOOKUP3resok(XDR *, LOOKUP3resok*);
1023 extern  bool_t xdr_LOOKUP3resfail(XDR *, LOOKUP3resfail*);
1024 extern  bool_t xdr_LOOKUP3res(XDR *, LOOKUP3res*);
1025 extern  bool_t xdr_ACCESS3args(XDR *, ACCESS3args*);
1026 extern  bool_t xdr_ACCESS3resok(XDR *, ACCESS3resok*);
1027 extern  bool_t xdr_ACCESS3resfail(XDR *, ACCESS3resfail*);
1028 extern  bool_t xdr_ACCESS3res(XDR *, ACCESS3res*);
1029 extern  bool_t xdr_READLINK3args(XDR *, READLINK3args*);
1030 extern  bool_t xdr_READLINK3resok(XDR *, READLINK3resok*);
1031 extern  bool_t xdr_READLINK3resfail(XDR *, READLINK3resfail*);
1032 extern  bool_t xdr_READLINK3res(XDR *, READLINK3res*);
1033 extern  bool_t xdr_READ3args(XDR *, READ3args*);
1034 extern  bool_t xdr_READ3resok(XDR *, READ3resok*);
1035 extern  bool_t xdr_READ3resfail(XDR *, READ3resfail*);
1036 extern  bool_t xdr_READ3res(XDR *, READ3res*);
1037 extern  bool_t xdr_WRITE3args(XDR *, WRITE3args*);
1038 extern  bool_t xdr_WRITE3resok(XDR *, WRITE3resok*);
1039 extern  bool_t xdr_WRITE3resfail(XDR *, WRITE3resfail*);
1040 extern  bool_t xdr_WRITE3res(XDR *, WRITE3res*);
1041 extern  bool_t xdr_createhow3(XDR *, createhow3*);
1042 extern  bool_t xdr_CREATE3args(XDR *, CREATE3args*);
1043 extern  bool_t xdr_CREATE3resok(XDR *, CREATE3resok*);
1044 extern  bool_t xdr_CREATE3resfail(XDR *, CREATE3resfail*);
1045 extern  bool_t xdr_CREATE3res(XDR *, CREATE3res*);
1046 extern  bool_t xdr_MKDIR3args(XDR *, MKDIR3args*);
1047 extern  bool_t xdr_MKDIR3resok(XDR *, MKDIR3resok*);
1048 extern  bool_t xdr_MKDIR3resfail(XDR *, MKDIR3resfail*);
1049 extern  bool_t xdr_MKDIR3res(XDR *, MKDIR3res*);
1050 extern  bool_t xdr_symlinkdata3(XDR *, symlinkdata3*);
1051 extern  bool_t xdr_SYMLINK3args(XDR *, SYMLINK3args*);
1052 extern  bool_t xdr_SYMLINK3resok(XDR *, SYMLINK3resok*);
1053 extern  bool_t xdr_SYMLINK3resfail(XDR *, SYMLINK3resfail*);
1054 extern  bool_t xdr_SYMLINK3res(XDR *, SYMLINK3res*);
1055 extern  bool_t xdr_devicedata3(XDR *, devicedata3*);
1056 extern  bool_t xdr_mknoddata3(XDR *, mknoddata3*);
1057 extern  bool_t xdr_MKNOD3args(XDR *, MKNOD3args*);
1058 extern  bool_t xdr_MKNOD3resok(XDR *, MKNOD3resok*);
1059 extern  bool_t xdr_MKNOD3resfail(XDR *, MKNOD3resfail*);
1060 extern  bool_t xdr_MKNOD3res(XDR *, MKNOD3res*);
1061 extern  bool_t xdr_REMOVE3args(XDR *, REMOVE3args*);
1062 extern  bool_t xdr_REMOVE3resok(XDR *, REMOVE3resok*);
1063 extern  bool_t xdr_REMOVE3resfail(XDR *, REMOVE3resfail*);
1064 extern  bool_t xdr_REMOVE3res(XDR *, REMOVE3res*);
1065 extern  bool_t xdr_RMDIR3args(XDR *, RMDIR3args*);
1066 extern  bool_t xdr_RMDIR3resok(XDR *, RMDIR3resok*);
1067 extern  bool_t xdr_RMDIR3resfail(XDR *, RMDIR3resfail*);
1068 extern  bool_t xdr_RMDIR3res(XDR *, RMDIR3res*);
1069 extern  bool_t xdr_RENAME3args(XDR *, RENAME3args*);
1070 extern  bool_t xdr_RENAME3resok(XDR *, RENAME3resok*);
1071 extern  bool_t xdr_RENAME3resfail(XDR *, RENAME3resfail*);
1072 extern  bool_t xdr_RENAME3res(XDR *, RENAME3res*);
1073 extern  bool_t xdr_LINK3args(XDR *, LINK3args*);
1074 extern  bool_t xdr_LINK3resok(XDR *, LINK3resok*);
1075 extern  bool_t xdr_LINK3resfail(XDR *, LINK3resfail*);
1076 extern  bool_t xdr_LINK3res(XDR *, LINK3res*);
1077 extern  bool_t xdr_READDIR3args(XDR *, READDIR3args*);
1078 extern  bool_t xdr_entry3(XDR *, entry3*);
1079 extern  bool_t xdr_dirlist3(XDR *, dirlist3*);
1080 extern  bool_t xdr_READDIR3resok(XDR *, READDIR3resok*);
1081 extern  bool_t xdr_READDIR3resfail(XDR *, READDIR3resfail*);
1082 extern  bool_t xdr_READDIR3res(XDR *, READDIR3res*);
1083 extern  bool_t xdr_READDIRPLUS3args(XDR *, READDIRPLUS3args*);
1084 extern  bool_t xdr_entryplus3(XDR *, entryplus3*);
1085 extern  bool_t xdr_dirlistplus3(XDR *, dirlistplus3*);
1086 extern  bool_t xdr_READDIRPLUS3resok(XDR *, READDIRPLUS3resok*);
1087 extern  bool_t xdr_READDIRPLUS3resfail(XDR *, READDIRPLUS3resfail*);
1088 extern  bool_t xdr_READDIRPLUS3res(XDR *, READDIRPLUS3res*);
1089 extern  bool_t xdr_FSSTAT3args(XDR *, FSSTAT3args*);
1090 extern  bool_t xdr_FSSTAT3resok(XDR *, FSSTAT3resok*);
1091 extern  bool_t xdr_FSSTAT3resfail(XDR *, FSSTAT3resfail*);
1092 extern  bool_t xdr_FSSTAT3res(XDR *, FSSTAT3res*);
1093 extern  bool_t xdr_FSINFO3args(XDR *, FSINFO3args*);
1094 extern  bool_t xdr_FSINFO3resok(XDR *, FSINFO3resok*);
1095 extern  bool_t xdr_FSINFO3resfail(XDR *, FSINFO3resfail*);
1096 extern  bool_t xdr_FSINFO3res(XDR *, FSINFO3res*);
1097 extern  bool_t xdr_PATHCONF3args(XDR *, PATHCONF3args*);
1098 extern  bool_t xdr_PATHCONF3resok(XDR *, PATHCONF3resok*);
1099 extern  bool_t xdr_PATHCONF3resfail(XDR *, PATHCONF3resfail*);
1100 extern  bool_t xdr_PATHCONF3res(XDR *, PATHCONF3res*);
1101 extern  bool_t xdr_COMMIT3args(XDR *, COMMIT3args*);
1102 extern  bool_t xdr_COMMIT3resok(XDR *, COMMIT3resok*);
1103 extern  bool_t xdr_COMMIT3resfail(XDR *, COMMIT3resfail*);
1104 extern  bool_t xdr_COMMIT3res(XDR *, COMMIT3res*);
1105 
1106 #ifdef __cplusplus
1107 }
1108 #endif
1109 
1110 #endif /* !_NFS_H_RPCGEN */
1111