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