123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774 |
- %/* This file is copied from RFC1813
- % * Copyright 1995 Sun Micrososystems (I assume)
- % */
- const NFS3_FHSIZE = 64;
- const NFS3_COOKIEVERFSIZE = 8;
- const NFS3_CREATEVERFSIZE = 8;
- const NFS3_WRITEVERFSIZE = 8;
- const ACCESS3_READ = 0x0001;
- const ACCESS3_LOOKUP = 0x0002;
- const ACCESS3_MODIFY = 0x0004;
- const ACCESS3_EXTEND = 0x0008;
- const ACCESS3_DELETE = 0x0010;
- const ACCESS3_EXECUTE = 0x0020;
- const FSF3_LINK = 0x0001;
- const FSF3_SYMLINK = 0x0002;
- const FSF3_HOMOGENEOUS = 0x0008;
- const FSF3_CANSETTIME = 0x0010;
- typedef unsigned hyper uint64;
- typedef hyper int64;
- typedef unsigned long uint32;
- typedef long int32;
- typedef string filename3<>;
- typedef string nfspath3<>;
- typedef uint64 fileid3;
- typedef uint64 cookie3;
- typedef opaque cookieverf3[NFS3_COOKIEVERFSIZE];
- typedef opaque createverf3[NFS3_CREATEVERFSIZE];
- typedef opaque writeverf3[NFS3_WRITEVERFSIZE];
- typedef uint32 uid3;
- typedef uint32 gid3;
- typedef uint64 size3;
- typedef uint64 offset3;
- typedef uint32 mode3;
- typedef uint32 count3;
- enum nfsstat3 {
- NFS3_OK = 0,
- NFS3ERR_PERM = 1,
- NFS3ERR_NOENT = 2,
- NFS3ERR_IO = 5,
- NFS3ERR_NXIO = 6,
- NFS3ERR_ACCES = 13,
- NFS3ERR_EXIST = 17,
- NFS3ERR_XDEV = 18,
- NFS3ERR_NODEV = 19,
- NFS3ERR_NOTDIR = 20,
- NFS3ERR_ISDIR = 21,
- NFS3ERR_INVAL = 22,
- NFS3ERR_FBIG = 27,
- NFS3ERR_NOSPC = 28,
- NFS3ERR_ROFS = 30,
- NFS3ERR_MLINK = 31,
- NFS3ERR_NAMETOOLONG = 63,
- NFS3ERR_NOTEMPTY = 66,
- NFS3ERR_DQUOT = 69,
- NFS3ERR_STALE = 70,
- NFS3ERR_REMOTE = 71,
- NFS3ERR_BADHANDLE = 10001,
- NFS3ERR_NOT_SYNC = 10002,
- NFS3ERR_BAD_COOKIE = 10003,
- NFS3ERR_NOTSUPP = 10004,
- NFS3ERR_TOOSMALL = 10005,
- NFS3ERR_SERVERFAULT = 10006,
- NFS3ERR_BADTYPE = 10007,
- NFS3ERR_JUKEBOX = 10008
- };
- enum ftype3 {
- NFS3REG = 1,
- NFS3DIR = 2,
- NFS3BLK = 3,
- NFS3CHR = 4,
- NFS3LNK = 5,
- NFS3SOCK = 6,
- NFS3FIFO = 7
- };
- enum stable_how {
- UNSTABLE = 0,
- DATA_SYNC = 1,
- FILE_SYNC = 2
- };
- enum createmode3 {
- UNCHECKED = 0,
- GUARDED = 1,
- EXCLUSIVE = 2
- };
- struct specdata3 {
- uint32 specdata1;
- uint32 specdata2;
- };
- struct nfs_fh3 {
- opaque data<NFS3_FHSIZE>;
- };
- struct nfstime3 {
- uint32 seconds;
- uint32 nseconds;
- };
- struct fattr3 {
- ftype3 type;
- mode3 mode;
- uint32 nlink;
- uid3 uid;
- gid3 gid;
- size3 size;
- size3 used;
- specdata3 rdev;
- uint64 fsid;
- fileid3 fileid;
- nfstime3 atime;
- nfstime3 mtime;
- nfstime3 ctime;
- };
- union post_op_attr switch (bool attributes_follow) {
- case TRUE:
- fattr3 attributes;
- case FALSE:
- void;
- };
- struct wcc_attr {
- size3 size;
- nfstime3 mtime;
- nfstime3 ctime;
- };
- union pre_op_attr switch (bool attributes_follow) {
- case TRUE:
- wcc_attr attributes;
- case FALSE:
- void;
- };
- struct wcc_data {
- pre_op_attr before;
- post_op_attr after;
- };
- union post_op_fh3 switch (bool handle_follows) {
- case TRUE:
- nfs_fh3 handle;
- case FALSE:
- void;
- };
- enum time_how {
- DONT_CHANGE = 0,
- SET_TO_SERVER_TIME = 1,
- SET_TO_CLIENT_TIME = 2
- };
- union set_mode3 switch (bool set_it) {
- case TRUE:
- mode3 mode;
- default:
- void;
- };
- union set_uid3 switch (bool set_it) {
- case TRUE:
- uid3 uid;
- default:
- void;
- };
- union set_gid3 switch (bool set_it) {
- case TRUE:
- gid3 gid;
- default:
- void;
- };
- union set_size3 switch (bool set_it) {
- case TRUE:
- size3 size;
- default:
- void;
- };
- union set_atime switch (time_how set_it) {
- case SET_TO_CLIENT_TIME:
- nfstime3 atime;
- default:
- void;
- };
- union set_mtime switch (time_how set_it) {
- case SET_TO_CLIENT_TIME:
- nfstime3 mtime;
- default:
- void;
- };
- struct sattr3 {
- set_mode3 mode;
- set_uid3 uid;
- set_gid3 gid;
- set_size3 size;
- set_atime atime;
- set_mtime mtime;
- };
- struct diropargs3 {
- nfs_fh3 dir;
- filename3 name;
- };
- struct GETATTR3args {
- nfs_fh3 object;
- };
- struct GETATTR3resok {
- fattr3 obj_attributes;
- };
- union GETATTR3res switch (nfsstat3 status) {
- case NFS3_OK:
- GETATTR3resok resok;
- default:
- void;
- };
- union sattrguard3 switch (bool check) {
- case TRUE:
- nfstime3 obj_ctime;
- case FALSE:
- void;
- };
- struct SETATTR3args {
- nfs_fh3 object;
- sattr3 new_attributes;
- sattrguard3 guard;
- };
- struct SETATTR3resok {
- wcc_data obj_wcc;
- };
- struct SETATTR3resfail {
- wcc_data obj_wcc;
- };
- union SETATTR3res switch (nfsstat3 status) {
- case NFS3_OK:
- SETATTR3resok resok;
- default:
- SETATTR3resfail resfail;
- };
- struct LOOKUP3args {
- diropargs3 what;
- };
- struct LOOKUP3resok {
- nfs_fh3 object;
- post_op_attr obj_attributes;
- post_op_attr dir_attributes;
- };
- struct LOOKUP3resfail {
- post_op_attr dir_attributes;
- };
- union LOOKUP3res switch (nfsstat3 status) {
- case NFS3_OK:
- LOOKUP3resok resok;
- default:
- LOOKUP3resfail resfail;
- };
- struct ACCESS3args {
- nfs_fh3 object;
- uint32 access;
- };
- struct ACCESS3resok {
- post_op_attr obj_attributes;
- uint32 access;
- };
- struct ACCESS3resfail {
- post_op_attr obj_attributes;
- };
- union ACCESS3res switch (nfsstat3 status) {
- case NFS3_OK:
- ACCESS3resok resok;
- default:
- ACCESS3resfail resfail;
- };
- struct READLINK3args {
- nfs_fh3 symlink;
- };
- struct READLINK3resok {
- post_op_attr symlink_attributes;
- nfspath3 data;
- };
- struct READLINK3resfail {
- post_op_attr symlink_attributes;
- };
- union READLINK3res switch (nfsstat3 status) {
- case NFS3_OK:
- READLINK3resok resok;
- default:
- READLINK3resfail resfail;
- };
- struct READ3args {
- nfs_fh3 file;
- offset3 offset;
- count3 count;
- };
- struct READ3resok {
- post_op_attr file_attributes;
- count3 count;
- bool eof;
- opaque data<>;
- };
- struct READ3resfail {
- post_op_attr file_attributes;
- };
- union READ3res switch (nfsstat3 status) {
- case NFS3_OK:
- READ3resok resok;
- default:
- READ3resfail resfail;
- };
- struct WRITE3args {
- nfs_fh3 file;
- offset3 offset;
- count3 count;
- stable_how stable;
- opaque data<>;
- };
- struct WRITE3resok {
- wcc_data file_wcc;
- count3 count;
- stable_how committed;
- writeverf3 verf;
- };
- struct WRITE3resfail {
- wcc_data file_wcc;
- };
- union WRITE3res switch (nfsstat3 status) {
- case NFS3_OK:
- WRITE3resok resok;
- default:
- WRITE3resfail resfail;
- };
- union createhow3 switch (createmode3 mode) {
- case UNCHECKED:
- case GUARDED:
- sattr3 obj_attributes;
- case EXCLUSIVE:
- createverf3 verf;
- };
- struct CREATE3args {
- diropargs3 where;
- createhow3 how;
- };
- struct CREATE3resok {
- post_op_fh3 obj;
- post_op_attr obj_attributes;
- wcc_data dir_wcc;
- };
- struct CREATE3resfail {
- wcc_data dir_wcc;
- };
- union CREATE3res switch (nfsstat3 status) {
- case NFS3_OK:
- CREATE3resok resok;
- default:
- CREATE3resfail resfail;
- };
- struct MKDIR3args {
- diropargs3 where;
- sattr3 attributes;
- };
- struct MKDIR3resok {
- post_op_fh3 obj;
- post_op_attr obj_attributes;
- wcc_data dir_wcc;
- };
- struct MKDIR3resfail {
- wcc_data dir_wcc;
- };
- union MKDIR3res switch (nfsstat3 status) {
- case NFS3_OK:
- MKDIR3resok resok;
- default:
- MKDIR3resfail resfail;
- };
- struct symlinkdata3 {
- sattr3 symlink_attributes;
- nfspath3 symlink_data;
- };
- struct SYMLINK3args {
- diropargs3 where;
- symlinkdata3 symlink;
- };
- struct SYMLINK3resok {
- post_op_fh3 obj;
- post_op_attr obj_attributes;
- wcc_data dir_wcc;
- };
- struct SYMLINK3resfail {
- wcc_data dir_wcc;
- };
- union SYMLINK3res switch (nfsstat3 status) {
- case NFS3_OK:
- SYMLINK3resok resok;
- default:
- SYMLINK3resfail resfail;
- };
- struct devicedata3 {
- sattr3 dev_attributes;
- specdata3 spec;
- };
- union mknoddata3 switch (ftype3 type) {
- case NFS3CHR:
- case NFS3BLK:
- devicedata3 device;
- case NFS3SOCK:
- case NFS3FIFO:
- sattr3 pipe_attributes;
- default:
- void;
- };
- struct MKNOD3args {
- diropargs3 where;
- mknoddata3 what;
- };
- struct MKNOD3resok {
- post_op_fh3 obj;
- post_op_attr obj_attributes;
- wcc_data dir_wcc;
- };
- struct MKNOD3resfail {
- wcc_data dir_wcc;
- };
- union MKNOD3res switch (nfsstat3 status) {
- case NFS3_OK:
- MKNOD3resok resok;
- default:
- MKNOD3resfail resfail;
- };
- struct REMOVE3args {
- diropargs3 object;
- };
- struct REMOVE3resok {
- wcc_data dir_wcc;
- };
- struct REMOVE3resfail {
- wcc_data dir_wcc;
- };
- union REMOVE3res switch (nfsstat3 status) {
- case NFS3_OK:
- REMOVE3resok resok;
- default:
- REMOVE3resfail resfail;
- };
- struct RMDIR3args {
- diropargs3 object;
- };
- struct RMDIR3resok {
- wcc_data dir_wcc;
- };
- struct RMDIR3resfail {
- wcc_data dir_wcc;
- };
- union RMDIR3res switch (nfsstat3 status) {
- case NFS3_OK:
- RMDIR3resok resok;
- default:
- RMDIR3resfail resfail;
- };
- struct RENAME3args {
- diropargs3 from;
- diropargs3 to;
- };
- struct RENAME3resok {
- wcc_data fromdir_wcc;
- wcc_data todir_wcc;
- };
- struct RENAME3resfail {
- wcc_data fromdir_wcc;
- wcc_data todir_wcc;
- };
- union RENAME3res switch (nfsstat3 status) {
- case NFS3_OK:
- RENAME3resok resok;
- default:
- RENAME3resfail resfail;
- };
- struct LINK3args {
- nfs_fh3 file;
- diropargs3 link;
- };
- struct LINK3resok {
- post_op_attr file_attributes;
- wcc_data linkdir_wcc;
- };
- struct LINK3resfail {
- post_op_attr file_attributes;
- wcc_data linkdir_wcc;
- };
- union LINK3res switch (nfsstat3 status) {
- case NFS3_OK:
- LINK3resok resok;
- default:
- LINK3resfail resfail;
- };
- struct READDIR3args {
- nfs_fh3 dir;
- cookie3 cookie;
- cookieverf3 cookieverf;
- count3 count;
- };
- struct entry3 {
- fileid3 fileid;
- filename3 name;
- cookie3 cookie;
- entry3 *nextentry;
- };
- struct dirlist3 {
- entry3 *entries;
- bool eof;
- };
- struct READDIR3resok {
- post_op_attr dir_attributes;
- cookieverf3 cookieverf;
- dirlist3 reply;
- };
- struct READDIR3resfail {
- post_op_attr dir_attributes;
- };
- union READDIR3res switch (nfsstat3 status) {
- case NFS3_OK:
- READDIR3resok resok;
- default:
- READDIR3resfail resfail;
- };
- struct READDIRPLUS3args {
- nfs_fh3 dir;
- cookie3 cookie;
- cookieverf3 cookieverf;
- count3 dircount;
- count3 maxcount;
- };
- struct entryplus3 {
- fileid3 fileid;
- filename3 name;
- cookie3 cookie;
- post_op_attr name_attributes;
- post_op_fh3 name_handle;
- entryplus3 *nextentry;
- };
- struct dirlistplus3 {
- entryplus3 *entries;
- bool eof;
- };
- struct READDIRPLUS3resok {
- post_op_attr dir_attributes;
- cookieverf3 cookieverf;
- dirlistplus3 reply;
- };
- struct READDIRPLUS3resfail {
- post_op_attr dir_attributes;
- };
- union READDIRPLUS3res switch (nfsstat3 status) {
- case NFS3_OK:
- READDIRPLUS3resok resok;
- default:
- READDIRPLUS3resfail resfail;
- };
- struct FSSTAT3args {
- nfs_fh3 fsroot;
- };
- struct FSSTAT3resok {
- post_op_attr obj_attributes;
- size3 tbytes;
- size3 fbytes;
- size3 abytes;
- size3 tfiles;
- size3 ffiles;
- size3 afiles;
- uint32 invarsec;
- };
- struct FSSTAT3resfail {
- post_op_attr obj_attributes;
- };
- union FSSTAT3res switch (nfsstat3 status) {
- case NFS3_OK:
- FSSTAT3resok resok;
- default:
- FSSTAT3resfail resfail;
- };
- struct FSINFO3args {
- nfs_fh3 fsroot;
- };
- struct FSINFO3resok {
- post_op_attr obj_attributes;
- uint32 rtmax;
- uint32 rtpref;
- uint32 rtmult;
- uint32 wtmax;
- uint32 wtpref;
- uint32 wtmult;
- uint32 dtpref;
- size3 maxfilesize;
- nfstime3 time_delta;
- uint32 properties;
- };
- struct FSINFO3resfail {
- post_op_attr obj_attributes;
- };
- union FSINFO3res switch (nfsstat3 status) {
- case NFS3_OK:
- FSINFO3resok resok;
- default:
- FSINFO3resfail resfail;
- };
- struct PATHCONF3args {
- nfs_fh3 object;
- };
- struct PATHCONF3resok {
- post_op_attr obj_attributes;
- uint32 linkmax;
- uint32 name_max;
- bool no_trunc;
- bool chown_restricted;
- bool case_insensitive;
- bool case_preserving;
- };
- struct PATHCONF3resfail {
- post_op_attr obj_attributes;
- };
- union PATHCONF3res switch (nfsstat3 status) {
- case NFS3_OK:
- PATHCONF3resok resok;
- default:
- PATHCONF3resfail resfail;
- };
- struct COMMIT3args {
- nfs_fh3 file;
- offset3 offset;
- count3 count;
- };
- struct COMMIT3resok {
- wcc_data file_wcc;
- writeverf3 verf;
- };
- struct COMMIT3resfail {
- wcc_data file_wcc;
- };
- union COMMIT3res switch (nfsstat3 status) {
- case NFS3_OK:
- COMMIT3resok resok;
- default:
- COMMIT3resfail resfail;
- };
- program NFS_PROGRAM {
- version NFS_V3 {
- void NFSPROC3_NULL(void) = 0;
- GETATTR3res NFSPROC3_GETATTR(GETATTR3args) = 1;
- SETATTR3res NFSPROC3_SETATTR(SETATTR3args) = 2;
- LOOKUP3res NFSPROC3_LOOKUP(LOOKUP3args) = 3;
- ACCESS3res NFSPROC3_ACCESS(ACCESS3args) = 4;
- READLINK3res NFSPROC3_READLINK(READLINK3args) = 5;
- READ3res NFSPROC3_READ(READ3args) = 6;
- WRITE3res NFSPROC3_WRITE(WRITE3args) = 7;
- CREATE3res NFSPROC3_CREATE(CREATE3args) = 8;
- MKDIR3res NFSPROC3_MKDIR(MKDIR3args) = 9;
- SYMLINK3res NFSPROC3_SYMLINK(SYMLINK3args) = 10;
- MKNOD3res NFSPROC3_MKNOD(MKNOD3args) = 11;
- REMOVE3res NFSPROC3_REMOVE(REMOVE3args) = 12;
- RMDIR3res NFSPROC3_RMDIR(RMDIR3args) = 13;
- RENAME3res NFSPROC3_RENAME(RENAME3args) = 14;
- LINK3res NFSPROC3_LINK(LINK3args) = 15;
- READDIR3res NFSPROC3_READDIR(READDIR3args) = 16;
- READDIRPLUS3res NFSPROC3_READDIRPLUS(READDIRPLUS3args) = 17;
- FSSTAT3res NFSPROC3_FSSTAT(FSSTAT3args) = 18;
- FSINFO3res NFSPROC3_FSINFO(FSINFO3args) = 19;
- PATHCONF3res NFSPROC3_PATHCONF(PATHCONF3args) = 20;
- COMMIT3res NFSPROC3_COMMIT(COMMIT3args) = 21;
- } = 3;
- } = 100003;
|