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