Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
0002 /*
0003  * NFS protocol definitions
0004  *
0005  * This file contains constants mostly for Version 2 of the protocol,
0006  * but also has a couple of NFSv3 bits in (notably the error codes).
0007  */
0008 #ifndef _UAPI_LINUX_NFS_H
0009 #define _UAPI_LINUX_NFS_H
0010 
0011 #include <linux/types.h>
0012 
0013 #define NFS_PROGRAM 100003
0014 #define NFS_PORT    2049
0015 #define NFS_RDMA_PORT   20049
0016 #define NFS_MAXDATA 8192
0017 #define NFS_MAXPATHLEN  1024
0018 #define NFS_MAXNAMLEN   255
0019 #define NFS_MAXGROUPS   16
0020 #define NFS_FHSIZE  32
0021 #define NFS_COOKIESIZE  4
0022 #define NFS_FIFO_DEV    (-1)
0023 #define NFSMODE_FMT 0170000
0024 #define NFSMODE_DIR 0040000
0025 #define NFSMODE_CHR 0020000
0026 #define NFSMODE_BLK 0060000
0027 #define NFSMODE_REG 0100000
0028 #define NFSMODE_LNK 0120000
0029 #define NFSMODE_SOCK    0140000
0030 #define NFSMODE_FIFO    0010000
0031 
0032 #define NFS_MNT_PROGRAM     100005
0033 #define NFS_MNT_VERSION     1
0034 #define NFS_MNT3_VERSION    3
0035 
0036 #define NFS_PIPE_DIRNAME "nfs"
0037 
0038 /*
0039  * NFS stats. The good thing with these values is that NFSv3 errors are
0040  * a superset of NFSv2 errors (with the exception of NFSERR_WFLUSH which
0041  * no-one uses anyway), so we can happily mix code as long as we make sure
0042  * no NFSv3 errors are returned to NFSv2 clients.
0043  * Error codes that have a `--' in the v2 column are not part of the
0044  * standard, but seem to be widely used nevertheless.
0045  */
0046  enum nfs_stat {
0047     NFS_OK = 0,         /* v2 v3 v4 */
0048     NFSERR_PERM = 1,        /* v2 v3 v4 */
0049     NFSERR_NOENT = 2,       /* v2 v3 v4 */
0050     NFSERR_IO = 5,          /* v2 v3 v4 */
0051     NFSERR_NXIO = 6,        /* v2 v3 v4 */
0052     NFSERR_EAGAIN = 11,     /* v2 v3 */
0053     NFSERR_ACCES = 13,      /* v2 v3 v4 */
0054     NFSERR_EXIST = 17,      /* v2 v3 v4 */
0055     NFSERR_XDEV = 18,       /*    v3 v4 */
0056     NFSERR_NODEV = 19,      /* v2 v3 v4 */
0057     NFSERR_NOTDIR = 20,     /* v2 v3 v4 */
0058     NFSERR_ISDIR = 21,      /* v2 v3 v4 */
0059     NFSERR_INVAL = 22,      /* v2 v3 v4 */
0060     NFSERR_FBIG = 27,       /* v2 v3 v4 */
0061     NFSERR_NOSPC = 28,      /* v2 v3 v4 */
0062     NFSERR_ROFS = 30,       /* v2 v3 v4 */
0063     NFSERR_MLINK = 31,      /*    v3 v4 */
0064     NFSERR_OPNOTSUPP = 45,      /* v2 v3 */
0065     NFSERR_NAMETOOLONG = 63,    /* v2 v3 v4 */
0066     NFSERR_NOTEMPTY = 66,       /* v2 v3 v4 */
0067     NFSERR_DQUOT = 69,      /* v2 v3 v4 */
0068     NFSERR_STALE = 70,      /* v2 v3 v4 */
0069     NFSERR_REMOTE = 71,     /* v2 v3 */
0070     NFSERR_WFLUSH = 99,     /* v2    */
0071     NFSERR_BADHANDLE = 10001,   /*    v3 v4 */
0072     NFSERR_NOT_SYNC = 10002,    /*    v3 */
0073     NFSERR_BAD_COOKIE = 10003,  /*    v3 v4 */
0074     NFSERR_NOTSUPP = 10004,     /*    v3 v4 */
0075     NFSERR_TOOSMALL = 10005,    /*    v3 v4 */
0076     NFSERR_SERVERFAULT = 10006, /*    v3 v4 */
0077     NFSERR_BADTYPE = 10007,     /*    v3 v4 */
0078     NFSERR_JUKEBOX = 10008,     /*    v3 v4 */
0079     NFSERR_SAME = 10009,        /*       v4 */
0080     NFSERR_DENIED = 10010,      /*       v4 */
0081     NFSERR_EXPIRED = 10011,     /*       v4 */
0082     NFSERR_LOCKED = 10012,      /*       v4 */
0083     NFSERR_GRACE = 10013,       /*       v4 */
0084     NFSERR_FHEXPIRED = 10014,   /*       v4 */
0085     NFSERR_SHARE_DENIED = 10015,    /*       v4 */
0086     NFSERR_WRONGSEC = 10016,    /*       v4 */
0087     NFSERR_CLID_INUSE = 10017,  /*       v4 */
0088     NFSERR_RESOURCE = 10018,    /*       v4 */
0089     NFSERR_MOVED = 10019,       /*       v4 */
0090     NFSERR_NOFILEHANDLE = 10020,    /*       v4 */
0091     NFSERR_MINOR_VERS_MISMATCH = 10021,   /* v4 */
0092     NFSERR_STALE_CLIENTID = 10022,  /*       v4 */
0093     NFSERR_STALE_STATEID = 10023,   /*       v4 */
0094     NFSERR_OLD_STATEID = 10024,     /*       v4 */
0095     NFSERR_BAD_STATEID = 10025,     /*       v4 */  
0096     NFSERR_BAD_SEQID = 10026,   /*       v4 */
0097     NFSERR_NOT_SAME = 10027,    /*       v4 */
0098     NFSERR_LOCK_RANGE = 10028,  /*       v4 */
0099     NFSERR_SYMLINK = 10029,     /*       v4 */
0100     NFSERR_RESTOREFH = 10030,   /*       v4 */
0101     NFSERR_LEASE_MOVED = 10031, /*       v4 */
0102     NFSERR_ATTRNOTSUPP = 10032, /*       v4 */
0103     NFSERR_NO_GRACE = 10033,    /*       v4 */
0104     NFSERR_RECLAIM_BAD = 10034, /*       v4 */
0105     NFSERR_RECLAIM_CONFLICT = 10035,/*       v4 */
0106     NFSERR_BAD_XDR = 10036,     /*       v4 */
0107     NFSERR_LOCKS_HELD = 10037,  /*       v4 */
0108     NFSERR_OPENMODE = 10038,       /*       v4 */
0109     NFSERR_BADOWNER = 10039,       /*       v4 */
0110     NFSERR_BADCHAR = 10040,        /*       v4 */
0111     NFSERR_BADNAME = 10041,        /*       v4 */
0112     NFSERR_BAD_RANGE = 10042,      /*       v4 */
0113     NFSERR_LOCK_NOTSUPP = 10043,   /*       v4 */
0114     NFSERR_OP_ILLEGAL = 10044,     /*       v4 */
0115     NFSERR_DEADLOCK = 10045,       /*       v4 */
0116     NFSERR_FILE_OPEN = 10046,      /*       v4 */
0117     NFSERR_ADMIN_REVOKED = 10047,  /*       v4 */
0118     NFSERR_CB_PATH_DOWN = 10048,   /*       v4 */
0119 };
0120 
0121 /* NFSv2 file types - beware, these are not the same in NFSv3 */
0122 
0123 enum nfs_ftype {
0124     NFNON = 0,
0125     NFREG = 1,
0126     NFDIR = 2,
0127     NFBLK = 3,
0128     NFCHR = 4,
0129     NFLNK = 5,
0130     NFSOCK = 6,
0131     NFBAD = 7,
0132     NFFIFO = 8
0133 };
0134 
0135 #endif /* _UAPI_LINUX_NFS_H */