1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2*f80ad8b4SAndroid Build Coastguard Worker /* 3*f80ad8b4SAndroid Build Coastguard Worker * NFS protocol definitions 4*f80ad8b4SAndroid Build Coastguard Worker * 5*f80ad8b4SAndroid Build Coastguard Worker * This file contains constants mostly for Version 2 of the protocol, 6*f80ad8b4SAndroid Build Coastguard Worker * but also has a couple of NFSv3 bits in (notably the error codes). 7*f80ad8b4SAndroid Build Coastguard Worker */ 8*f80ad8b4SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_NFS_H 9*f80ad8b4SAndroid Build Coastguard Worker #define _UAPI_LINUX_NFS_H 10*f80ad8b4SAndroid Build Coastguard Worker 11*f80ad8b4SAndroid Build Coastguard Worker #include <linux/types.h> 12*f80ad8b4SAndroid Build Coastguard Worker 13*f80ad8b4SAndroid Build Coastguard Worker #define NFS_PROGRAM 100003 14*f80ad8b4SAndroid Build Coastguard Worker #define NFS_PORT 2049 15*f80ad8b4SAndroid Build Coastguard Worker #define NFS_RDMA_PORT 20049 16*f80ad8b4SAndroid Build Coastguard Worker #define NFS_MAXDATA 8192 17*f80ad8b4SAndroid Build Coastguard Worker #define NFS_MAXPATHLEN 1024 18*f80ad8b4SAndroid Build Coastguard Worker #define NFS_MAXNAMLEN 255 19*f80ad8b4SAndroid Build Coastguard Worker #define NFS_MAXGROUPS 16 20*f80ad8b4SAndroid Build Coastguard Worker #define NFS_FHSIZE 32 21*f80ad8b4SAndroid Build Coastguard Worker #define NFS_COOKIESIZE 4 22*f80ad8b4SAndroid Build Coastguard Worker #define NFS_FIFO_DEV (-1) 23*f80ad8b4SAndroid Build Coastguard Worker #define NFSMODE_FMT 0170000 24*f80ad8b4SAndroid Build Coastguard Worker #define NFSMODE_DIR 0040000 25*f80ad8b4SAndroid Build Coastguard Worker #define NFSMODE_CHR 0020000 26*f80ad8b4SAndroid Build Coastguard Worker #define NFSMODE_BLK 0060000 27*f80ad8b4SAndroid Build Coastguard Worker #define NFSMODE_REG 0100000 28*f80ad8b4SAndroid Build Coastguard Worker #define NFSMODE_LNK 0120000 29*f80ad8b4SAndroid Build Coastguard Worker #define NFSMODE_SOCK 0140000 30*f80ad8b4SAndroid Build Coastguard Worker #define NFSMODE_FIFO 0010000 31*f80ad8b4SAndroid Build Coastguard Worker 32*f80ad8b4SAndroid Build Coastguard Worker #define NFS_MNT_PROGRAM 100005 33*f80ad8b4SAndroid Build Coastguard Worker #define NFS_MNT_VERSION 1 34*f80ad8b4SAndroid Build Coastguard Worker #define NFS_MNT3_VERSION 3 35*f80ad8b4SAndroid Build Coastguard Worker 36*f80ad8b4SAndroid Build Coastguard Worker #define NFS_PIPE_DIRNAME "nfs" 37*f80ad8b4SAndroid Build Coastguard Worker 38*f80ad8b4SAndroid Build Coastguard Worker /* 39*f80ad8b4SAndroid Build Coastguard Worker * NFS stats. The good thing with these values is that NFSv3 errors are 40*f80ad8b4SAndroid Build Coastguard Worker * a superset of NFSv2 errors (with the exception of NFSERR_WFLUSH which 41*f80ad8b4SAndroid Build Coastguard Worker * no-one uses anyway), so we can happily mix code as long as we make sure 42*f80ad8b4SAndroid Build Coastguard Worker * no NFSv3 errors are returned to NFSv2 clients. 43*f80ad8b4SAndroid Build Coastguard Worker * Error codes that have a `--' in the v2 column are not part of the 44*f80ad8b4SAndroid Build Coastguard Worker * standard, but seem to be widely used nevertheless. 45*f80ad8b4SAndroid Build Coastguard Worker */ 46*f80ad8b4SAndroid Build Coastguard Worker enum nfs_stat { 47*f80ad8b4SAndroid Build Coastguard Worker NFS_OK = 0, /* v2 v3 v4 */ 48*f80ad8b4SAndroid Build Coastguard Worker NFSERR_PERM = 1, /* v2 v3 v4 */ 49*f80ad8b4SAndroid Build Coastguard Worker NFSERR_NOENT = 2, /* v2 v3 v4 */ 50*f80ad8b4SAndroid Build Coastguard Worker NFSERR_IO = 5, /* v2 v3 v4 */ 51*f80ad8b4SAndroid Build Coastguard Worker NFSERR_NXIO = 6, /* v2 v3 v4 */ 52*f80ad8b4SAndroid Build Coastguard Worker NFSERR_EAGAIN = 11, /* v2 v3 */ 53*f80ad8b4SAndroid Build Coastguard Worker NFSERR_ACCES = 13, /* v2 v3 v4 */ 54*f80ad8b4SAndroid Build Coastguard Worker NFSERR_EXIST = 17, /* v2 v3 v4 */ 55*f80ad8b4SAndroid Build Coastguard Worker NFSERR_XDEV = 18, /* v3 v4 */ 56*f80ad8b4SAndroid Build Coastguard Worker NFSERR_NODEV = 19, /* v2 v3 v4 */ 57*f80ad8b4SAndroid Build Coastguard Worker NFSERR_NOTDIR = 20, /* v2 v3 v4 */ 58*f80ad8b4SAndroid Build Coastguard Worker NFSERR_ISDIR = 21, /* v2 v3 v4 */ 59*f80ad8b4SAndroid Build Coastguard Worker NFSERR_INVAL = 22, /* v2 v3 v4 */ 60*f80ad8b4SAndroid Build Coastguard Worker NFSERR_FBIG = 27, /* v2 v3 v4 */ 61*f80ad8b4SAndroid Build Coastguard Worker NFSERR_NOSPC = 28, /* v2 v3 v4 */ 62*f80ad8b4SAndroid Build Coastguard Worker NFSERR_ROFS = 30, /* v2 v3 v4 */ 63*f80ad8b4SAndroid Build Coastguard Worker NFSERR_MLINK = 31, /* v3 v4 */ 64*f80ad8b4SAndroid Build Coastguard Worker NFSERR_NAMETOOLONG = 63, /* v2 v3 v4 */ 65*f80ad8b4SAndroid Build Coastguard Worker NFSERR_NOTEMPTY = 66, /* v2 v3 v4 */ 66*f80ad8b4SAndroid Build Coastguard Worker NFSERR_DQUOT = 69, /* v2 v3 v4 */ 67*f80ad8b4SAndroid Build Coastguard Worker NFSERR_STALE = 70, /* v2 v3 v4 */ 68*f80ad8b4SAndroid Build Coastguard Worker NFSERR_REMOTE = 71, /* v2 v3 */ 69*f80ad8b4SAndroid Build Coastguard Worker NFSERR_WFLUSH = 99, /* v2 */ 70*f80ad8b4SAndroid Build Coastguard Worker NFSERR_BADHANDLE = 10001, /* v3 v4 */ 71*f80ad8b4SAndroid Build Coastguard Worker NFSERR_NOT_SYNC = 10002, /* v3 */ 72*f80ad8b4SAndroid Build Coastguard Worker NFSERR_BAD_COOKIE = 10003, /* v3 v4 */ 73*f80ad8b4SAndroid Build Coastguard Worker NFSERR_NOTSUPP = 10004, /* v3 v4 */ 74*f80ad8b4SAndroid Build Coastguard Worker NFSERR_TOOSMALL = 10005, /* v3 v4 */ 75*f80ad8b4SAndroid Build Coastguard Worker NFSERR_SERVERFAULT = 10006, /* v3 v4 */ 76*f80ad8b4SAndroid Build Coastguard Worker NFSERR_BADTYPE = 10007, /* v3 v4 */ 77*f80ad8b4SAndroid Build Coastguard Worker NFSERR_JUKEBOX = 10008, /* v3 v4 */ 78*f80ad8b4SAndroid Build Coastguard Worker NFSERR_SAME = 10009, /* v4 */ 79*f80ad8b4SAndroid Build Coastguard Worker NFSERR_DENIED = 10010, /* v4 */ 80*f80ad8b4SAndroid Build Coastguard Worker NFSERR_EXPIRED = 10011, /* v4 */ 81*f80ad8b4SAndroid Build Coastguard Worker NFSERR_LOCKED = 10012, /* v4 */ 82*f80ad8b4SAndroid Build Coastguard Worker NFSERR_GRACE = 10013, /* v4 */ 83*f80ad8b4SAndroid Build Coastguard Worker NFSERR_FHEXPIRED = 10014, /* v4 */ 84*f80ad8b4SAndroid Build Coastguard Worker NFSERR_SHARE_DENIED = 10015, /* v4 */ 85*f80ad8b4SAndroid Build Coastguard Worker NFSERR_WRONGSEC = 10016, /* v4 */ 86*f80ad8b4SAndroid Build Coastguard Worker NFSERR_CLID_INUSE = 10017, /* v4 */ 87*f80ad8b4SAndroid Build Coastguard Worker NFSERR_RESOURCE = 10018, /* v4 */ 88*f80ad8b4SAndroid Build Coastguard Worker NFSERR_MOVED = 10019, /* v4 */ 89*f80ad8b4SAndroid Build Coastguard Worker NFSERR_NOFILEHANDLE = 10020, /* v4 */ 90*f80ad8b4SAndroid Build Coastguard Worker NFSERR_MINOR_VERS_MISMATCH = 10021, /* v4 */ 91*f80ad8b4SAndroid Build Coastguard Worker NFSERR_STALE_CLIENTID = 10022, /* v4 */ 92*f80ad8b4SAndroid Build Coastguard Worker NFSERR_STALE_STATEID = 10023, /* v4 */ 93*f80ad8b4SAndroid Build Coastguard Worker NFSERR_OLD_STATEID = 10024, /* v4 */ 94*f80ad8b4SAndroid Build Coastguard Worker NFSERR_BAD_STATEID = 10025, /* v4 */ 95*f80ad8b4SAndroid Build Coastguard Worker NFSERR_BAD_SEQID = 10026, /* v4 */ 96*f80ad8b4SAndroid Build Coastguard Worker NFSERR_NOT_SAME = 10027, /* v4 */ 97*f80ad8b4SAndroid Build Coastguard Worker NFSERR_LOCK_RANGE = 10028, /* v4 */ 98*f80ad8b4SAndroid Build Coastguard Worker NFSERR_SYMLINK = 10029, /* v4 */ 99*f80ad8b4SAndroid Build Coastguard Worker NFSERR_RESTOREFH = 10030, /* v4 */ 100*f80ad8b4SAndroid Build Coastguard Worker NFSERR_LEASE_MOVED = 10031, /* v4 */ 101*f80ad8b4SAndroid Build Coastguard Worker NFSERR_ATTRNOTSUPP = 10032, /* v4 */ 102*f80ad8b4SAndroid Build Coastguard Worker NFSERR_NO_GRACE = 10033, /* v4 */ 103*f80ad8b4SAndroid Build Coastguard Worker NFSERR_RECLAIM_BAD = 10034, /* v4 */ 104*f80ad8b4SAndroid Build Coastguard Worker NFSERR_RECLAIM_CONFLICT = 10035,/* v4 */ 105*f80ad8b4SAndroid Build Coastguard Worker NFSERR_BAD_XDR = 10036, /* v4 */ 106*f80ad8b4SAndroid Build Coastguard Worker NFSERR_LOCKS_HELD = 10037, /* v4 */ 107*f80ad8b4SAndroid Build Coastguard Worker NFSERR_OPENMODE = 10038, /* v4 */ 108*f80ad8b4SAndroid Build Coastguard Worker NFSERR_BADOWNER = 10039, /* v4 */ 109*f80ad8b4SAndroid Build Coastguard Worker NFSERR_BADCHAR = 10040, /* v4 */ 110*f80ad8b4SAndroid Build Coastguard Worker NFSERR_BADNAME = 10041, /* v4 */ 111*f80ad8b4SAndroid Build Coastguard Worker NFSERR_BAD_RANGE = 10042, /* v4 */ 112*f80ad8b4SAndroid Build Coastguard Worker NFSERR_LOCK_NOTSUPP = 10043, /* v4 */ 113*f80ad8b4SAndroid Build Coastguard Worker NFSERR_OP_ILLEGAL = 10044, /* v4 */ 114*f80ad8b4SAndroid Build Coastguard Worker NFSERR_DEADLOCK = 10045, /* v4 */ 115*f80ad8b4SAndroid Build Coastguard Worker NFSERR_FILE_OPEN = 10046, /* v4 */ 116*f80ad8b4SAndroid Build Coastguard Worker NFSERR_ADMIN_REVOKED = 10047, /* v4 */ 117*f80ad8b4SAndroid Build Coastguard Worker NFSERR_CB_PATH_DOWN = 10048, /* v4 */ 118*f80ad8b4SAndroid Build Coastguard Worker }; 119*f80ad8b4SAndroid Build Coastguard Worker 120*f80ad8b4SAndroid Build Coastguard Worker /* NFSv2 file types - beware, these are not the same in NFSv3 */ 121*f80ad8b4SAndroid Build Coastguard Worker 122*f80ad8b4SAndroid Build Coastguard Worker enum nfs_ftype { 123*f80ad8b4SAndroid Build Coastguard Worker NFNON = 0, 124*f80ad8b4SAndroid Build Coastguard Worker NFREG = 1, 125*f80ad8b4SAndroid Build Coastguard Worker NFDIR = 2, 126*f80ad8b4SAndroid Build Coastguard Worker NFBLK = 3, 127*f80ad8b4SAndroid Build Coastguard Worker NFCHR = 4, 128*f80ad8b4SAndroid Build Coastguard Worker NFLNK = 5, 129*f80ad8b4SAndroid Build Coastguard Worker NFSOCK = 6, 130*f80ad8b4SAndroid Build Coastguard Worker NFBAD = 7, 131*f80ad8b4SAndroid Build Coastguard Worker NFFIFO = 8 132*f80ad8b4SAndroid Build Coastguard Worker }; 133*f80ad8b4SAndroid Build Coastguard Worker 134*f80ad8b4SAndroid Build Coastguard Worker #endif /* _UAPI_LINUX_NFS_H */ 135