1 #ifndef _LINUX_NFS_H 2 #define _LINUX_NFS_H 3 4 #define RPC_VERSION 2 5 6 #define NFS_PORT 2049 7 #define NFS_MAXDATA 8192 8 #define NFS_MAXPATHLEN 1024 9 #define NFS_MAXNAMLEN 255 10 #define NFS_MAXGROUPS 16 11 #define NFS_FHSIZE 32 12 #define NFS_COOKIESIZE 4 13 #define NFS_FIFO_DEV -1 14 #define NFSMODE_FMT 0170000 15 #define NFSMODE_DIR 0040000 16 #define NFSMODE_CHR 0020000 17 #define NFSMODE_BLK 0060000 18 #define NFSMODE_REG 0100000 19 #define NFSMODE_LNK 0120000 20 #define NFSMODE_SOCK 0140000 21 #define NFSMODE_FIFO 0010000 22 23 enum rpc_auth_flavor { 24 RPC_AUTH_NULL = 0, 25 RPC_AUTH_UNIX = 1, 26 RPC_AUTH_SHORT = 2, 27 }; 28 29 enum rpc_msg_type { 30 RPC_CALL = 0, 31 RPC_REPLY = 1, 32 }; 33 34 enum rpc_reply_stat { 35 RPC_MSG_ACCEPTED = 0, 36 RPC_MSG_DENIED, 37 }; 38 39 enum rpc_accept_stat { 40 RPC_SUCCESS = 0, 41 RPC_PROG_UNAVAIL = 1, 42 RPC_PROG_MISMATCH = 2, 43 RPC_PROC_UNAVAIL = 3, 44 RPC_GARBAGE_ARGS = 4, 45 }; 46 47 enum rpc_reject_stat { 48 RPC_MISMATCH = 0, 49 RPC_AUTH_ERROR = 1, 50 }; 51 52 enum rpc_auth_stat { 53 RPC_AUTH_BADCRED = 1, 54 RPC_AUTH_REJECTEDCRED = 2, 55 RPC_AUTH_BADVERF = 3, 56 RPC_AUTH_REJECTEDVERF = 4, 57 RPC_AUTH_TOOWEAK = 5, 58 }; 59 60 enum nfs_stat { 61 NFS_OK = 0, 62 NFSERR_PERM = 1, 63 NFSERR_NOENT = 2, 64 NFSERR_IO = 5, 65 NFSERR_NXIO = 6, 66 NFSERR_ACCES = 13, 67 NFSERR_EXIST = 17, 68 NFSERR_NODEV = 19, 69 NFSERR_NOTDIR = 20, 70 NFSERR_ISDIR = 21, 71 NFSERR_FBIG = 27, 72 NFSERR_NOSPC = 28, 73 NFSERR_ROFS = 30, 74 NFSERR_NAMETOOLONG = 63, 75 NFSERR_NOTEMPTY = 66, 76 NFSERR_DQUOT = 69, 77 NFSERR_STALE = 70, 78 NFSERR_WFLUSH = 99, 79 }; 80 81 enum nfs_ftype { 82 NFNON = 0, 83 NFREG = 1, 84 NFDIR = 2, 85 NFBLK = 3, 86 NFCHR = 4, 87 NFLNK = 5, 88 NFSOCK = 6, 89 NFBAD = 7, 90 NFFIFO = 8, 91 }; 92 93 #define NFS_PROGRAM 100003 94 #define NFS_VERSION 2 95 #define NFSPROC_NULL 0 96 #define NFSPROC_GETATTR 1 97 #define NFSPROC_SETATTR 2 98 #define NFSPROC_ROOT 3 99 #define NFSPROC_LOOKUP 4 100 #define NFSPROC_READLINK 5 101 #define NFSPROC_READ 6 102 #define NFSPROC_WRITECACHE 7 103 #define NFSPROC_WRITE 8 104 #define NFSPROC_CREATE 9 105 #define NFSPROC_REMOVE 10 106 #define NFSPROC_RENAME 11 107 #define NFSPROC_LINK 12 108 #define NFSPROC_SYMLINK 13 109 #define NFSPROC_MKDIR 14 110 #define NFSPROC_RMDIR 15 111 #define NFSPROC_READDIR 16 112 #define NFSPROC_STATFS 17 113 114 struct nfs_fh { 115 char data[NFS_FHSIZE]; 116 }; 117 118 struct nfs_time { 119 u_int seconds; 120 u_int useconds; 121 }; 122 123 struct nfs_fattr { 124 enum nfs_ftype type; 125 u_int mode; 126 u_int nlink; 127 u_int uid; 128 u_int gid; 129 u_int size; 130 u_int blocksize; 131 u_int rdev; 132 u_int blocks; 133 u_int fsid; 134 u_int fileid; 135 struct nfs_time atime; 136 struct nfs_time mtime; 137 struct nfs_time ctime; 138 }; 139 140 struct nfs_sattr { 141 u_int mode; 142 u_int uid; 143 u_int gid; 144 u_int size; 145 struct nfs_time atime; 146 struct nfs_time mtime; 147 }; 148 149 struct nfs_entry { 150 u_int fileid; 151 char *name; 152 int cookie; 153 int eof; 154 }; 155 156 struct nfs_fsinfo { 157 u_int tsize; 158 u_int bsize; 159 u_int blocks; 160 u_int bfree; 161 u_int bavail; 162 }; 163 164 #endif