nfs_prot.x revision 38879
11832Swollman/* 21832Swollman * Sun RPC is a product of Sun Microsystems, Inc. and is provided for 31832Swollman * unrestricted use provided that this legend is included on all tape 41832Swollman * media and as a part of the software program in whole or part. Users 51832Swollman * may copy or modify Sun RPC without charge, but are not authorized 61832Swollman * to license or distribute it to anyone else except as part of a product or 71832Swollman * program developed by the user. 81832Swollman * 91832Swollman * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE 101832Swollman * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR 111832Swollman * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. 121832Swollman * 131832Swollman * Sun RPC is provided with no support and without any obligation on the 141832Swollman * part of Sun Microsystems, Inc. to assist in its use, correction, 151832Swollman * modification or enhancement. 161832Swollman * 171832Swollman * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE 181832Swollman * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC 191832Swollman * OR ANY PART THEREOF. 201832Swollman * 211832Swollman * In no event will Sun Microsystems, Inc. be liable for any lost revenue 221832Swollman * or profits or other special, indirect and consequential damages, even if 231832Swollman * Sun has been advised of the possibility of such damages. 241832Swollman * 251832Swollman * Sun Microsystems, Inc. 261832Swollman * 2550 Garcia Avenue 271832Swollman * Mountain View, California 94043 281832Swollman */ 291832Swollman 301832Swollman#ifndef RPC_HDR 311832Swollman%#ifndef lint 321832Swollman%/*static char sccsid[] = "from: @(#)nfs_prot.x 1.2 87/10/12 Copyr 1987 Sun Micro";*/ 331832Swollman%/*static char sccsid[] = "from: @(#)nfs_prot.x 2.1 88/08/01 4.0 RPCSRC";*/ 3438879Sobrien%static char rcsid[] = "$Id: nfs_prot.x,v 1.4 1997/04/18 12:31:27 dfr Exp $"; 351832Swollman%#endif /* not lint */ 361832Swollman#endif 371832Swollman 381832Swollmanconst NFS_PORT = 2049; 391832Swollmanconst NFS_MAXDATA = 8192; 401832Swollmanconst NFS_MAXPATHLEN = 1024; 411832Swollmanconst NFS_MAXNAMLEN = 255; 421832Swollmanconst NFS_FHSIZE = 32; 431832Swollmanconst NFS_COOKIESIZE = 4; 441832Swollmanconst NFS_FIFO_DEV = -1; /* size kludge for named pipes */ 451832Swollman 461832Swollman/* 471832Swollman * File types 481832Swollman */ 491832Swollmanconst NFSMODE_FMT = 0170000; /* type of file */ 501832Swollmanconst NFSMODE_DIR = 0040000; /* directory */ 511832Swollmanconst NFSMODE_CHR = 0020000; /* character special */ 521832Swollmanconst NFSMODE_BLK = 0060000; /* block special */ 531832Swollmanconst NFSMODE_REG = 0100000; /* regular */ 541832Swollmanconst NFSMODE_LNK = 0120000; /* symbolic link */ 551832Swollmanconst NFSMODE_SOCK = 0140000; /* socket */ 561832Swollmanconst NFSMODE_FIFO = 0010000; /* fifo */ 571832Swollman 581832Swollman/* 591832Swollman * Error status 601832Swollman */ 611832Swollmanenum nfsstat { 621832Swollman NFS_OK= 0, /* no error */ 631832Swollman NFSERR_PERM=1, /* Not owner */ 641832Swollman NFSERR_NOENT=2, /* No such file or directory */ 651832Swollman NFSERR_IO=5, /* I/O error */ 661832Swollman NFSERR_NXIO=6, /* No such device or address */ 671832Swollman NFSERR_ACCES=13, /* Permission denied */ 681832Swollman NFSERR_EXIST=17, /* File exists */ 691832Swollman NFSERR_NODEV=19, /* No such device */ 701832Swollman NFSERR_NOTDIR=20, /* Not a directory*/ 711832Swollman NFSERR_ISDIR=21, /* Is a directory */ 721832Swollman NFSERR_FBIG=27, /* File too large */ 731832Swollman NFSERR_NOSPC=28, /* No space left on device */ 741832Swollman NFSERR_ROFS=30, /* Read-only file system */ 751832Swollman NFSERR_NAMETOOLONG=63, /* File name too long */ 761832Swollman NFSERR_NOTEMPTY=66, /* Directory not empty */ 771832Swollman NFSERR_DQUOT=69, /* Disc quota exceeded */ 781832Swollman NFSERR_STALE=70, /* Stale NFS file handle */ 791832Swollman NFSERR_WFLUSH=99 /* write cache flushed */ 801832Swollman}; 811832Swollman 821832Swollman/* 831832Swollman * File types 841832Swollman */ 851832Swollmanenum ftype { 861832Swollman NFNON = 0, /* non-file */ 871832Swollman NFREG = 1, /* regular file */ 881832Swollman NFDIR = 2, /* directory */ 891832Swollman NFBLK = 3, /* block special */ 901832Swollman NFCHR = 4, /* character special */ 911832Swollman NFLNK = 5, /* symbolic link */ 921832Swollman NFSOCK = 6, /* unix domain sockets */ 931832Swollman NFBAD = 7, /* unused */ 941832Swollman NFFIFO = 8 /* named pipe */ 951832Swollman}; 961832Swollman 971832Swollman/* 981832Swollman * File access handle 991832Swollman */ 1001832Swollmanstruct nfs_fh { 1011832Swollman opaque data[NFS_FHSIZE]; 1021832Swollman}; 1031832Swollman 1041832Swollman/* 1051832Swollman * Timeval 1061832Swollman */ 1071832Swollmanstruct nfstime { 1081832Swollman unsigned seconds; 1091832Swollman unsigned useconds; 1101832Swollman}; 1111832Swollman 1121832Swollman 1131832Swollman/* 1141832Swollman * File attributes 1151832Swollman */ 1161832Swollmanstruct fattr { 1171832Swollman ftype type; /* file type */ 1181832Swollman unsigned mode; /* protection mode bits */ 1191832Swollman unsigned nlink; /* # hard links */ 1201832Swollman unsigned uid; /* owner user id */ 1211832Swollman unsigned gid; /* owner group id */ 1221832Swollman unsigned size; /* file size in bytes */ 1231832Swollman unsigned blocksize; /* prefered block size */ 1241832Swollman unsigned rdev; /* special device # */ 1251832Swollman unsigned blocks; /* Kb of disk used by file */ 1261832Swollman unsigned fsid; /* device # */ 1271832Swollman unsigned fileid; /* inode # */ 1281832Swollman nfstime atime; /* time of last access */ 1291832Swollman nfstime mtime; /* time of last modification */ 1301832Swollman nfstime ctime; /* time of last change */ 1311832Swollman}; 1321832Swollman 1331832Swollman/* 1341832Swollman * File attributes which can be set 1351832Swollman */ 1361832Swollmanstruct sattr { 1371832Swollman unsigned mode; /* protection mode bits */ 1381832Swollman unsigned uid; /* owner user id */ 1391832Swollman unsigned gid; /* owner group id */ 1401832Swollman unsigned size; /* file size in bytes */ 1411832Swollman nfstime atime; /* time of last access */ 1421832Swollman nfstime mtime; /* time of last modification */ 1431832Swollman}; 1441832Swollman 1451832Swollman 1461832Swollmantypedef string filename<NFS_MAXNAMLEN>; 1471832Swollmantypedef string nfspath<NFS_MAXPATHLEN>; 1481832Swollman 1491832Swollman/* 1501832Swollman * Reply status with file attributes 1511832Swollman */ 1521832Swollmanunion attrstat switch (nfsstat status) { 1531832Swollmancase NFS_OK: 1541832Swollman fattr attributes; 1551832Swollmandefault: 1561832Swollman void; 1571832Swollman}; 1581832Swollman 1591832Swollmanstruct sattrargs { 1601832Swollman nfs_fh file; 1611832Swollman sattr attributes; 1621832Swollman}; 1631832Swollman 1641832Swollman/* 1651832Swollman * Arguments for directory operations 1661832Swollman */ 1671832Swollmanstruct diropargs { 1681832Swollman nfs_fh dir; /* directory file handle */ 1691832Swollman filename name; /* name (up to NFS_MAXNAMLEN bytes) */ 1701832Swollman}; 1711832Swollman 1721832Swollmanstruct diropokres { 1731832Swollman nfs_fh file; 1741832Swollman fattr attributes; 1751832Swollman}; 1761832Swollman 1771832Swollman/* 1781832Swollman * Results from directory operation 1791832Swollman */ 1801832Swollmanunion diropres switch (nfsstat status) { 1811832Swollmancase NFS_OK: 1821832Swollman diropokres diropres; 1831832Swollmandefault: 1841832Swollman void; 1851832Swollman}; 1861832Swollman 1871832Swollmanunion readlinkres switch (nfsstat status) { 1881832Swollmancase NFS_OK: 1891832Swollman nfspath data; 1901832Swollmandefault: 1911832Swollman void; 1921832Swollman}; 1931832Swollman 1941832Swollman/* 1951832Swollman * Arguments to remote read 1961832Swollman */ 1971832Swollmanstruct readargs { 1981832Swollman nfs_fh file; /* handle for file */ 1991832Swollman unsigned offset; /* byte offset in file */ 2001832Swollman unsigned count; /* immediate read count */ 2011832Swollman unsigned totalcount; /* total read count (from this offset)*/ 2021832Swollman}; 2031832Swollman 2041832Swollman/* 2051832Swollman * Status OK portion of remote read reply 2061832Swollman */ 2071832Swollmanstruct readokres { 2081832Swollman fattr attributes; /* attributes, need for pagin*/ 2091832Swollman opaque data<NFS_MAXDATA>; 2101832Swollman}; 2111832Swollman 2121832Swollmanunion readres switch (nfsstat status) { 2131832Swollmancase NFS_OK: 2141832Swollman readokres reply; 2151832Swollmandefault: 2161832Swollman void; 2171832Swollman}; 2181832Swollman 2191832Swollman/* 2201832Swollman * Arguments to remote write 2211832Swollman */ 2221832Swollmanstruct writeargs { 2231832Swollman nfs_fh file; /* handle for file */ 2241832Swollman unsigned beginoffset; /* beginning byte offset in file */ 2251832Swollman unsigned offset; /* current byte offset in file */ 2261832Swollman unsigned totalcount; /* total write count (to this offset)*/ 2271832Swollman opaque data<NFS_MAXDATA>; 2281832Swollman}; 2291832Swollman 2301832Swollmanstruct createargs { 2311832Swollman diropargs where; 2321832Swollman sattr attributes; 2331832Swollman}; 2341832Swollman 2351832Swollmanstruct renameargs { 2361832Swollman diropargs from; 2371832Swollman diropargs to; 2381832Swollman}; 2391832Swollman 2401832Swollmanstruct linkargs { 2411832Swollman nfs_fh from; 2421832Swollman diropargs to; 2431832Swollman}; 2441832Swollman 2451832Swollmanstruct symlinkargs { 2461832Swollman diropargs from; 2471832Swollman nfspath to; 2481832Swollman sattr attributes; 2491832Swollman}; 2501832Swollman 2511832Swollman 2521832Swollmantypedef opaque nfscookie[NFS_COOKIESIZE]; 2531832Swollman 2541832Swollman/* 2551832Swollman * Arguments to readdir 2561832Swollman */ 2571832Swollmanstruct readdirargs { 2581832Swollman nfs_fh dir; /* directory handle */ 2591832Swollman nfscookie cookie; 2601832Swollman unsigned count; /* number of directory bytes to read */ 2611832Swollman}; 2621832Swollman 2631832Swollmanstruct entry { 2641832Swollman unsigned fileid; 2651832Swollman filename name; 2661832Swollman nfscookie cookie; 2671832Swollman entry *nextentry; 2681832Swollman}; 2691832Swollman 2701832Swollmanstruct dirlist { 2711832Swollman entry *entries; 2721832Swollman bool eof; 2731832Swollman}; 2741832Swollman 2751832Swollmanunion readdirres switch (nfsstat status) { 2761832Swollmancase NFS_OK: 2771832Swollman dirlist reply; 2781832Swollmandefault: 2791832Swollman void; 2801832Swollman}; 2811832Swollman 2821832Swollmanstruct statfsokres { 2831832Swollman unsigned tsize; /* preferred transfer size in bytes */ 2841832Swollman unsigned bsize; /* fundamental file system block size */ 2851832Swollman unsigned blocks; /* total blocks in file system */ 2861832Swollman unsigned bfree; /* free blocks in fs */ 2871832Swollman unsigned bavail; /* free blocks avail to non-superuser */ 2881832Swollman}; 2891832Swollman 2901832Swollmanunion statfsres switch (nfsstat status) { 2911832Swollmancase NFS_OK: 2921832Swollman statfsokres reply; 2931832Swollmandefault: 2941832Swollman void; 2951832Swollman}; 2961832Swollman 29725000Sdfr#ifdef WANT_NFS3 29825000Sdfr 2991832Swollman/* 30025000Sdfr * NFSv3 constants and types 30125000Sdfr */ 30225000Sdfrconst NFS3_FHSIZE = 64; /* maximum size in bytes of a file handle */ 30325000Sdfrconst NFS3_COOKIEVERFSIZE = 8; /* size of a cookie verifier for READDIR */ 30425000Sdfrconst NFS3_CREATEVERFSIZE = 8; /* size of the verifier used for CREATE */ 30525000Sdfrconst NFS3_WRITEVERFSIZE = 8; /* size of the verifier used for WRITE */ 30625000Sdfr 30725000Sdfrtypedef unsigned hyper uint64; 30825000Sdfrtypedef hyper int64; 30925000Sdfrtypedef unsigned long uint32; 31025000Sdfrtypedef long int32; 31125000Sdfrtypedef string filename3<>; 31225000Sdfrtypedef string nfspath3<>; 31325000Sdfrtypedef uint64 fileid3; 31425000Sdfrtypedef uint64 cookie3; 31525000Sdfrtypedef opaque cookieverf3[NFS3_COOKIEVERFSIZE]; 31625000Sdfrtypedef opaque createverf3[NFS3_CREATEVERFSIZE]; 31725000Sdfrtypedef opaque writeverf3[NFS3_WRITEVERFSIZE]; 31825000Sdfrtypedef uint32 uid3; 31925000Sdfrtypedef uint32 gid3; 32025000Sdfrtypedef uint64 size3; 32125000Sdfrtypedef uint64 offset3; 32225000Sdfrtypedef uint32 mode3; 32325000Sdfrtypedef uint32 count3; 32425000Sdfr 32525000Sdfr/* 32625000Sdfr * Error status (v3) 32725000Sdfr */ 32825000Sdfrenum nfsstat3 { 32925000Sdfr NFS3_OK = 0, 33025000Sdfr NFS3ERR_PERM = 1, 33125000Sdfr NFS3ERR_NOENT = 2, 33225000Sdfr NFS3ERR_IO = 5, 33325000Sdfr NFS3ERR_NXIO = 6, 33425000Sdfr NFS3ERR_ACCES = 13, 33525000Sdfr NFS3ERR_EXIST = 17, 33625000Sdfr NFS3ERR_XDEV = 18, 33725000Sdfr NFS3ERR_NODEV = 19, 33825000Sdfr NFS3ERR_NOTDIR = 20, 33925000Sdfr NFS3ERR_ISDIR = 21, 34025000Sdfr NFS3ERR_INVAL = 22, 34125000Sdfr NFS3ERR_FBIG = 27, 34225000Sdfr NFS3ERR_NOSPC = 28, 34325000Sdfr NFS3ERR_ROFS = 30, 34425000Sdfr NFS3ERR_MLINK = 31, 34525000Sdfr NFS3ERR_NAMETOOLONG = 63, 34625000Sdfr NFS3ERR_NOTEMPTY = 66, 34725000Sdfr NFS3ERR_DQUOT = 69, 34825000Sdfr NFS3ERR_STALE = 70, 34925000Sdfr NFS3ERR_REMOTE = 71, 35025000Sdfr NFS3ERR_BADHANDLE = 10001, 35125000Sdfr NFS3ERR_NOT_SYNC = 10002, 35225000Sdfr NFS3ERR_BAD_COOKIE = 10003, 35325000Sdfr NFS3ERR_NOTSUPP = 10004, 35425000Sdfr NFS3ERR_TOOSMALL = 10005, 35525000Sdfr NFS3ERR_SERVERFAULT = 10006, 35625000Sdfr NFS3ERR_BADTYPE = 10007, 35725000Sdfr NFS3ERR_JUKEBOX = 10008 35825000Sdfr}; 35925000Sdfr 36025000Sdfr/* 36125000Sdfr * File types (v3) 36225000Sdfr */ 36325000Sdfrenum ftype3 { 36425000Sdfr NF3REG = 1, /* regular file */ 36525000Sdfr NF3DIR = 2, /* directory */ 36625000Sdfr NF3BLK = 3, /* block special */ 36725000Sdfr NF3CHR = 4, /* character special */ 36825000Sdfr NF3LNK = 5, /* symbolic link */ 36925000Sdfr NF3SOCK = 6, /* unix domain sockets */ 37025000Sdfr NF3FIFO = 7 /* named pipe */ 37125000Sdfr}; 37225000Sdfr 37325000Sdfrstruct specdata3 { 37425000Sdfr uint32 specdata1; 37525000Sdfr uint32 specdata2; 37625000Sdfr}; 37725000Sdfr 37825000Sdfr/* 37925000Sdfr * File access handle (v3) 38025000Sdfr */ 38125000Sdfrstruct nfs_fh3 { 38225000Sdfr opaque data<NFS3_FHSIZE>; 38325000Sdfr}; 38425000Sdfr 38525000Sdfr/* 38625000Sdfr * Timeval (v3) 38725000Sdfr */ 38825000Sdfrstruct nfstime3 { 38925000Sdfr uint32 seconds; 39025000Sdfr uint32 nseconds; 39125000Sdfr}; 39225000Sdfr 39325000Sdfr 39425000Sdfr/* 39525000Sdfr * File attributes (v3) 39625000Sdfr */ 39725000Sdfrstruct fattr3 { 39825000Sdfr ftype3 type; /* file type */ 39925000Sdfr mode3 mode; /* protection mode bits */ 40025000Sdfr uint32 nlink; /* # hard links */ 40125000Sdfr uid3 uid; /* owner user id */ 40225000Sdfr gid3 gid; /* owner group id */ 40325000Sdfr size3 size; /* file size in bytes */ 40425000Sdfr size3 used; /* prefered block size */ 40525000Sdfr specdata3 rdev; /* special device # */ 40625000Sdfr uint64 fsid; /* device # */ 40725000Sdfr fileid3 fileid; /* inode # */ 40825000Sdfr nfstime3 atime; /* time of last access */ 40925000Sdfr nfstime3 mtime; /* time of last modification */ 41025000Sdfr nfstime3 ctime; /* time of last change */ 41125000Sdfr}; 41225000Sdfr 41325000Sdfrunion post_op_attr switch (bool attributes_follow) { 41425000Sdfrcase TRUE: 41525000Sdfr fattr3 attributes; 41625000Sdfrcase FALSE: 41725000Sdfr void; 41825000Sdfr}; 41925000Sdfr 42025000Sdfrstruct wcc_attr { 42125000Sdfr size3 size; 42225000Sdfr nfstime3 mtime; 42325000Sdfr nfstime3 ctime; 42425000Sdfr}; 42525000Sdfr 42625000Sdfrunion pre_op_attr switch (bool attributes_follow) { 42725000Sdfrcase TRUE: 42825000Sdfr wcc_attr attributes; 42925000Sdfrcase FALSE: 43025000Sdfr void; 43125000Sdfr}; 43225000Sdfr 43325000Sdfrstruct wcc_data { 43425000Sdfr pre_op_attr before; 43525000Sdfr post_op_attr after; 43625000Sdfr}; 43725000Sdfr 43825000Sdfrunion post_op_fh3 switch (bool handle_follows) { 43925000Sdfrcase TRUE: 44025000Sdfr nfs_fh3 handle; 44125000Sdfrcase FALSE: 44225000Sdfr void; 44325000Sdfr}; 44425000Sdfr 44525000Sdfr/* 44625000Sdfr * File attributes which can be set (v3) 44725000Sdfr */ 44825000Sdfrenum time_how { 44925000Sdfr DONT_CHANGE = 0, 45025000Sdfr SET_TO_SERVER_TIME = 1, 45125000Sdfr SET_TO_CLIENT_TIME = 2 45225000Sdfr}; 45325000Sdfr 45425000Sdfrunion set_mode3 switch (bool set_it) { 45525000Sdfrcase TRUE: 45625000Sdfr mode3 mode; 45725000Sdfrdefault: 45825000Sdfr void; 45925000Sdfr}; 46025000Sdfr 46125000Sdfrunion set_uid3 switch (bool set_it) { 46225000Sdfrcase TRUE: 46338879Sobrien uid3 uid; 46425000Sdfrdefault: 46525000Sdfr void; 46625000Sdfr}; 46725000Sdfr 46825000Sdfrunion set_gid3 switch (bool set_it) { 46925000Sdfrcase TRUE: 47038879Sobrien gid3 gid; 47125000Sdfrdefault: 47225000Sdfr void; 47325000Sdfr}; 47425000Sdfr 47525000Sdfrunion set_size3 switch (bool set_it) { 47625000Sdfrcase TRUE: 47738879Sobrien size3 size; 47825000Sdfrdefault: 47925000Sdfr void; 48025000Sdfr}; 48125000Sdfr 48225000Sdfrunion set_atime switch (time_how set_it) { 48325000Sdfrcase SET_TO_CLIENT_TIME: 48438879Sobrien nfstime3 atime; 48525000Sdfrdefault: 48625000Sdfr void; 48725000Sdfr}; 48825000Sdfr 48925000Sdfrunion set_mtime switch (time_how set_it) { 49025000Sdfrcase SET_TO_CLIENT_TIME: 49138879Sobrien nfstime3 mtime; 49225000Sdfrdefault: 49325000Sdfr void; 49425000Sdfr}; 49525000Sdfr 49625000Sdfrstruct sattr3 { 49725000Sdfr set_mode3 mode; 49825000Sdfr set_uid3 uid; 49925000Sdfr set_gid3 gid; 50025000Sdfr set_size3 size; 50125000Sdfr set_atime atime; 50225000Sdfr set_mtime mtime; 50325000Sdfr}; 50425000Sdfr 50525000Sdfr/* 50625000Sdfr * Arguments for directory operations (v3) 50725000Sdfr */ 50825000Sdfrstruct diropargs3 { 50925000Sdfr nfs_fh3 dir; /* directory file handle */ 51025000Sdfr filename3 name; /* name (up to NFS_MAXNAMLEN bytes) */ 51125000Sdfr}; 51225000Sdfr 51325000Sdfr/* 51425000Sdfr * Arguments to getattr (v3). 51525000Sdfr */ 51625000Sdfrstruct GETATTR3args { 51725000Sdfr nfs_fh3 object; 51825000Sdfr}; 51925000Sdfr 52025000Sdfrstruct GETATTR3resok { 52125000Sdfr fattr3 obj_attributes; 52225000Sdfr}; 52325000Sdfr 52425000Sdfrunion GETATTR3res switch (nfsstat3 status) { 52525000Sdfrcase NFS3_OK: 52625000Sdfr GETATTR3resok resok; 52725000Sdfrdefault: 52825000Sdfr void; 52925000Sdfr}; 53025000Sdfr 53125000Sdfr/* 53225000Sdfr * Arguments to setattr (v3). 53325000Sdfr */ 53425000Sdfrunion sattrguard3 switch (bool check) { 53525000Sdfrcase TRUE: 53625000Sdfr nfstime3 obj_ctime; 53725000Sdfrcase FALSE: 53825000Sdfr void; 53925000Sdfr}; 54025000Sdfr 54125000Sdfrstruct SETATTR3args { 54225000Sdfr nfs_fh3 object; 54325000Sdfr sattr3 new_attributes; 54425000Sdfr sattrguard3 guard; 54525000Sdfr}; 54625000Sdfr 54725000Sdfrstruct SETATTR3resok { 54825000Sdfr wcc_data obj_wcc; 54925000Sdfr}; 55025000Sdfr 55125000Sdfrstruct SETATTR3resfail { 55225000Sdfr wcc_data obj_wcc; 55325000Sdfr}; 55425000Sdfr 55525000Sdfrunion SETATTR3res switch (nfsstat3 status) { 55625000Sdfrcase NFS3_OK: 55725000Sdfr SETATTR3resok resok; 55825000Sdfrdefault: 55925000Sdfr SETATTR3resfail resfail; 56025000Sdfr}; 56125000Sdfr 56225000Sdfr/* 56325000Sdfr * Arguments to lookup (v3). 56425000Sdfr */ 56525000Sdfrstruct LOOKUP3args { 56625000Sdfr diropargs3 what; 56725000Sdfr}; 56825000Sdfr 56925000Sdfrstruct LOOKUP3resok { 57025000Sdfr nfs_fh3 object; 57125000Sdfr post_op_attr obj_attributes; 57225000Sdfr post_op_attr dir_attributes; 57325000Sdfr}; 57425000Sdfr 57525000Sdfrstruct LOOKUP3resfail { 57625000Sdfr post_op_attr dir_attributes; 57725000Sdfr}; 57825000Sdfr 57925000Sdfrunion LOOKUP3res switch (nfsstat3 status) { 58025000Sdfrcase NFS3_OK: 58125000Sdfr LOOKUP3resok resok; 58225000Sdfrdefault: 58325000Sdfr LOOKUP3resfail resfail; 58425000Sdfr}; 58525000Sdfr 58625000Sdfr/* 58725000Sdfr * Arguments to access (v3). 58825000Sdfr */ 58925000Sdfrconst ACCESS3_READ = 0x0001; 59025000Sdfrconst ACCESS3_LOOKUP = 0x0002; 59125000Sdfrconst ACCESS3_MODIFY = 0x0004; 59225000Sdfrconst ACCESS3_EXTEND = 0x0008; 59325000Sdfrconst ACCESS3_DELETE = 0x0010; 59425000Sdfrconst ACCESS3_EXECUTE = 0x0020; 59525000Sdfr 59625000Sdfrstruct ACCESS3args { 59725000Sdfr nfs_fh3 object; 59825000Sdfr uint32 access; 59925000Sdfr}; 60025000Sdfr 60125000Sdfrstruct ACCESS3resok { 60225000Sdfr post_op_attr obj_attributes; 60325000Sdfr uint32 access; 60425000Sdfr}; 60525000Sdfr 60625000Sdfrstruct ACCESS3resfail { 60725000Sdfr post_op_attr obj_attributes; 60825000Sdfr}; 60925000Sdfr 61025000Sdfrunion ACCESS3res switch (nfsstat3 status) { 61125000Sdfrcase NFS3_OK: 61225000Sdfr ACCESS3resok resok; 61325000Sdfrdefault: 61425000Sdfr ACCESS3resfail resfail; 61525000Sdfr}; 61625000Sdfr 61725000Sdfr/* 61825000Sdfr * Arguments to readlink (v3). 61925000Sdfr */ 62025000Sdfrstruct READLINK3args { 62125000Sdfr nfs_fh3 symlink; 62225000Sdfr}; 62325000Sdfr 62425000Sdfrstruct READLINK3resok { 62525000Sdfr post_op_attr symlink_attributes; 62625000Sdfr nfspath3 data; 62725000Sdfr}; 62825000Sdfr 62925000Sdfrstruct READLINK3resfail { 63025000Sdfr post_op_attr symlink_attributes; 63125000Sdfr}; 63225000Sdfr 63325000Sdfrunion READLINK3res switch (nfsstat3 status) { 63425000Sdfrcase NFS3_OK: 63525000Sdfr READLINK3resok resok; 63625000Sdfrdefault: 63725000Sdfr READLINK3resfail resfail; 63825000Sdfr}; 63925000Sdfr 64025000Sdfr/* 64125000Sdfr * Arguments to read (v3). 64225000Sdfr */ 64325000Sdfrstruct READ3args { 64425000Sdfr nfs_fh3 file; 64525000Sdfr offset3 offset; 64625000Sdfr count3 count; 64725000Sdfr}; 64825000Sdfr 64925000Sdfrstruct READ3resok { 65025000Sdfr post_op_attr file_attributes; 65125000Sdfr count3 count; 65225000Sdfr bool eof; 65325000Sdfr opaque data<>; 65425000Sdfr}; 65525000Sdfr 65625000Sdfrstruct READ3resfail { 65725000Sdfr post_op_attr file_attributes; 65825000Sdfr}; 65925000Sdfr 66038879Sobrien/* XXX: solaris 2.6 uses ``nfsstat'' here */ 66125000Sdfrunion READ3res switch (nfsstat3 status) { 66225000Sdfrcase NFS3_OK: 66325000Sdfr READ3resok resok; 66425000Sdfrdefault: 66525000Sdfr READ3resfail resfail; 66625000Sdfr}; 66725000Sdfr 66825000Sdfr/* 66925000Sdfr * Arguments to write (v3). 67025000Sdfr */ 67125000Sdfrenum stable_how { 67225000Sdfr UNSTABLE = 0, 67325000Sdfr DATA_SYNC = 1, 67425000Sdfr FILE_SYNC = 2 67525000Sdfr}; 67625000Sdfr 67725000Sdfrstruct WRITE3args { 67825000Sdfr nfs_fh3 file; 67925000Sdfr offset3 offset; 68025000Sdfr count3 count; 68125000Sdfr stable_how stable; 68225000Sdfr opaque data<>; 68325000Sdfr}; 68425000Sdfr 68525000Sdfrstruct WRITE3resok { 68625000Sdfr wcc_data file_wcc; 68725000Sdfr count3 count; 68838879Sobrien stable_how committed; 68925000Sdfr writeverf3 verf; 69025000Sdfr}; 69125000Sdfr 69225000Sdfrstruct WRITE3resfail { 69325000Sdfr wcc_data file_wcc; 69425000Sdfr}; 69525000Sdfr 69625000Sdfrunion WRITE3res switch (nfsstat3 status) { 69725000Sdfrcase NFS3_OK: 69825000Sdfr WRITE3resok resok; 69925000Sdfrdefault: 70025000Sdfr WRITE3resfail resfail; 70125000Sdfr}; 70225000Sdfr 70325000Sdfr/* 70425000Sdfr * Arguments to create (v3). 70525000Sdfr */ 70625000Sdfrenum createmode3 { 70725000Sdfr UNCHECKED = 0, 70825000Sdfr GUARDED = 1, 70925000Sdfr EXCLUSIVE = 2 71025000Sdfr}; 71125000Sdfr 71225000Sdfrunion createhow3 switch (createmode3 mode) { 71325000Sdfrcase UNCHECKED: 71425000Sdfrcase GUARDED: 71525000Sdfr sattr3 obj_attributes; 71625000Sdfrcase EXCLUSIVE: 71725000Sdfr createverf3 verf; 71825000Sdfr}; 71925000Sdfr 72025000Sdfrstruct CREATE3args { 72125000Sdfr diropargs3 where; 72225000Sdfr createhow3 how; 72325000Sdfr}; 72425000Sdfr 72525000Sdfrstruct CREATE3resok { 72625000Sdfr post_op_fh3 obj; 72725000Sdfr post_op_attr obj_attributes; 72825000Sdfr wcc_data dir_wcc; 72925000Sdfr}; 73025000Sdfr 73125000Sdfrstruct CREATE3resfail { 73225000Sdfr wcc_data dir_wcc; 73325000Sdfr}; 73425000Sdfr 73525000Sdfrunion CREATE3res switch (nfsstat3 status) { 73625000Sdfrcase NFS3_OK: 73725000Sdfr CREATE3resok resok; 73825000Sdfrdefault: 73925000Sdfr CREATE3resfail resfail; 74025000Sdfr}; 74125000Sdfr 74225000Sdfr/* 74325000Sdfr * Arguments to mkdir (v3). 74425000Sdfr */ 74525000Sdfrstruct MKDIR3args { 74625000Sdfr diropargs3 where; 74725000Sdfr sattr3 attributes; 74825000Sdfr}; 74925000Sdfr 75025000Sdfrstruct MKDIR3resok { 75125000Sdfr post_op_fh3 obj; 75225000Sdfr post_op_attr obj_attributes; 75325000Sdfr wcc_data dir_wcc; 75425000Sdfr}; 75525000Sdfr 75625000Sdfrstruct MKDIR3resfail { 75725000Sdfr wcc_data dir_wcc; 75825000Sdfr}; 75925000Sdfr 76025000Sdfrunion MKDIR3res switch (nfsstat3 status) { 76125000Sdfrcase NFS3_OK: 76225000Sdfr MKDIR3resok resok; 76325000Sdfrdefault: 76425000Sdfr MKDIR3resfail resfail; 76525000Sdfr}; 76625000Sdfr 76725000Sdfr/* 76825000Sdfr * Arguments to symlink (v3). 76925000Sdfr */ 77025000Sdfrstruct symlinkdata3 { 77125000Sdfr sattr3 symlink_attributes; 77225000Sdfr nfspath3 symlink_data; 77325000Sdfr}; 77425000Sdfr 77525000Sdfrstruct SYMLINK3args { 77625000Sdfr diropargs3 where; 77725000Sdfr symlinkdata3 symlink; 77825000Sdfr}; 77925000Sdfr 78025000Sdfrstruct SYMLINK3resok { 78125000Sdfr post_op_fh3 obj; 78225000Sdfr post_op_attr obj_attributes; 78325000Sdfr wcc_data dir_wcc; 78425000Sdfr}; 78525000Sdfr 78625000Sdfrstruct SYMLINK3resfail { 78725000Sdfr wcc_data dir_wcc; 78825000Sdfr}; 78925000Sdfr 79025000Sdfrunion SYMLINK3res switch (nfsstat3 status) { 79125000Sdfrcase NFS3_OK: 79225000Sdfr SYMLINK3resok resok; 79325000Sdfrdefault: 79425000Sdfr SYMLINK3resfail resfail; 79525000Sdfr}; 79625000Sdfr 79725000Sdfr/* 79825000Sdfr * Arguments to mknod (v3). 79925000Sdfr */ 80025000Sdfrstruct devicedata3 { 80125000Sdfr sattr3 dev_attributes; 80225000Sdfr specdata3 spec; 80325000Sdfr}; 80425000Sdfr 80525000Sdfrunion mknoddata3 switch (ftype3 type) { 80625000Sdfrcase NF3CHR: 80725000Sdfrcase NF3BLK: 80825000Sdfr devicedata3 device; 80925000Sdfrcase NF3SOCK: 81025000Sdfrcase NF3FIFO: 81125000Sdfr sattr3 pipe_attributes; 81225000Sdfrdefault: 81325000Sdfr void; 81425000Sdfr}; 81525000Sdfr 81625000Sdfrstruct MKNOD3args { 81725000Sdfr diropargs3 where; 81825000Sdfr mknoddata3 what; 81925000Sdfr}; 82025000Sdfr 82125000Sdfrstruct MKNOD3resok { 82225000Sdfr post_op_fh3 obj; 82325000Sdfr post_op_attr obj_attributes; 82425000Sdfr wcc_data dir_wcc; 82525000Sdfr}; 82625000Sdfr 82725000Sdfrstruct MKNOD3resfail { 82825000Sdfr wcc_data dir_wcc; 82925000Sdfr}; 83025000Sdfr 83125000Sdfrunion MKNOD3res switch (nfsstat3 status) { 83225000Sdfrcase NFS3_OK: 83325000Sdfr MKNOD3resok resok; 83425000Sdfrdefault: 83525000Sdfr MKNOD3resfail resfail; 83625000Sdfr}; 83725000Sdfr 83825000Sdfr/* 83925000Sdfr * Arguments to remove (v3). 84025000Sdfr */ 84125000Sdfrstruct REMOVE3args { 84225000Sdfr diropargs3 object; 84325000Sdfr}; 84425000Sdfr 84525000Sdfrstruct REMOVE3resok { 84625000Sdfr wcc_data dir_wcc; 84725000Sdfr}; 84825000Sdfr 84925000Sdfrstruct REMOVE3resfail { 85025000Sdfr wcc_data dir_wcc; 85125000Sdfr}; 85225000Sdfr 85325000Sdfrunion REMOVE3res switch (nfsstat3 status) { 85425000Sdfrcase NFS3_OK: 85525000Sdfr REMOVE3resok resok; 85625000Sdfrdefault: 85725000Sdfr REMOVE3resfail resfail; 85825000Sdfr}; 85925000Sdfr 86025000Sdfr/* 86125000Sdfr * Arguments to rmdir (v3). 86225000Sdfr */ 86325000Sdfrstruct RMDIR3args { 86425000Sdfr diropargs3 object; 86525000Sdfr}; 86625000Sdfr 86725000Sdfrstruct RMDIR3resok { 86825000Sdfr wcc_data dir_wcc; 86925000Sdfr}; 87025000Sdfr 87125000Sdfrstruct RMDIR3resfail { 87225000Sdfr wcc_data dir_wcc; 87325000Sdfr}; 87425000Sdfr 87525000Sdfrunion RMDIR3res switch (nfsstat3 status) { 87625000Sdfrcase NFS3_OK: 87725000Sdfr RMDIR3resok resok; 87825000Sdfrdefault: 87925000Sdfr RMDIR3resfail resfail; 88025000Sdfr}; 88125000Sdfr 88225000Sdfr/* 88325000Sdfr * Arguments to rename (v3). 88425000Sdfr */ 88525000Sdfrstruct RENAME3args { 88625000Sdfr diropargs3 from; 88725000Sdfr diropargs3 to; 88825000Sdfr}; 88925000Sdfr 89025000Sdfrstruct RENAME3resok { 89125000Sdfr wcc_data fromdir_wcc; 89225000Sdfr wcc_data todir_wcc; 89325000Sdfr}; 89425000Sdfr 89525000Sdfrstruct RENAME3resfail { 89625000Sdfr wcc_data fromdir_wcc; 89725000Sdfr wcc_data todir_wcc; 89825000Sdfr}; 89925000Sdfr 90025000Sdfrunion RENAME3res switch (nfsstat3 status) { 90125000Sdfrcase NFS3_OK: 90225000Sdfr RENAME3resok resok; 90325000Sdfrdefault: 90425000Sdfr RENAME3resfail resfail; 90525000Sdfr}; 90625000Sdfr 90725000Sdfr/* 90825000Sdfr * Arguments to link (v3). 90925000Sdfr */ 91025000Sdfrstruct LINK3args { 91125000Sdfr nfs_fh3 file; 91225000Sdfr diropargs3 link; 91325000Sdfr}; 91425000Sdfr 91525000Sdfrstruct LINK3resok { 91625000Sdfr post_op_attr file_attributes; 91725000Sdfr wcc_data linkdir_wcc; 91825000Sdfr}; 91925000Sdfr 92025000Sdfrstruct LINK3resfail { 92125000Sdfr post_op_attr file_attributes; 92225000Sdfr wcc_data linkdir_wcc; 92325000Sdfr}; 92425000Sdfr 92525000Sdfrunion LINK3res switch (nfsstat3 status) { 92625000Sdfrcase NFS3_OK: 92725000Sdfr LINK3resok resok; 92825000Sdfrdefault: 92925000Sdfr LINK3resfail resfail; 93025000Sdfr}; 93125000Sdfr 93225000Sdfr/* 93325000Sdfr * Arguments to readdir (v3). 93425000Sdfr */ 93525000Sdfrstruct READDIR3args { 93625000Sdfr nfs_fh3 dir; 93725000Sdfr cookie3 cookie; 93825000Sdfr cookieverf3 cookieverf; 93925000Sdfr count3 count; 94025000Sdfr}; 94125000Sdfr 94225000Sdfrstruct entry3 { 94325000Sdfr fileid3 fileid; 94425000Sdfr filename3 name; 94525000Sdfr cookie3 cookie; 94625000Sdfr entry3 *nextentry; 94725000Sdfr}; 94825000Sdfr 94925000Sdfrstruct dirlist3 { 95025000Sdfr entry3 *entries; 95125000Sdfr bool eof; 95225000Sdfr}; 95325000Sdfr 95425000Sdfrstruct READDIR3resok { 95525000Sdfr post_op_attr dir_attributes; 95625000Sdfr cookieverf3 cookieverf; 95725000Sdfr dirlist3 reply; 95825000Sdfr}; 95925000Sdfr 96025000Sdfrstruct READDIR3resfail { 96125000Sdfr post_op_attr dir_attributes; 96225000Sdfr}; 96325000Sdfr 96425000Sdfrunion READDIR3res switch (nfsstat3 status) { 96525000Sdfrcase NFS3_OK: 96625000Sdfr READDIR3resok resok; 96725000Sdfrdefault: 96825000Sdfr READDIR3resfail resfail; 96925000Sdfr}; 97025000Sdfr 97125000Sdfr/* 97225000Sdfr * Arguments to readdirplus (v3). 97325000Sdfr */ 97425000Sdfrstruct READDIRPLUS3args { 97525000Sdfr nfs_fh3 dir; 97625000Sdfr cookie3 cookie; 97725000Sdfr cookieverf3 cookieverf; 97825000Sdfr count3 dircount; 97925000Sdfr count3 maxcount; 98025000Sdfr}; 98125000Sdfr 98225000Sdfrstruct entryplus3 { 98325000Sdfr fileid3 fileid; 98425000Sdfr filename3 name; 98525000Sdfr cookie3 cookie; 98625000Sdfr post_op_attr name_attributes; 98725000Sdfr post_op_fh3 name_handle; 98825000Sdfr entryplus3 *nextentry; 98925000Sdfr}; 99025000Sdfr 99125000Sdfrstruct dirlistplus3 { 99225000Sdfr entryplus3 *entries; 99325000Sdfr bool eof; 99425000Sdfr}; 99525000Sdfr 99625000Sdfrstruct READDIRPLUS3resok { 99725000Sdfr post_op_attr dir_attributes; 99825000Sdfr cookieverf3 cookieverf; 99925000Sdfr dirlistplus3 reply; 100025000Sdfr}; 100125000Sdfr 100225000Sdfrstruct READDIRPLUS3resfail { 100325000Sdfr post_op_attr dir_attributes; 100425000Sdfr}; 100525000Sdfr 100625000Sdfrunion READDIRPLUS3res switch (nfsstat3 status) { 100725000Sdfrcase NFS3_OK: 100825000Sdfr READDIRPLUS3resok resok; 100925000Sdfrdefault: 101025000Sdfr READDIRPLUS3resfail resfail; 101125000Sdfr}; 101225000Sdfr 101325000Sdfr/* 101425000Sdfr * Arguments to fsstat (v3). 101525000Sdfr */ 101625000Sdfrstruct FSSTAT3args { 101725000Sdfr nfs_fh3 fsroot; 101825000Sdfr}; 101925000Sdfr 102025000Sdfrstruct FSSTAT3resok { 102125000Sdfr post_op_attr obj_attributes; 102225000Sdfr size3 tbytes; 102325000Sdfr size3 fbytes; 102425000Sdfr size3 abytes; 102525000Sdfr size3 tfiles; 102625000Sdfr size3 ffiles; 102725000Sdfr size3 afiles; 102825000Sdfr uint32 invarsec; 102925000Sdfr}; 103025000Sdfr 103125000Sdfrstruct FSSTAT3resfail { 103225000Sdfr post_op_attr obj_attributes; 103325000Sdfr}; 103425000Sdfr 103525000Sdfrunion FSSTAT3res switch (nfsstat3 status) { 103625000Sdfrcase NFS3_OK: 103725000Sdfr FSSTAT3resok resok; 103825000Sdfrdefault: 103925000Sdfr FSSTAT3resfail resfail; 104025000Sdfr}; 104125000Sdfr 104225000Sdfr/* 104325000Sdfr * Arguments to fsinfo (v3). 104425000Sdfr */ 104525000Sdfrconst FSF3_LINK = 0x0001; 104625000Sdfrconst FSF3_SYMLINK = 0x0002; 104725000Sdfrconst FSF3_HOMOGENEOUS = 0x0008; 104825000Sdfrconst FSF3_CANSETTIME = 0x0010; 104925000Sdfr 105025000Sdfrstruct FSINFO3args { 105125000Sdfr nfs_fh3 fsroot; 105225000Sdfr}; 105325000Sdfr 105425000Sdfrstruct FSINFO3resok { 105525000Sdfr post_op_attr obj_attributes; 105625000Sdfr uint32 rtmax; 105725000Sdfr uint32 rtpref; 105825000Sdfr uint32 rtmult; 105925000Sdfr uint32 wtmax; 106025000Sdfr uint32 wtpref; 106125000Sdfr uint32 wtmult; 106225000Sdfr uint32 dtpref; 106325000Sdfr size3 maxfilesize; 106425000Sdfr nfstime3 time_delta; 106525000Sdfr uint32 properties; 106625000Sdfr}; 106725000Sdfr 106825000Sdfrstruct FSINFO3resfail { 106925000Sdfr post_op_attr obj_attributes; 107025000Sdfr}; 107125000Sdfr 107225000Sdfrunion FSINFO3res switch (nfsstat3 status) { 107325000Sdfrcase NFS3_OK: 107425000Sdfr FSINFO3resok resok; 107525000Sdfrdefault: 107625000Sdfr FSINFO3resfail resfail; 107725000Sdfr}; 107825000Sdfr 107925000Sdfr/* 108025000Sdfr * Arguments to pathconf (v3). 108125000Sdfr */ 108225000Sdfrstruct PATHCONF3args { 108325000Sdfr nfs_fh3 object; 108425000Sdfr}; 108525000Sdfr 108625000Sdfrstruct PATHCONF3resok { 108725000Sdfr post_op_attr obj_attributes; 108825000Sdfr uint32 linkmax; 108925000Sdfr uint32 name_max; 109025000Sdfr bool no_trunc; 109125000Sdfr bool chown_restricted; 109225000Sdfr bool case_insensitive; 109325000Sdfr bool case_preserving; 109425000Sdfr}; 109525000Sdfr 109625000Sdfrstruct PATHCONF3resfail { 109725000Sdfr post_op_attr obj_attributes; 109825000Sdfr}; 109925000Sdfr 110025000Sdfrunion PATHCONF3res switch (nfsstat3 status) { 110125000Sdfrcase NFS3_OK: 110238879Sobrien PATHCONF3resok resok; 110325000Sdfrdefault: 110438879Sobrien PATHCONF3resfail resfail; 110525000Sdfr}; 110625000Sdfr 110725000Sdfr/* 110825000Sdfr * Arguments to commit (v3). 110925000Sdfr */ 111025000Sdfrstruct COMMIT3args { 111125000Sdfr nfs_fh3 file; 111225000Sdfr offset3 offset; 111325000Sdfr count3 count; 111425000Sdfr}; 111525000Sdfr 111625000Sdfrstruct COMMIT3resok { 111725000Sdfr wcc_data file_wcc; 111825000Sdfr writeverf3 verf; 111925000Sdfr}; 112025000Sdfr 112125000Sdfrstruct COMMIT3resfail { 112225000Sdfr wcc_data file_wcc; 112325000Sdfr}; 112425000Sdfr 112525000Sdfrunion COMMIT3res switch (nfsstat3 status) { 112625000Sdfrcase NFS3_OK: 112738879Sobrien COMMIT3resok resok; 112825000Sdfrdefault: 112938879Sobrien COMMIT3resfail resfail; 113025000Sdfr}; 113125000Sdfr 113225000Sdfr#endif /* WANT_NFS3 */ 113325000Sdfr 113425000Sdfr/* 11351832Swollman * Remote file service routines 11361832Swollman */ 11371832Swollmanprogram NFS_PROGRAM { 11381832Swollman version NFS_VERSION { 11391832Swollman void 11401832Swollman NFSPROC_NULL(void) = 0; 11411832Swollman 11421832Swollman attrstat 11431832Swollman NFSPROC_GETATTR(nfs_fh) = 1; 11441832Swollman 11451832Swollman attrstat 11461832Swollman NFSPROC_SETATTR(sattrargs) = 2; 11471832Swollman 11481832Swollman void 11491832Swollman NFSPROC_ROOT(void) = 3; 11501832Swollman 11511832Swollman diropres 11521832Swollman NFSPROC_LOOKUP(diropargs) = 4; 11531832Swollman 11541832Swollman readlinkres 11551832Swollman NFSPROC_READLINK(nfs_fh) = 5; 11561832Swollman 11571832Swollman readres 11581832Swollman NFSPROC_READ(readargs) = 6; 11591832Swollman 11601832Swollman void 11611832Swollman NFSPROC_WRITECACHE(void) = 7; 11621832Swollman 11631832Swollman attrstat 11641832Swollman NFSPROC_WRITE(writeargs) = 8; 11651832Swollman 11661832Swollman diropres 11671832Swollman NFSPROC_CREATE(createargs) = 9; 11681832Swollman 11691832Swollman nfsstat 11701832Swollman NFSPROC_REMOVE(diropargs) = 10; 11711832Swollman 11721832Swollman nfsstat 11731832Swollman NFSPROC_RENAME(renameargs) = 11; 11741832Swollman 11751832Swollman nfsstat 11761832Swollman NFSPROC_LINK(linkargs) = 12; 11771832Swollman 11781832Swollman nfsstat 11791832Swollman NFSPROC_SYMLINK(symlinkargs) = 13; 11801832Swollman 11811832Swollman diropres 11821832Swollman NFSPROC_MKDIR(createargs) = 14; 11831832Swollman 11841832Swollman nfsstat 11851832Swollman NFSPROC_RMDIR(diropargs) = 15; 11861832Swollman 11871832Swollman readdirres 11881832Swollman NFSPROC_READDIR(readdirargs) = 16; 11891832Swollman 11901832Swollman statfsres 11911832Swollman NFSPROC_STATFS(nfs_fh) = 17; 11921832Swollman } = 2; 119338879Sobrien} = 100003; 119425000Sdfr#ifdef WANT_NFS3 119538879Sobrienprogram NFS3_PROGRAM { 119625000Sdfr version NFS_V3 { 119725000Sdfr void 119825000Sdfr NFSPROC3_NULL(void) = 0; 119925000Sdfr 120025000Sdfr GETATTR3res 120125000Sdfr NFSPROC3_GETATTR(GETATTR3args) = 1; 120225000Sdfr 120325000Sdfr SETATTR3res 120425000Sdfr NFSPROC3_SETATTR(SETATTR3args) = 2; 120525000Sdfr 120625000Sdfr LOOKUP3res 120725000Sdfr NFSPROC3_LOOKUP(LOOKUP3args) = 3; 120825000Sdfr 120925000Sdfr ACCESS3res 121025000Sdfr NFSPROC3_ACCESS(ACCESS3args) = 4; 121125000Sdfr 121225000Sdfr READLINK3res 121325000Sdfr NFSPROC3_READLINK(READLINK3args) = 5; 121425000Sdfr 121525000Sdfr READ3res 121625000Sdfr NFSPROC3_READ(READ3args) = 6; 121725000Sdfr 121825000Sdfr WRITE3res 121925000Sdfr NFSPROC3_WRITE(WRITE3args) = 7; 122025000Sdfr 122125000Sdfr CREATE3res 122225000Sdfr NFSPROC3_CREATE(CREATE3args) = 8; 122325000Sdfr 122425000Sdfr MKDIR3res 122525000Sdfr NFSPROC3_MKDIR(MKDIR3args) = 9; 122625000Sdfr 122725000Sdfr SYMLINK3res 122825000Sdfr NFSPROC3_SYMLINK(SYMLINK3args) = 10; 122925000Sdfr 123025000Sdfr MKNOD3res 123125000Sdfr NFSPROC3_MKNOD(MKNOD3args) = 11; 123225000Sdfr 123325000Sdfr REMOVE3res 123425000Sdfr NFSPROC3_REMOVE(REMOVE3args) = 12; 123525000Sdfr 123625000Sdfr RMDIR3res 123725000Sdfr NFSPROC3_RMDIR(RMDIR3args) = 13; 123825000Sdfr 123925000Sdfr RENAME3res 124025000Sdfr NFSPROC3_RENAME(RENAME3args) = 14; 124125000Sdfr 124225000Sdfr LINK3res 124325000Sdfr NFSPROC3_LINK(LINK3args) = 15; 124425000Sdfr 124525000Sdfr READDIR3res 124625000Sdfr NFSPROC3_READDIR(READDIR3args) = 16; 124725000Sdfr 124825000Sdfr READDIRPLUS3res 124925000Sdfr NFSPROC3_READDIRPLUS(READDIRPLUS3args) = 17; 125025000Sdfr 125125000Sdfr FSSTAT3res 125225000Sdfr NFSPROC3_FSSTAT(FSSTAT3args) = 18; 125325000Sdfr 125425000Sdfr FSINFO3res 125525000Sdfr NFSPROC3_FSINFO(FSINFO3args) = 19; 125625000Sdfr 125725000Sdfr PATHCONF3res 125825000Sdfr NFSPROC3_PATHCONF(PATHCONF3args) = 20; 125925000Sdfr 126025000Sdfr COMMIT3res 126125000Sdfr NFSPROC3_COMMIT(COMMIT3args) = 21; 126238879Sobrien } = 3; 126338879Sobrien} = 100003; 126425000Sdfr#endif 12651832Swollman 1266