Version increased to unfs3_0.9.22+dfsg-1maemo3
[unfs3] / unfs3 / nfs.h
1 /*
2  * UNFS3 NFS protocol definitions
3  * Generated by rpcgen
4  */
5
6 #ifndef _NFS_PROT_H_RPCGEN
7 #define _NFS_PROT_H_RPCGEN
8
9 /* for lack of a better place */
10 #ifdef __GNUC__
11 #define U(x) x __attribute__ ((unused))
12 #else
13 #define U(x) x
14 #endif
15
16 #if HAVE_STDINT_H == 1
17 #include <stdint.h>
18 #endif
19
20 #include <rpc/rpc.h>
21
22 #define UNIX_PATH_MAX 108
23
24 #define NFS_PORT 2049
25 #define NFS_MAXDATA_TCP 524288
26 #define NFS_MAXDATA_UDP 32768
27 #define NFS_MAX_UDP_PACKET (NFS_MAXDATA_UDP + 4096) /* The extra 4096 bytes are for the RPC header */
28 #define NFS_MAXPATHLEN 1024
29 #define NFS_MAXNAMLEN 255
30 #define NFS_FIFO_DEV -1
31 #define NFSMODE_FMT 0170000
32 #define NFSMODE_DIR 0040000
33 #define NFSMODE_CHR 0020000
34 #define NFSMODE_BLK 0060000
35 #define NFSMODE_REG 0100000
36 #define NFSMODE_LNK 0120000
37 #define NFSMODE_SOCK 0140000
38 #define NFSMODE_FIFO 0010000
39
40 typedef char *filename;
41
42 typedef char *nfspath;
43 #define NFS3_FHSIZE 64
44 #define NFS3_COOKIEVERFSIZE 8
45 #define NFS3_CREATEVERFSIZE 8
46 #define NFS3_WRITEVERFSIZE 8
47
48 #if HAVE_UINT64 == 0
49 typedef uint64_t uint64;
50 #endif
51
52 #if HAVE_INT64 == 0
53 typedef int64_t int64;
54 #endif
55
56 #if HAVE_UINT32 == 0
57 #if HAVE_XDR_U_LONG == 1
58 typedef u_long uint32;
59 #else
60 typedef uint32_t uint32;
61 #endif
62 #endif
63
64 #if HAVE_INT32 == 0
65 #if HAVE_XDR_LONG == 1
66 typedef long int32;
67 #else
68 typedef int32_t int32;
69 #endif
70 #endif
71
72 typedef char *filename3;
73
74 typedef char *nfspath3;
75
76 typedef uint64 fileid3;
77
78 typedef uint64 cookie3;
79
80 typedef char cookieverf3[NFS3_COOKIEVERFSIZE];
81
82 typedef char createverf3[NFS3_CREATEVERFSIZE];
83
84 typedef char writeverf3[NFS3_WRITEVERFSIZE];
85
86 typedef uint32 uid3;
87
88 typedef uint32 gid3;
89
90 typedef uint64 size3;
91
92 typedef uint64 offset3;
93
94 typedef uint32 mode3;
95
96 typedef uint32 count3;
97
98 enum nfsstat3 {
99         NFS3_OK = 0,
100         NFS3ERR_PERM = 1,
101         NFS3ERR_NOENT = 2,
102         NFS3ERR_IO = 5,
103         NFS3ERR_NXIO = 6,
104         NFS3ERR_ACCES = 13,
105         NFS3ERR_EXIST = 17,
106         NFS3ERR_XDEV = 18,
107         NFS3ERR_NODEV = 19,
108         NFS3ERR_NOTDIR = 20,
109         NFS3ERR_ISDIR = 21,
110         NFS3ERR_INVAL = 22,
111         NFS3ERR_FBIG = 27,
112         NFS3ERR_NOSPC = 28,
113         NFS3ERR_ROFS = 30,
114         NFS3ERR_MLINK = 31,
115         NFS3ERR_NAMETOOLONG = 63,
116         NFS3ERR_NOTEMPTY = 66,
117         NFS3ERR_DQUOT = 69,
118         NFS3ERR_STALE = 70,
119         NFS3ERR_REMOTE = 71,
120         NFS3ERR_BADHANDLE = 10001,
121         NFS3ERR_NOT_SYNC = 10002,
122         NFS3ERR_BAD_COOKIE = 10003,
123         NFS3ERR_NOTSUPP = 10004,
124         NFS3ERR_TOOSMALL = 10005,
125         NFS3ERR_SERVERFAULT = 10006,
126         NFS3ERR_BADTYPE = 10007,
127         NFS3ERR_JUKEBOX = 10008,
128 };
129 typedef enum nfsstat3 nfsstat3;
130
131 enum ftype3 {
132         NF3REG = 1,
133         NF3DIR = 2,
134         NF3BLK = 3,
135         NF3CHR = 4,
136         NF3LNK = 5,
137         NF3SOCK = 6,
138         NF3FIFO = 7,
139 };
140 typedef enum ftype3 ftype3;
141
142 struct specdata3 {
143         uint32 specdata1;
144         uint32 specdata2;
145 };
146 typedef struct specdata3 specdata3;
147
148 struct nfs_fh3 {
149         struct {
150                 u_int data_len;
151                 char *data_val;
152         } data;
153 };
154 typedef struct nfs_fh3 nfs_fh3;
155
156 struct nfstime3 {
157         uint32 seconds;
158         uint32 nseconds;
159 };
160 typedef struct nfstime3 nfstime3;
161
162 struct fattr3 {
163         ftype3 type;
164         mode3 mode;
165         uint32 nlink;
166         uid3 uid;
167         gid3 gid;
168         size3 size;
169         size3 used;
170         specdata3 rdev;
171         uint64 fsid;
172         fileid3 fileid;
173         nfstime3 atime;
174         nfstime3 mtime;
175         nfstime3 ctime;
176 };
177 typedef struct fattr3 fattr3;
178
179 struct post_op_attr {
180         bool_t attributes_follow;
181         union {
182                 fattr3 attributes;
183         } post_op_attr_u;
184 };
185 typedef struct post_op_attr post_op_attr;
186
187 struct wcc_attr {
188         size3 size;
189         nfstime3 mtime;
190         nfstime3 ctime;
191 };
192 typedef struct wcc_attr wcc_attr;
193
194 struct pre_op_attr {
195         bool_t attributes_follow;
196         union {
197                 wcc_attr attributes;
198         } pre_op_attr_u;
199 };
200 typedef struct pre_op_attr pre_op_attr;
201
202 struct wcc_data {
203         pre_op_attr before;
204         post_op_attr after;
205 };
206 typedef struct wcc_data wcc_data;
207
208 struct post_op_fh3 {
209         bool_t handle_follows;
210         union {
211                 nfs_fh3 handle;
212         } post_op_fh3_u;
213 };
214 typedef struct post_op_fh3 post_op_fh3;
215
216 enum time_how {
217         DONT_CHANGE = 0,
218         SET_TO_SERVER_TIME = 1,
219         SET_TO_CLIENT_TIME = 2,
220 };
221 typedef enum time_how time_how;
222
223 struct set_mode3 {
224         bool_t set_it;
225         union {
226                 mode3 mode;
227         } set_mode3_u;
228 };
229 typedef struct set_mode3 set_mode3;
230
231 struct set_uid3 {
232         bool_t set_it;
233         union {
234                 uid3 uid;
235         } set_uid3_u;
236 };
237 typedef struct set_uid3 set_uid3;
238
239 struct set_gid3 {
240         bool_t set_it;
241         union {
242                 gid3 gid;
243         } set_gid3_u;
244 };
245 typedef struct set_gid3 set_gid3;
246
247 struct set_size3 {
248         bool_t set_it;
249         union {
250                 size3 size;
251         } set_size3_u;
252 };
253 typedef struct set_size3 set_size3;
254
255 struct set_atime {
256         time_how set_it;
257         union {
258                 nfstime3 atime;
259         } set_atime_u;
260 };
261 typedef struct set_atime set_atime;
262
263 struct set_mtime {
264         time_how set_it;
265         union {
266                 nfstime3 mtime;
267         } set_mtime_u;
268 };
269 typedef struct set_mtime set_mtime;
270
271 struct sattr3 {
272         set_mode3 mode;
273         set_uid3 uid;
274         set_gid3 gid;
275         set_size3 size;
276         set_atime atime;
277         set_mtime mtime;
278 };
279 typedef struct sattr3 sattr3;
280
281 struct diropargs3 {
282         nfs_fh3 dir;
283         filename3 name;
284 };
285 typedef struct diropargs3 diropargs3;
286
287 struct GETATTR3args {
288         nfs_fh3 object;
289 };
290 typedef struct GETATTR3args GETATTR3args;
291
292 struct GETATTR3resok {
293         fattr3 obj_attributes;
294 };
295 typedef struct GETATTR3resok GETATTR3resok;
296
297 struct GETATTR3res {
298         nfsstat3 status;
299         union {
300                 GETATTR3resok resok;
301         } GETATTR3res_u;
302 };
303 typedef struct GETATTR3res GETATTR3res;
304
305 struct sattrguard3 {
306         bool_t check;
307         union {
308                 nfstime3 obj_ctime;
309         } sattrguard3_u;
310 };
311 typedef struct sattrguard3 sattrguard3;
312
313 struct SETATTR3args {
314         nfs_fh3 object;
315         sattr3 new_attributes;
316         sattrguard3 guard;
317 };
318 typedef struct SETATTR3args SETATTR3args;
319
320 struct SETATTR3resok {
321         wcc_data obj_wcc;
322 };
323 typedef struct SETATTR3resok SETATTR3resok;
324
325 struct SETATTR3resfail {
326         wcc_data obj_wcc;
327 };
328 typedef struct SETATTR3resfail SETATTR3resfail;
329
330 struct SETATTR3res {
331         nfsstat3 status;
332         union {
333                 SETATTR3resok resok;
334                 SETATTR3resfail resfail;
335         } SETATTR3res_u;
336 };
337 typedef struct SETATTR3res SETATTR3res;
338
339 struct LOOKUP3args {
340         diropargs3 what;
341 };
342 typedef struct LOOKUP3args LOOKUP3args;
343
344 struct LOOKUP3resok {
345         post_op_attr dir_attributes;
346         nfs_fh3 object;
347         post_op_attr obj_attributes;
348 };
349 typedef struct LOOKUP3resok LOOKUP3resok;
350
351 struct LOOKUP3resfail {
352         post_op_attr dir_attributes;
353 };
354 typedef struct LOOKUP3resfail LOOKUP3resfail;
355
356 struct LOOKUP3res {
357         nfsstat3 status;
358         union {
359                 LOOKUP3resok resok;
360                 LOOKUP3resfail resfail;
361         } LOOKUP3res_u;
362 };
363 typedef struct LOOKUP3res LOOKUP3res;
364
365 #define ACCESS3_READ 0x0001
366 #define ACCESS3_LOOKUP 0x0002
367 #define ACCESS3_MODIFY 0x0004
368 #define ACCESS3_EXTEND 0x0008
369 #define ACCESS3_DELETE 0x0010
370 #define ACCESS3_EXECUTE 0x0020
371
372 struct ACCESS3args {
373         nfs_fh3 object;
374         uint32 access;
375 };
376 typedef struct ACCESS3args ACCESS3args;
377
378 struct ACCESS3resok {
379         post_op_attr obj_attributes;
380         uint32 access;
381 };
382 typedef struct ACCESS3resok ACCESS3resok;
383
384 struct ACCESS3resfail {
385         post_op_attr obj_attributes;
386 };
387 typedef struct ACCESS3resfail ACCESS3resfail;
388
389 struct ACCESS3res {
390         nfsstat3 status;
391         union {
392                 ACCESS3resok resok;
393                 ACCESS3resfail resfail;
394         } ACCESS3res_u;
395 };
396 typedef struct ACCESS3res ACCESS3res;
397
398 struct READLINK3args {
399         nfs_fh3 symlink;
400 };
401 typedef struct READLINK3args READLINK3args;
402
403 struct READLINK3resok {
404         post_op_attr symlink_attributes;
405         nfspath3 data;
406 };
407 typedef struct READLINK3resok READLINK3resok;
408
409 struct READLINK3resfail {
410         post_op_attr symlink_attributes;
411 };
412 typedef struct READLINK3resfail READLINK3resfail;
413
414 struct READLINK3res {
415         nfsstat3 status;
416         union {
417                 READLINK3resok resok;
418                 READLINK3resfail resfail;
419         } READLINK3res_u;
420 };
421 typedef struct READLINK3res READLINK3res;
422
423 struct READ3args {
424         nfs_fh3 file;
425         offset3 offset;
426         count3 count;
427 };
428 typedef struct READ3args READ3args;
429
430 struct READ3resok {
431         post_op_attr file_attributes;
432         count3 count;
433         bool_t eof;
434         struct {
435                 u_int data_len;
436                 char *data_val;
437         } data;
438 };
439 typedef struct READ3resok READ3resok;
440
441 struct READ3resfail {
442         post_op_attr file_attributes;
443 };
444 typedef struct READ3resfail READ3resfail;
445
446 struct READ3res {
447         nfsstat3 status;
448         union {
449                 READ3resok resok;
450                 READ3resfail resfail;
451         } READ3res_u;
452 };
453 typedef struct READ3res READ3res;
454
455 enum stable_how {
456         UNSTABLE = 0,
457         DATA_SYNC = 1,
458         FILE_SYNC = 2,
459 };
460 typedef enum stable_how stable_how;
461
462 struct WRITE3args {
463         nfs_fh3 file;
464         offset3 offset;
465         count3 count;
466         stable_how stable;
467         struct {
468                 u_int data_len;
469                 char *data_val;
470         } data;
471 };
472 typedef struct WRITE3args WRITE3args;
473
474 struct WRITE3resok {
475         wcc_data file_wcc;
476         count3 count;
477         stable_how committed;
478         writeverf3 verf;
479 };
480 typedef struct WRITE3resok WRITE3resok;
481
482 struct WRITE3resfail {
483         wcc_data file_wcc;
484 };
485 typedef struct WRITE3resfail WRITE3resfail;
486
487 struct WRITE3res {
488         nfsstat3 status;
489         union {
490                 WRITE3resok resok;
491                 WRITE3resfail resfail;
492         } WRITE3res_u;
493 };
494 typedef struct WRITE3res WRITE3res;
495
496 enum createmode3 {
497         UNCHECKED = 0,
498         GUARDED = 1,
499         EXCLUSIVE = 2,
500 };
501 typedef enum createmode3 createmode3;
502
503 struct createhow3 {
504         createmode3 mode;
505         union {
506                 sattr3 obj_attributes;
507                 createverf3 verf;
508         } createhow3_u;
509 };
510 typedef struct createhow3 createhow3;
511
512 struct CREATE3args {
513         diropargs3 where;
514         createhow3 how;
515 };
516 typedef struct CREATE3args CREATE3args;
517
518 struct CREATE3resok {
519         wcc_data dir_wcc;
520         post_op_fh3 obj;
521         post_op_attr obj_attributes;
522 };
523 typedef struct CREATE3resok CREATE3resok;
524
525 struct CREATE3resfail {
526         wcc_data dir_wcc;
527 };
528 typedef struct CREATE3resfail CREATE3resfail;
529
530 struct CREATE3res {
531         nfsstat3 status;
532         union {
533                 CREATE3resok resok;
534                 CREATE3resfail resfail;
535         } CREATE3res_u;
536 };
537 typedef struct CREATE3res CREATE3res;
538
539 struct MKDIR3args {
540         diropargs3 where;
541         sattr3 attributes;
542 };
543 typedef struct MKDIR3args MKDIR3args;
544
545 struct MKDIR3resok {
546         wcc_data dir_wcc;
547         post_op_fh3 obj;
548         post_op_attr obj_attributes;
549 };
550 typedef struct MKDIR3resok MKDIR3resok;
551
552 struct MKDIR3resfail {
553         wcc_data dir_wcc;
554 };
555 typedef struct MKDIR3resfail MKDIR3resfail;
556
557 struct MKDIR3res {
558         nfsstat3 status;
559         union {
560                 MKDIR3resok resok;
561                 MKDIR3resfail resfail;
562         } MKDIR3res_u;
563 };
564 typedef struct MKDIR3res MKDIR3res;
565
566 struct symlinkdata3 {
567         sattr3 symlink_attributes;
568         nfspath3 symlink_data;
569 };
570 typedef struct symlinkdata3 symlinkdata3;
571
572 struct SYMLINK3args {
573         diropargs3 where;
574         symlinkdata3 symlink;
575 };
576 typedef struct SYMLINK3args SYMLINK3args;
577
578 struct SYMLINK3resok {
579         wcc_data dir_wcc;
580         post_op_fh3 obj;
581         post_op_attr obj_attributes;
582 };
583 typedef struct SYMLINK3resok SYMLINK3resok;
584
585 struct SYMLINK3resfail {
586         wcc_data dir_wcc;
587 };
588 typedef struct SYMLINK3resfail SYMLINK3resfail;
589
590 struct SYMLINK3res {
591         nfsstat3 status;
592         union {
593                 SYMLINK3resok resok;
594                 SYMLINK3resfail resfail;
595         } SYMLINK3res_u;
596 };
597 typedef struct SYMLINK3res SYMLINK3res;
598
599 struct devicedata3 {
600         sattr3 dev_attributes;
601         specdata3 spec;
602 };
603 typedef struct devicedata3 devicedata3;
604
605 struct mknoddata3 {
606         ftype3 type;
607         union {
608                 devicedata3 device;
609                 sattr3 pipe_attributes;
610         } mknoddata3_u;
611 };
612 typedef struct mknoddata3 mknoddata3;
613
614 struct MKNOD3args {
615         diropargs3 where;
616         mknoddata3 what;
617 };
618 typedef struct MKNOD3args MKNOD3args;
619
620 struct MKNOD3resok {
621         wcc_data dir_wcc;
622         post_op_fh3 obj;
623         post_op_attr obj_attributes;
624 };
625 typedef struct MKNOD3resok MKNOD3resok;
626
627 struct MKNOD3resfail {
628         wcc_data dir_wcc;
629 };
630 typedef struct MKNOD3resfail MKNOD3resfail;
631
632 struct MKNOD3res {
633         nfsstat3 status;
634         union {
635                 MKNOD3resok resok;
636                 MKNOD3resfail resfail;
637         } MKNOD3res_u;
638 };
639 typedef struct MKNOD3res MKNOD3res;
640
641 struct REMOVE3args {
642         diropargs3 object;
643 };
644 typedef struct REMOVE3args REMOVE3args;
645
646 struct REMOVE3resok {
647         wcc_data dir_wcc;
648 };
649 typedef struct REMOVE3resok REMOVE3resok;
650
651 struct REMOVE3resfail {
652         wcc_data dir_wcc;
653 };
654 typedef struct REMOVE3resfail REMOVE3resfail;
655
656 struct REMOVE3res {
657         nfsstat3 status;
658         union {
659                 REMOVE3resok resok;
660                 REMOVE3resfail resfail;
661         } REMOVE3res_u;
662 };
663 typedef struct REMOVE3res REMOVE3res;
664
665 struct RMDIR3args {
666         diropargs3 object;
667 };
668 typedef struct RMDIR3args RMDIR3args;
669
670 struct RMDIR3resok {
671         wcc_data dir_wcc;
672 };
673 typedef struct RMDIR3resok RMDIR3resok;
674
675 struct RMDIR3resfail {
676         wcc_data dir_wcc;
677 };
678 typedef struct RMDIR3resfail RMDIR3resfail;
679
680 struct RMDIR3res {
681         nfsstat3 status;
682         union {
683                 RMDIR3resok resok;
684                 RMDIR3resfail resfail;
685         } RMDIR3res_u;
686 };
687 typedef struct RMDIR3res RMDIR3res;
688
689 struct RENAME3args {
690         diropargs3 from;
691         diropargs3 to;
692 };
693 typedef struct RENAME3args RENAME3args;
694
695 struct RENAME3resok {
696         wcc_data fromdir_wcc;
697         wcc_data todir_wcc;
698 };
699 typedef struct RENAME3resok RENAME3resok;
700
701 struct RENAME3resfail {
702         wcc_data fromdir_wcc;
703         wcc_data todir_wcc;
704 };
705 typedef struct RENAME3resfail RENAME3resfail;
706
707 struct RENAME3res {
708         nfsstat3 status;
709         union {
710                 RENAME3resok resok;
711                 RENAME3resfail resfail;
712         } RENAME3res_u;
713 };
714 typedef struct RENAME3res RENAME3res;
715
716 struct LINK3args {
717         nfs_fh3 file;
718         diropargs3 link;
719 };
720 typedef struct LINK3args LINK3args;
721
722 struct LINK3resok {
723         post_op_attr file_attributes;
724         wcc_data linkdir_wcc;
725 };
726 typedef struct LINK3resok LINK3resok;
727
728 struct LINK3resfail {
729         post_op_attr file_attributes;
730         wcc_data linkdir_wcc;
731 };
732 typedef struct LINK3resfail LINK3resfail;
733
734 struct LINK3res {
735         nfsstat3 status;
736         union {
737                 LINK3resok resok;
738                 LINK3resfail resfail;
739         } LINK3res_u;
740 };
741 typedef struct LINK3res LINK3res;
742
743 struct READDIR3args {
744         nfs_fh3 dir;
745         cookie3 cookie;
746         cookieverf3 cookieverf;
747         count3 count;
748 };
749 typedef struct READDIR3args READDIR3args;
750
751 struct entry3 {
752         fileid3 fileid;
753         filename3 name;
754         cookie3 cookie;
755         struct entry3 *nextentry;
756 };
757 typedef struct entry3 entry3;
758
759 struct dirlist3 {
760         entry3 *entries;
761         bool_t eof;
762 };
763 typedef struct dirlist3 dirlist3;
764
765 struct READDIR3resok {
766         post_op_attr dir_attributes;
767         cookieverf3 cookieverf;
768         dirlist3 reply;
769 };
770 typedef struct READDIR3resok READDIR3resok;
771
772 struct READDIR3resfail {
773         post_op_attr dir_attributes;
774 };
775 typedef struct READDIR3resfail READDIR3resfail;
776
777 struct READDIR3res {
778         nfsstat3 status;
779         union {
780                 READDIR3resok resok;
781                 READDIR3resfail resfail;
782         } READDIR3res_u;
783 };
784 typedef struct READDIR3res READDIR3res;
785
786 struct READDIRPLUS3args {
787         nfs_fh3 dir;
788         cookie3 cookie;
789         cookieverf3 cookieverf;
790         count3 dircount;
791         count3 maxcount;
792 };
793 typedef struct READDIRPLUS3args READDIRPLUS3args;
794
795 struct entryplus3 {
796         fileid3 fileid;
797         filename3 name;
798         cookie3 cookie;
799         post_op_attr name_attributes;
800         post_op_fh3 name_handle;
801         struct entryplus3 *nextentry;
802 };
803 typedef struct entryplus3 entryplus3;
804
805 struct dirlistplus3 {
806         entryplus3 *entries;
807         bool_t eof;
808 };
809 typedef struct dirlistplus3 dirlistplus3;
810
811 struct READDIRPLUS3resok {
812         post_op_attr dir_attributes;
813         cookieverf3 cookieverf;
814         dirlistplus3 reply;
815 };
816 typedef struct READDIRPLUS3resok READDIRPLUS3resok;
817
818 struct READDIRPLUS3resfail {
819         post_op_attr dir_attributes;
820 };
821 typedef struct READDIRPLUS3resfail READDIRPLUS3resfail;
822
823 struct READDIRPLUS3res {
824         nfsstat3 status;
825         union {
826                 READDIRPLUS3resok resok;
827                 READDIRPLUS3resfail resfail;
828         } READDIRPLUS3res_u;
829 };
830 typedef struct READDIRPLUS3res READDIRPLUS3res;
831
832 struct FSSTAT3args {
833         nfs_fh3 fsroot;
834 };
835 typedef struct FSSTAT3args FSSTAT3args;
836
837 struct FSSTAT3resok {
838         post_op_attr obj_attributes;
839         size3 tbytes;
840         size3 fbytes;
841         size3 abytes;
842         size3 tfiles;
843         size3 ffiles;
844         size3 afiles;
845         uint32 invarsec;
846 };
847 typedef struct FSSTAT3resok FSSTAT3resok;
848
849 struct FSSTAT3resfail {
850         post_op_attr obj_attributes;
851 };
852 typedef struct FSSTAT3resfail FSSTAT3resfail;
853
854 struct FSSTAT3res {
855         nfsstat3 status;
856         union {
857                 FSSTAT3resok resok;
858                 FSSTAT3resfail resfail;
859         } FSSTAT3res_u;
860 };
861 typedef struct FSSTAT3res FSSTAT3res;
862 #define FSF3_LINK 0x0001
863 #define FSF3_SYMLINK 0x0002
864 #define FSF3_HOMOGENEOUS 0x0008
865 #define FSF3_CANSETTIME 0x0010
866
867 struct FSINFO3args {
868         nfs_fh3 fsroot;
869 };
870 typedef struct FSINFO3args FSINFO3args;
871
872 struct FSINFO3resok {
873         post_op_attr obj_attributes;
874         uint32 rtmax;
875         uint32 rtpref;
876         uint32 rtmult;
877         uint32 wtmax;
878         uint32 wtpref;
879         uint32 wtmult;
880         uint32 dtpref;
881         size3 maxfilesize;
882         nfstime3 time_delta;
883         uint32 properties;
884 };
885 typedef struct FSINFO3resok FSINFO3resok;
886
887 struct FSINFO3resfail {
888         post_op_attr obj_attributes;
889 };
890 typedef struct FSINFO3resfail FSINFO3resfail;
891
892 struct FSINFO3res {
893         nfsstat3 status;
894         union {
895                 FSINFO3resok resok;
896                 FSINFO3resfail resfail;
897         } FSINFO3res_u;
898 };
899 typedef struct FSINFO3res FSINFO3res;
900
901 struct PATHCONF3args {
902         nfs_fh3 object;
903 };
904 typedef struct PATHCONF3args PATHCONF3args;
905
906 struct PATHCONF3resok {
907         post_op_attr obj_attributes;
908         uint32 linkmax;
909         uint32 name_max;
910         bool_t no_trunc;
911         bool_t chown_restricted;
912         bool_t case_insensitive;
913         bool_t case_preserving;
914 };
915 typedef struct PATHCONF3resok PATHCONF3resok;
916
917 struct PATHCONF3resfail {
918         post_op_attr obj_attributes;
919 };
920 typedef struct PATHCONF3resfail PATHCONF3resfail;
921
922 struct PATHCONF3res {
923         nfsstat3 status;
924         union {
925                 PATHCONF3resok resok;
926                 PATHCONF3resfail resfail;
927         } PATHCONF3res_u;
928 };
929 typedef struct PATHCONF3res PATHCONF3res;
930
931 struct COMMIT3args {
932         nfs_fh3 file;
933         offset3 offset;
934         count3 count;
935 };
936 typedef struct COMMIT3args COMMIT3args;
937
938 struct COMMIT3resok {
939         wcc_data file_wcc;
940         writeverf3 verf;
941 };
942 typedef struct COMMIT3resok COMMIT3resok;
943
944 struct COMMIT3resfail {
945         wcc_data file_wcc;
946 };
947 typedef struct COMMIT3resfail COMMIT3resfail;
948
949 struct COMMIT3res {
950         nfsstat3 status;
951         union {
952                 COMMIT3resok resok;
953                 COMMIT3resfail resfail;
954         } COMMIT3res_u;
955 };
956 typedef struct COMMIT3res COMMIT3res;
957
958 #define NFS3_PROGRAM 100003
959 #define NFS_V3 3
960
961 #define NFSPROC3_NULL 0
962 extern  void * nfsproc3_null_3_svc(void *, struct svc_req *);
963 #define NFSPROC3_GETATTR 1
964 extern  GETATTR3res * nfsproc3_getattr_3_svc(GETATTR3args *, struct svc_req *);
965 #define NFSPROC3_SETATTR 2
966 extern  SETATTR3res * nfsproc3_setattr_3_svc(SETATTR3args *, struct svc_req *);
967 #define NFSPROC3_LOOKUP 3
968 extern  LOOKUP3res * nfsproc3_lookup_3_svc(LOOKUP3args *, struct svc_req *);
969 #define NFSPROC3_ACCESS 4
970 extern  ACCESS3res * nfsproc3_access_3_svc(ACCESS3args *, struct svc_req *);
971 #define NFSPROC3_READLINK 5
972 extern  READLINK3res * nfsproc3_readlink_3_svc(READLINK3args *, struct svc_req *);
973 #define NFSPROC3_READ 6
974 extern  READ3res * nfsproc3_read_3_svc(READ3args *, struct svc_req *);
975 #define NFSPROC3_WRITE 7
976 extern  WRITE3res * nfsproc3_write_3_svc(WRITE3args *, struct svc_req *);
977 #define NFSPROC3_CREATE 8
978 extern  CREATE3res * nfsproc3_create_3_svc(CREATE3args *, struct svc_req *);
979 #define NFSPROC3_MKDIR 9
980 extern  MKDIR3res * nfsproc3_mkdir_3_svc(MKDIR3args *, struct svc_req *);
981 #define NFSPROC3_SYMLINK 10
982 extern  SYMLINK3res * nfsproc3_symlink_3_svc(SYMLINK3args *, struct svc_req *);
983 #define NFSPROC3_MKNOD 11
984 extern  MKNOD3res * nfsproc3_mknod_3_svc(MKNOD3args *, struct svc_req *);
985 #define NFSPROC3_REMOVE 12
986 extern  REMOVE3res * nfsproc3_remove_3_svc(REMOVE3args *, struct svc_req *);
987 #define NFSPROC3_RMDIR 13
988 extern  RMDIR3res * nfsproc3_rmdir_3_svc(RMDIR3args *, struct svc_req *);
989 #define NFSPROC3_RENAME 14
990 extern  RENAME3res * nfsproc3_rename_3_svc(RENAME3args *, struct svc_req *);
991 #define NFSPROC3_LINK 15
992 extern  LINK3res * nfsproc3_link_3_svc(LINK3args *, struct svc_req *);
993 #define NFSPROC3_READDIR 16
994 extern  READDIR3res * nfsproc3_readdir_3_svc(READDIR3args *, struct svc_req *);
995 #define NFSPROC3_READDIRPLUS 17
996 extern  READDIRPLUS3res * nfsproc3_readdirplus_3_svc(READDIRPLUS3args *, struct svc_req *);
997 #define NFSPROC3_FSSTAT 18
998 extern  FSSTAT3res * nfsproc3_fsstat_3_svc(FSSTAT3args *, struct svc_req *);
999 #define NFSPROC3_FSINFO 19
1000 extern  FSINFO3res * nfsproc3_fsinfo_3_svc(FSINFO3args *, struct svc_req *);
1001 #define NFSPROC3_PATHCONF 20
1002 extern  PATHCONF3res * nfsproc3_pathconf_3_svc(PATHCONF3args *, struct svc_req *);
1003 #define NFSPROC3_COMMIT 21
1004 extern  COMMIT3res * nfsproc3_commit_3_svc(COMMIT3args *, struct svc_req *);
1005 extern int nfs3_program_3_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
1006
1007 #endif /* !_NFS_PROT_H_RPCGEN */