[BACK]Return to nfsproto.h CVS log [TXT][DIR] Up to [local] / sys / nfs

Annotation of sys/nfs/nfsproto.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: nfsproto.h,v 1.7 2007/06/06 14:13:42 thib Exp $       */
        !             2: /*     $NetBSD: nfsproto.h,v 1.1 1996/02/18 11:54:06 fvdl Exp $        */
        !             3:
        !             4: /*
        !             5:  * Copyright (c) 1989, 1993
        !             6:  *     The Regents of the University of California.  All rights reserved.
        !             7:  *
        !             8:  * This code is derived from software contributed to Berkeley by
        !             9:  * Rick Macklem at The University of Guelph.
        !            10:  *
        !            11:  * Redistribution and use in source and binary forms, with or without
        !            12:  * modification, are permitted provided that the following conditions
        !            13:  * are met:
        !            14:  * 1. Redistributions of source code must retain the above copyright
        !            15:  *    notice, this list of conditions and the following disclaimer.
        !            16:  * 2. Redistributions in binary form must reproduce the above copyright
        !            17:  *    notice, this list of conditions and the following disclaimer in the
        !            18:  *    documentation and/or other materials provided with the distribution.
        !            19:  * 3. Neither the name of the University nor the names of its contributors
        !            20:  *    may be used to endorse or promote products derived from this software
        !            21:  *    without specific prior written permission.
        !            22:  *
        !            23:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
        !            24:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        !            25:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
        !            26:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
        !            27:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        !            28:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
        !            29:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
        !            30:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
        !            31:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
        !            32:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
        !            33:  * SUCH DAMAGE.
        !            34:  *
        !            35:  *     @(#)nfsproto.h  8.2 (Berkeley) 3/30/95
        !            36:  */
        !            37:
        !            38: #ifndef _NFS_NFSPROTO_H_
        !            39: #define _NFS_NFSPROTO_H_
        !            40:
        !            41:
        !            42: /*
        !            43:  * nfs definitions as per the Version 2 and 3 specs
        !            44:  */
        !            45:
        !            46: /*
        !            47:  * Constants as defined in the Sun NFS Version 2 and 3 specs.
        !            48:  * "NFS: Network File System Protocol Specification" RFC1094
        !            49:  * and in the "NFS: Network File System Version 3 Protocol
        !            50:  * Specification"
        !            51:  */
        !            52:
        !            53: #define NFS_PORT       2049
        !            54: #define        NFS_PROG        100003
        !            55: #define NFS_VER2       2
        !            56: #define        NFS_VER3        3
        !            57: #define NFS_VER4        4
        !            58: #define NFS_V2MAXDATA  8192
        !            59: #define        NFS_MAXDGRAMDATA 32768
        !            60: #define        NFS_MAXDATA     MAXBSIZE
        !            61: #define        NFS_MAXPATHLEN  1024
        !            62: #define        NFS_MAXNAMLEN   255
        !            63: #define        NFS_MAXPKTHDR   404
        !            64: #define NFS_MAXPACKET  (NFS_MAXPKTHDR + NFS_MAXDATA)
        !            65: #define        NFS_MINPACKET   20
        !            66: #define        NFS_FABLKSIZE   512     /* Size in bytes of a block wrt fa_blocks */
        !            67:
        !            68: /* Stat numbers for rpc returns (version 2 and 3) */
        !            69: #define        NFS_OK                  0
        !            70: #define        NFSERR_PERM             1
        !            71: #define        NFSERR_NOENT            2
        !            72: #define        NFSERR_IO               5
        !            73: #define        NFSERR_NXIO             6
        !            74: #define        NFSERR_ACCES            13
        !            75: #define        NFSERR_EXIST            17
        !            76: #define        NFSERR_XDEV             18      /* Version 3 only */
        !            77: #define        NFSERR_NODEV            19
        !            78: #define        NFSERR_NOTDIR           20
        !            79: #define        NFSERR_ISDIR            21
        !            80: #define        NFSERR_INVAL            22      /* Version 3 only */
        !            81: #define        NFSERR_FBIG             27
        !            82: #define        NFSERR_NOSPC            28
        !            83: #define        NFSERR_ROFS             30
        !            84: #define        NFSERR_MLINK            31      /* Version 3 only */
        !            85: #define        NFSERR_NAMETOL          63
        !            86: #define        NFSERR_NOTEMPTY         66
        !            87: #define        NFSERR_DQUOT            69
        !            88: #define        NFSERR_STALE            70
        !            89: #define        NFSERR_REMOTE           71      /* Version 3 only */
        !            90: #define        NFSERR_WFLUSH           99      /* Version 2 only */
        !            91: #define        NFSERR_BADHANDLE        10001   /* The rest Version 3 only */
        !            92: #define        NFSERR_NOT_SYNC         10002
        !            93: #define        NFSERR_BAD_COOKIE       10003
        !            94: #define        NFSERR_NOTSUPP          10004
        !            95: #define        NFSERR_TOOSMALL         10005
        !            96: #define        NFSERR_SERVERFAULT      10006
        !            97: #define        NFSERR_BADTYPE          10007
        !            98: #define        NFSERR_JUKEBOX          10008
        !            99: #define NFSERR_TRYLATER                NFSERR_JUKEBOX
        !           100: #define        NFSERR_STALEWRITEVERF   30001   /* Fake return for nfs_commit() */
        !           101:
        !           102: #define NFSERR_RETVOID         0x20000000 /* Return void, not error */
        !           103: #define NFSERR_AUTHERR         0x40000000 /* Mark an authentication error */
        !           104: #define NFSERR_RETERR          0x80000000 /* Mark an error return for V3 */
        !           105:
        !           106: /* Sizes in bytes of various nfs rpc components */
        !           107: #define        NFSX_UNSIGNED   4
        !           108:
        !           109: /* specific to NFS Version 2 */
        !           110: #define        NFSX_V2FH       32
        !           111: #define        NFSX_V2FATTR    68
        !           112: #define        NFSX_V2SATTR    32
        !           113: #define        NFSX_V2COOKIE   4
        !           114: #define NFSX_V2STATFS  20
        !           115:
        !           116: /* specific to NFS Version 3 */
        !           117: #define NFSX_V3FH              (sizeof (fhandle_t)) /* size this server uses */
        !           118: #define        NFSX_V3FHMAX            64      /* max. allowed by protocol */
        !           119: #define NFSX_V3FATTR           84
        !           120: #define NFSX_V3SATTR           60      /* max. all fields filled in */
        !           121: #define NFSX_V3SRVSATTR                (sizeof (struct nfsv3_sattr))
        !           122: #define NFSX_V3POSTOPATTR      (NFSX_V3FATTR + NFSX_UNSIGNED)
        !           123: #define NFSX_V3WCCDATA         (NFSX_V3POSTOPATTR + 8 * NFSX_UNSIGNED)
        !           124: #define NFSX_V3COOKIEVERF      8
        !           125: #define NFSX_V3WRITEVERF       8
        !           126: #define NFSX_V3CREATEVERF      8
        !           127: #define NFSX_V3STATFS          52
        !           128: #define NFSX_V3FSINFO          48
        !           129: #define NFSX_V3PATHCONF                24
        !           130:
        !           131: /* variants for both versions */
        !           132: #define NFSX_FH(v3)            ((v3) ? (NFSX_V3FHMAX + NFSX_UNSIGNED) : \
        !           133:                                        NFSX_V2FH)
        !           134: #define NFSX_SRVFH(v3)         ((v3) ? NFSX_V3FH : NFSX_V2FH)
        !           135: #define        NFSX_FATTR(v3)          ((v3) ? NFSX_V3FATTR : NFSX_V2FATTR)
        !           136: #define NFSX_PREOPATTR(v3)     ((v3) ? (7 * NFSX_UNSIGNED) : 0)
        !           137: #define NFSX_POSTOPATTR(v3)    ((v3) ? (NFSX_V3FATTR + NFSX_UNSIGNED) : 0)
        !           138: #define NFSX_POSTOPORFATTR(v3) ((v3) ? (NFSX_V3FATTR + NFSX_UNSIGNED) : \
        !           139:                                        NFSX_V2FATTR)
        !           140: #define NFSX_WCCDATA(v3)       ((v3) ? NFSX_V3WCCDATA : 0)
        !           141: #define NFSX_WCCORFATTR(v3)    ((v3) ? NFSX_V3WCCDATA : NFSX_V2FATTR)
        !           142: #define        NFSX_SATTR(v3)          ((v3) ? NFSX_V3SATTR : NFSX_V2SATTR)
        !           143: #define        NFSX_COOKIEVERF(v3)     ((v3) ? NFSX_V3COOKIEVERF : 0)
        !           144: #define        NFSX_WRITEVERF(v3)      ((v3) ? NFSX_V3WRITEVERF : 0)
        !           145: #define NFSX_READDIR(v3)       ((v3) ? (5 * NFSX_UNSIGNED) : \
        !           146:                                        (2 * NFSX_UNSIGNED))
        !           147: #define        NFSX_STATFS(v3)         ((v3) ? NFSX_V3STATFS : NFSX_V2STATFS)
        !           148:
        !           149: /* nfs rpc procedure numbers (before version mapping) */
        !           150: #define        NFSPROC_NULL            0
        !           151: #define        NFSPROC_GETATTR         1
        !           152: #define        NFSPROC_SETATTR         2
        !           153: #define        NFSPROC_LOOKUP          3
        !           154: #define        NFSPROC_ACCESS          4
        !           155: #define        NFSPROC_READLINK        5
        !           156: #define        NFSPROC_READ            6
        !           157: #define        NFSPROC_WRITE           7
        !           158: #define        NFSPROC_CREATE          8
        !           159: #define        NFSPROC_MKDIR           9
        !           160: #define        NFSPROC_SYMLINK         10
        !           161: #define        NFSPROC_MKNOD           11
        !           162: #define        NFSPROC_REMOVE          12
        !           163: #define        NFSPROC_RMDIR           13
        !           164: #define        NFSPROC_RENAME          14
        !           165: #define        NFSPROC_LINK            15
        !           166: #define        NFSPROC_READDIR         16
        !           167: #define        NFSPROC_READDIRPLUS     17
        !           168: #define        NFSPROC_FSSTAT          18
        !           169: #define        NFSPROC_FSINFO          19
        !           170: #define        NFSPROC_PATHCONF        20
        !           171: #define        NFSPROC_COMMIT          21
        !           172:
        !           173: #define NFSPROC_NOOP           25
        !           174: #define        NFS_NPROCS              26
        !           175:
        !           176: /* Actual Version 2 procedure numbers */
        !           177: #define        NFSV2PROC_NULL          0
        !           178: #define        NFSV2PROC_GETATTR       1
        !           179: #define        NFSV2PROC_SETATTR       2
        !           180: #define        NFSV2PROC_NOOP          3
        !           181: #define        NFSV2PROC_ROOT          NFSV2PROC_NOOP  /* Obsolete */
        !           182: #define        NFSV2PROC_LOOKUP        4
        !           183: #define        NFSV2PROC_READLINK      5
        !           184: #define        NFSV2PROC_READ          6
        !           185: #define        NFSV2PROC_WRITECACHE    NFSV2PROC_NOOP  /* Obsolete */
        !           186: #define        NFSV2PROC_WRITE         8
        !           187: #define        NFSV2PROC_CREATE        9
        !           188: #define        NFSV2PROC_REMOVE        10
        !           189: #define        NFSV2PROC_RENAME        11
        !           190: #define        NFSV2PROC_LINK          12
        !           191: #define        NFSV2PROC_SYMLINK       13
        !           192: #define        NFSV2PROC_MKDIR         14
        !           193: #define        NFSV2PROC_RMDIR         15
        !           194: #define        NFSV2PROC_READDIR       16
        !           195: #define        NFSV2PROC_STATFS        17
        !           196:
        !           197: /*
        !           198:  * Constants used by the Version 3 protocol for various RPCs
        !           199:  */
        !           200: #define NFSV3SATTRTIME_DONTCHANGE      0
        !           201: #define NFSV3SATTRTIME_TOSERVER                1
        !           202: #define NFSV3SATTRTIME_TOCLIENT                2
        !           203:
        !           204: #define NFSV3ACCESS_READ               0x01
        !           205: #define NFSV3ACCESS_LOOKUP             0x02
        !           206: #define NFSV3ACCESS_MODIFY             0x04
        !           207: #define NFSV3ACCESS_EXTEND             0x08
        !           208: #define NFSV3ACCESS_DELETE             0x10
        !           209: #define NFSV3ACCESS_EXECUTE            0x20
        !           210:
        !           211: #define NFSV3WRITE_UNSTABLE            0
        !           212: #define NFSV3WRITE_DATASYNC            1
        !           213: #define NFSV3WRITE_FILESYNC            2
        !           214:
        !           215: #define NFSV3CREATE_UNCHECKED          0
        !           216: #define NFSV3CREATE_GUARDED            1
        !           217: #define NFSV3CREATE_EXCLUSIVE          2
        !           218:
        !           219: #define NFSV3FSINFO_LINK               0x01
        !           220: #define NFSV3FSINFO_SYMLINK            0x02
        !           221: #define NFSV3FSINFO_HOMOGENEOUS                0x08
        !           222: #define NFSV3FSINFO_CANSETTIME         0x10
        !           223:
        !           224: /* Conversion macros */
        !           225: #define        vtonfsv2_mode(t,m) \
        !           226:                txdr_unsigned(((t) == VFIFO) ? MAKEIMODE(VCHR, (m)) : \
        !           227:                                MAKEIMODE((t), (m)))
        !           228: #define vtonfsv3_mode(m)       txdr_unsigned((m) & 07777)
        !           229: #define        nfstov_mode(a)          (fxdr_unsigned(u_int16_t, (a))&07777)
        !           230: #define        vtonfsv2_type(a)        txdr_unsigned(nfsv2_type[((int32_t)(a))])
        !           231: #define        vtonfsv3_type(a)        txdr_unsigned(nfsv3_type[((int32_t)(a))])
        !           232: #define        nfsv2tov_type(a)        nv2tov_type[fxdr_unsigned(u_int32_t,(a))&0x7]
        !           233: #define        nfsv3tov_type(a)        nv3tov_type[fxdr_unsigned(u_int32_t,(a))&0x7]
        !           234:
        !           235: /* File types */
        !           236: typedef enum { NFNON=0, NFREG=1, NFDIR=2, NFBLK=3, NFCHR=4, NFLNK=5,
        !           237:        NFSOCK=6, NFFIFO=7 } nfstype;
        !           238:
        !           239: /* Structs for common parts of the rpc's */
        !           240: /*
        !           241:  * File Handle (32 bytes for version 2), variable up to 64 for version 3.
        !           242:  * File Handles of up to NFS_SMALLFH in size are stored directly in the
        !           243:  * nfs node, whereas larger ones are malloc'd. (This never happens when
        !           244:  * NFS_SMALLFH is set to 64.)
        !           245:  * NFS_SMALLFH should be in the range of 32 to 64 and be divisible by 4.
        !           246:  */
        !           247: #ifndef NFS_SMALLFH
        !           248: #define NFS_SMALLFH    64
        !           249: #endif
        !           250: union nfsfh {
        !           251:        fhandle_t fh_generic;
        !           252:        u_char    fh_bytes[NFS_SMALLFH];
        !           253: };
        !           254: typedef union nfsfh nfsfh_t;
        !           255:
        !           256: struct nfsv2_time {
        !           257:        u_int32_t nfsv2_sec;
        !           258:        u_int32_t nfsv2_usec;
        !           259: };
        !           260: typedef struct nfsv2_time      nfstime2;
        !           261:
        !           262: struct nfsv3_time {
        !           263:        u_int32_t nfsv3_sec;
        !           264:        u_int32_t nfsv3_nsec;
        !           265: };
        !           266: typedef struct nfsv3_time      nfstime3;
        !           267:
        !           268: /*
        !           269:  * Quads are defined as arrays of 2 longs to ensure dense packing for the
        !           270:  * protocol and to facilitate xdr conversion.
        !           271:  */
        !           272: struct nfs_uquad {
        !           273:        u_int32_t nfsuquad[2];
        !           274: };
        !           275: typedef        struct nfs_uquad        nfsuint64;
        !           276:
        !           277: /*
        !           278:  * NFS Version 3 special file number.
        !           279:  */
        !           280: struct nfsv3_spec {
        !           281:        u_int32_t specdata1;
        !           282:        u_int32_t specdata2;
        !           283: };
        !           284: typedef        struct nfsv3_spec       nfsv3spec;
        !           285:
        !           286: /*
        !           287:  * File attributes and setable attributes. These structures cover both
        !           288:  * NFS version 2 and the version 3 protocol. Note that the union is only
        !           289:  * used so that one pointer can refer to both variants. These structures
        !           290:  * go out on the wire and must be densely packed, so no quad data types
        !           291:  * are used. (all fields are longs or u_longs or structures of same)
        !           292:  * NB: You can't do sizeof(struct nfs_fattr), you must use the
        !           293:  *     NFSX_FATTR(v3) macro.
        !           294:  */
        !           295: struct nfs_fattr {
        !           296:        u_int32_t fa_type;
        !           297:        u_int32_t fa_mode;
        !           298:        u_int32_t fa_nlink;
        !           299:        u_int32_t fa_uid;
        !           300:        u_int32_t fa_gid;
        !           301:        union {
        !           302:                struct {
        !           303:                        u_int32_t nfsv2fa_size;
        !           304:                        u_int32_t nfsv2fa_blocksize;
        !           305:                        u_int32_t nfsv2fa_rdev;
        !           306:                        u_int32_t nfsv2fa_blocks;
        !           307:                        u_int32_t nfsv2fa_fsid;
        !           308:                        u_int32_t nfsv2fa_fileid;
        !           309:                        nfstime2  nfsv2fa_atime;
        !           310:                        nfstime2  nfsv2fa_mtime;
        !           311:                        nfstime2  nfsv2fa_ctime;
        !           312:                } fa_nfsv2;
        !           313:                struct {
        !           314:                        nfsuint64 nfsv3fa_size;
        !           315:                        nfsuint64 nfsv3fa_used;
        !           316:                        nfsv3spec nfsv3fa_rdev;
        !           317:                        nfsuint64 nfsv3fa_fsid;
        !           318:                        nfsuint64 nfsv3fa_fileid;
        !           319:                        nfstime3  nfsv3fa_atime;
        !           320:                        nfstime3  nfsv3fa_mtime;
        !           321:                        nfstime3  nfsv3fa_ctime;
        !           322:                } fa_nfsv3;
        !           323:        } fa_un;
        !           324: };
        !           325:
        !           326: /* and some ugly defines for accessing union components */
        !           327: #define        fa2_size                fa_un.fa_nfsv2.nfsv2fa_size
        !           328: #define        fa2_blocksize           fa_un.fa_nfsv2.nfsv2fa_blocksize
        !           329: #define        fa2_rdev                fa_un.fa_nfsv2.nfsv2fa_rdev
        !           330: #define        fa2_blocks              fa_un.fa_nfsv2.nfsv2fa_blocks
        !           331: #define        fa2_fsid                fa_un.fa_nfsv2.nfsv2fa_fsid
        !           332: #define        fa2_fileid              fa_un.fa_nfsv2.nfsv2fa_fileid
        !           333: #define        fa2_atime               fa_un.fa_nfsv2.nfsv2fa_atime
        !           334: #define        fa2_mtime               fa_un.fa_nfsv2.nfsv2fa_mtime
        !           335: #define        fa2_ctime               fa_un.fa_nfsv2.nfsv2fa_ctime
        !           336: #define        fa3_size                fa_un.fa_nfsv3.nfsv3fa_size
        !           337: #define        fa3_used                fa_un.fa_nfsv3.nfsv3fa_used
        !           338: #define        fa3_rdev                fa_un.fa_nfsv3.nfsv3fa_rdev
        !           339: #define        fa3_fsid                fa_un.fa_nfsv3.nfsv3fa_fsid
        !           340: #define        fa3_fileid              fa_un.fa_nfsv3.nfsv3fa_fileid
        !           341: #define        fa3_atime               fa_un.fa_nfsv3.nfsv3fa_atime
        !           342: #define        fa3_mtime               fa_un.fa_nfsv3.nfsv3fa_mtime
        !           343: #define        fa3_ctime               fa_un.fa_nfsv3.nfsv3fa_ctime
        !           344:
        !           345: struct nfsv2_sattr {
        !           346:        u_int32_t sa_mode;
        !           347:        u_int32_t sa_uid;
        !           348:        u_int32_t sa_gid;
        !           349:        u_int32_t sa_size;
        !           350:        nfstime2  sa_atime;
        !           351:        nfstime2  sa_mtime;
        !           352: };
        !           353:
        !           354: /*
        !           355:  * NFS Version 3 sattr structure for the new node creation case.
        !           356:  */
        !           357: struct nfsv3_sattr {
        !           358:        u_int32_t sa_modetrue;
        !           359:        u_int32_t sa_mode;
        !           360:        u_int32_t sa_uidfalse;
        !           361:        u_int32_t sa_gidfalse;
        !           362:        u_int32_t sa_sizefalse;
        !           363:        u_int32_t sa_atimetype;
        !           364:        nfstime3  sa_atime;
        !           365:        u_int32_t sa_mtimetype;
        !           366:        nfstime3  sa_mtime;
        !           367: };
        !           368:
        !           369: struct nfs_statfs {
        !           370:        union {
        !           371:                struct {
        !           372:                        u_int32_t nfsv2sf_tsize;
        !           373:                        u_int32_t nfsv2sf_bsize;
        !           374:                        u_int32_t nfsv2sf_blocks;
        !           375:                        u_int32_t nfsv2sf_bfree;
        !           376:                        u_int32_t nfsv2sf_bavail;
        !           377:                } sf_nfsv2;
        !           378:                struct {
        !           379:                        nfsuint64 nfsv3sf_tbytes;
        !           380:                        nfsuint64 nfsv3sf_fbytes;
        !           381:                        nfsuint64 nfsv3sf_abytes;
        !           382:                        nfsuint64 nfsv3sf_tfiles;
        !           383:                        nfsuint64 nfsv3sf_ffiles;
        !           384:                        nfsuint64 nfsv3sf_afiles;
        !           385:                        u_int32_t nfsv3sf_invarsec;
        !           386:                } sf_nfsv3;
        !           387:        } sf_un;
        !           388: };
        !           389:
        !           390: #define sf_tsize       sf_un.sf_nfsv2.nfsv2sf_tsize
        !           391: #define sf_bsize       sf_un.sf_nfsv2.nfsv2sf_bsize
        !           392: #define sf_blocks      sf_un.sf_nfsv2.nfsv2sf_blocks
        !           393: #define sf_bfree       sf_un.sf_nfsv2.nfsv2sf_bfree
        !           394: #define sf_bavail      sf_un.sf_nfsv2.nfsv2sf_bavail
        !           395: #define sf_tbytes      sf_un.sf_nfsv3.nfsv3sf_tbytes
        !           396: #define sf_fbytes      sf_un.sf_nfsv3.nfsv3sf_fbytes
        !           397: #define sf_abytes      sf_un.sf_nfsv3.nfsv3sf_abytes
        !           398: #define sf_tfiles      sf_un.sf_nfsv3.nfsv3sf_tfiles
        !           399: #define sf_ffiles      sf_un.sf_nfsv3.nfsv3sf_ffiles
        !           400: #define sf_afiles      sf_un.sf_nfsv3.nfsv3sf_afiles
        !           401: #define sf_invarsec    sf_un.sf_nfsv3.nfsv3sf_invarsec
        !           402:
        !           403: struct nfsv3_fsinfo {
        !           404:        u_int32_t fs_rtmax;
        !           405:        u_int32_t fs_rtpref;
        !           406:        u_int32_t fs_rtmult;
        !           407:        u_int32_t fs_wtmax;
        !           408:        u_int32_t fs_wtpref;
        !           409:        u_int32_t fs_wtmult;
        !           410:        u_int32_t fs_dtpref;
        !           411:        nfsuint64 fs_maxfilesize;
        !           412:        nfstime3  fs_timedelta;
        !           413:        u_int32_t fs_properties;
        !           414: };
        !           415:
        !           416: struct nfsv3_pathconf {
        !           417:        u_int32_t pc_linkmax;
        !           418:        u_int32_t pc_namemax;
        !           419:        u_int32_t pc_notrunc;
        !           420:        u_int32_t pc_chownrestricted;
        !           421:        u_int32_t pc_caseinsensitive;
        !           422:        u_int32_t pc_casepreserving;
        !           423: };
        !           424:
        !           425: #endif

CVSweb