1 /* copied from rfc 1813 */
3 const NFS3_FHSIZE = 64; /* Maximum bytes in a V3 file handle */
4 const NFS3_WRITEVERFSIZE = 8;
5 const NFS3_CREATEVERFSIZE = 8;
6 const NFS3_COOKIEVERFSIZE = 8;
8 typedef opaque cookieverf3[NFS3_COOKIEVERFSIZE];
10 typedef unsigned hyper uint64;
11 typedef uint64 cookie3;
14 opaque data<NFS3_FHSIZE>;
17 typedef string filename3<>;
34 typedef unsigned long uint32;
46 typedef uint64 fileid3;
74 union post_op_attr switch (bool attributes_follow) {
99 NFS3ERR_NAMETOOLONG = 63,
100 NFS3ERR_NOTEMPTY = 66,
104 NFS3ERR_BADHANDLE = 10001,
105 NFS3ERR_NOT_SYNC = 10002,
106 NFS3ERR_BAD_COOKIE = 10003,
107 NFS3ERR_NOTSUPP = 10004,
108 NFS3ERR_TOOSMALL = 10005,
109 NFS3ERR_SERVERFAULT = 10006,
110 NFS3ERR_BADTYPE = 10007,
111 NFS3ERR_JUKEBOX = 10008
120 typedef uint64 offset3;
122 typedef uint32 count3;
130 union pre_op_attr switch (bool attributes_follow) {
150 typedef opaque writeverf3[NFS3_WRITEVERFSIZE];
155 stable_how committed;
159 struct WRITE3resfail {
163 union WRITE3res switch (nfsstat3 status) {
167 WRITE3resfail resfail;
174 struct LOOKUP3resok {
176 post_op_attr obj_attributes;
177 post_op_attr dir_attributes;
180 struct LOOKUP3resfail {
181 post_op_attr dir_attributes;
186 union LOOKUP3res switch (nfsstat3 status) {
190 LOOKUP3resfail resfail;
199 struct COMMIT3resok {
204 struct COMMIT3resfail {
208 union COMMIT3res switch (nfsstat3 status) {
212 COMMIT3resfail resfail;
215 const ACCESS3_READ = 0x0001;
216 const ACCESS3_LOOKUP = 0x0002;
217 const ACCESS3_MODIFY = 0x0004;
218 const ACCESS3_EXTEND = 0x0008;
219 const ACCESS3_DELETE = 0x0010;
220 const ACCESS3_EXECUTE = 0x0020;
227 struct ACCESS3resok {
228 post_op_attr obj_attributes;
232 struct ACCESS3resfail {
233 post_op_attr obj_attributes;
236 union ACCESS3res switch (nfsstat3 status) {
240 ACCESS3resfail resfail;
243 struct GETATTR3args {
247 struct GETATTR3resok {
248 fattr3 obj_attributes;
251 union GETATTR3res switch (nfsstat3 status) {
262 SET_TO_SERVER_TIME = 1,
263 SET_TO_CLIENT_TIME = 2
266 union set_mode3 switch (bool set_it) {
273 union set_uid3 switch (bool set_it) {
280 union set_gid3 switch (bool set_it) {
287 union set_size3 switch (bool set_it) {
294 union set_atime switch (time_how set_it) {
295 case SET_TO_CLIENT_TIME:
301 union set_mtime switch (time_how set_it) {
302 case SET_TO_CLIENT_TIME:
324 typedef opaque createverf3[NFS3_CREATEVERFSIZE];
326 union createhow3 switch (createmode3 mode) {
329 sattr3 obj_attributes;
339 union post_op_fh3 switch (bool handle_follows) {
346 struct CREATE3resok {
348 post_op_attr obj_attributes;
352 struct CREATE3resfail {
356 union CREATE3res switch (nfsstat3 status) {
360 CREATE3resfail resfail;
367 struct REMOVE3resok {
371 struct REMOVE3resfail {
375 union REMOVE3res switch (nfsstat3 status) {
379 REMOVE3resfail resfail;
389 post_op_attr file_attributes;
395 struct READ3resfail {
396 post_op_attr file_attributes;
399 union READ3res switch (nfsstat3 status) {
403 READ3resfail resfail;
407 const FSF3_LINK = 0x0001;
408 const FSF3_SYMLINK = 0x0002;
409 const FSF3_HOMOGENEOUS = 0x0008;
410 const FSF3_CANSETTIME = 0x0010;
416 struct FSINFO3resok {
417 post_op_attr obj_attributes;
430 struct FSINFO3resfail {
431 post_op_attr obj_attributes;
434 union FSINFO3res switch (nfsstat3 status) {
438 FSINFO3resfail resfail;
446 struct FSSTAT3resok {
447 post_op_attr obj_attributes;
457 struct FSSTAT3resfail {
458 post_op_attr obj_attributes;
461 union FSSTAT3res switch (nfsstat3 status) {
465 FSSTAT3resfail resfail;
468 struct PATHCONF3args {
472 struct PATHCONF3resok {
473 post_op_attr obj_attributes;
477 bool chown_restricted;
478 bool case_insensitive;
479 bool case_preserving;
482 struct PATHCONF3resfail {
483 post_op_attr obj_attributes;
486 union PATHCONF3res switch (nfsstat3 status) {
488 PATHCONF3resok resok;
490 PATHCONF3resfail resfail;
493 typedef string nfspath3<>;
495 struct symlinkdata3 {
496 sattr3 symlink_attributes;
497 nfspath3 symlink_data;
500 struct SYMLINK3args {
502 symlinkdata3 symlink;
505 struct SYMLINK3resok {
507 post_op_attr obj_attributes;
511 struct SYMLINK3resfail {
515 union SYMLINK3res switch (nfsstat3 status) {
519 SYMLINK3resfail resfail;
523 struct READLINK3args {
527 struct READLINK3resok {
528 post_op_attr symlink_attributes;
532 struct READLINK3resfail {
533 post_op_attr symlink_attributes;
536 union READLINK3res switch (nfsstat3 status) {
538 READLINK3resok resok;
540 READLINK3resfail resfail;
545 sattr3 dev_attributes;
549 union mknoddata3 switch (ftype3 type) {
555 sattr3 pipe_attributes;
567 post_op_attr obj_attributes;
571 struct MKNOD3resfail {
575 union MKNOD3res switch (nfsstat3 status) {
579 MKNOD3resfail resfail;
590 post_op_attr obj_attributes;
594 struct MKDIR3resfail {
598 union MKDIR3res switch (nfsstat3 status) {
602 MKDIR3resfail resfail;
613 struct RMDIR3resfail {
617 union RMDIR3res switch (nfsstat3 status) {
621 RMDIR3resfail resfail;
629 struct RENAME3resok {
630 wcc_data fromdir_wcc;
634 struct RENAME3resfail {
635 wcc_data fromdir_wcc;
639 union RENAME3res switch (nfsstat3 status) {
643 RENAME3resfail resfail;
646 struct READDIRPLUS3args {
649 cookieverf3 cookieverf;
658 post_op_attr name_attributes;
659 post_op_fh3 name_handle;
660 entryplus3 *nextentry;
663 struct dirlistplus3 {
668 struct READDIRPLUS3resok {
669 post_op_attr dir_attributes;
670 cookieverf3 cookieverf;
675 struct READDIRPLUS3resfail {
676 post_op_attr dir_attributes;
679 union READDIRPLUS3res switch (nfsstat3 status) {
681 READDIRPLUS3resok resok;
683 READDIRPLUS3resfail resfail;
686 struct READDIR3args {
689 cookieverf3 cookieverf;
706 struct READDIR3resok {
707 post_op_attr dir_attributes;
708 cookieverf3 cookieverf;
712 struct READDIR3resfail {
713 post_op_attr dir_attributes;
716 union READDIR3res switch (nfsstat3 status) {
720 READDIR3resfail resfail;
729 post_op_attr file_attributes;
730 wcc_data linkdir_wcc;
733 struct LINK3resfail {
734 post_op_attr file_attributes;
735 wcc_data linkdir_wcc;
738 union LINK3res switch (nfsstat3 status) {
742 LINK3resfail resfail;
745 union sattrguard3 switch (bool check) {
752 struct SETATTR3args {
754 sattr3 new_attributes;
758 struct SETATTR3resok {
762 struct SETATTR3resfail {
766 union SETATTR3res switch (nfsstat3 status) {
770 SETATTR3resfail resfail;
773 program NFS_PROGRAM {
779 NFS3_GETATTR(GETATTR3args) = 1;
782 NFS3_SETATTR(SETATTR3args) = 2;
785 NFS3_LOOKUP(LOOKUP3args) = 3;
788 NFS3_ACCESS(ACCESS3args) = 4;
791 NFS3_READLINK(READLINK3args) = 5;
794 NFS3_READ(READ3args) = 6;
797 NFS3_WRITE(WRITE3args) = 7;
800 NFS3_CREATE(CREATE3args) = 8;
803 NFS3_MKDIR(MKDIR3args) = 9;
806 NFS3_SYMLINK(SYMLINK3args) = 10;
808 /* MKNOD3res NFSPROC3_MKNOD(MKNOD3args) = 11;*/
811 NFS3_REMOVE(REMOVE3args) = 12;
814 NFS3_RMDIR(RMDIR3args) = 13;
817 NFS3_RENAME(RENAME3args) = 14;
820 NFS3_LINK(LINK3args) = 15;
823 NFS3_READDIR(READDIR3args) = 16;
826 NFS3_READDIRPLUS(READDIRPLUS3args) = 17;
829 NFS3_FSSTAT(FSSTAT3args) = 18;
832 NFS3_FSINFO(FSINFO3args) = 19;
835 NFS3_PATHCONF(PATHCONF3args) = 20;
838 NFS3_COMMIT(COMMIT3args) = 21;