37 #ifndef _NFS_NFSPROTO_H_ 38 #define _NFS_NFSPROTO_H_ 54 #define NFS_PROG 100003 57 #define NFS_V2MAXDATA 8192 58 #define NFS_MAXDGRAMDATA 16384 59 #define NFS_MAXDATA 32768 60 #define NFS_MAXPATHLEN 1024 61 #define NFS_MAXNAMLEN 255 62 #define NFS_MAXPKTHDR 404 63 #define NFS_MAXPACKET (NFS_MAXPKTHDR + NFS_MAXDATA) 64 #define NFS_MINPACKET 20 65 #define NFS_FABLKSIZE 512 70 #define NFSERR_NOENT 2 73 #define NFSERR_ACCES 13 74 #define NFSERR_EXIST 17 75 #define NFSERR_XDEV 18 76 #define NFSERR_NODEV 19 77 #define NFSERR_NOTDIR 20 78 #define NFSERR_ISDIR 21 79 #define NFSERR_INVAL 22 80 #define NFSERR_FBIG 27 81 #define NFSERR_NOSPC 28 82 #define NFSERR_ROFS 30 83 #define NFSERR_MLINK 31 84 #define NFSERR_NAMETOL 63 85 #define NFSERR_NOTEMPTY 66 86 #define NFSERR_DQUOT 69 87 #define NFSERR_STALE 70 88 #define NFSERR_REMOTE 71 89 #define NFSERR_WFLUSH 99 90 #define NFSERR_BADHANDLE 10001 91 #define NFSERR_NOT_SYNC 10002 92 #define NFSERR_BAD_COOKIE 10003 93 #define NFSERR_NOTSUPP 10004 94 #define NFSERR_TOOSMALL 10005 95 #define NFSERR_SERVERFAULT 10006 96 #define NFSERR_BADTYPE 10007 97 #define NFSERR_JUKEBOX 10008 98 #define NFSERR_TRYLATER NFSERR_JUKEBOX 99 #define NFSERR_STALEWRITEVERF 30001 103 #define NFSERR_RETVOID 0x20000000 104 #define NFSERR_AUTHERR 0x40000000 105 #define NFSERR_RETERR 0x80000000 108 #define NFSX_UNSIGNED 4 112 #define NFSX_V2FATTR 68 113 #define NFSX_V2SATTR 32 114 #define NFSX_V2COOKIE 4 115 #define NFSX_V2STATFS 20 118 #define NFSX_V3FH (sizeof (fhandle_t)) 119 #define NFSX_V3FHMAX 64 120 #define NFSX_V3FATTR 84 121 #define NFSX_V3SATTR 60 122 #define NFSX_V3SRVSATTR (sizeof (struct nfsv3_sattr)) 123 #define NFSX_V3POSTOPATTR (NFSX_V3FATTR + NFSX_UNSIGNED) 124 #define NFSX_V3WCCDATA (NFSX_V3POSTOPATTR + 8 * NFSX_UNSIGNED) 125 #define NFSX_V3COOKIEVERF 8 126 #define NFSX_V3WRITEVERF 8 127 #define NFSX_V3CREATEVERF 8 128 #define NFSX_V3STATFS 52 129 #define NFSX_V3FSINFO 48 130 #define NFSX_V3PATHCONF 24 133 #define NFSX_FH(v3) ((v3) ? (NFSX_V3FHMAX + NFSX_UNSIGNED) : \ 135 #define NFSX_SRVFH(v3) ((v3) ? NFSX_V3FH : NFSX_V2FH) 136 #define NFSX_FATTR(v3) ((v3) ? NFSX_V3FATTR : NFSX_V2FATTR) 137 #define NFSX_PREOPATTR(v3) ((v3) ? (7 * NFSX_UNSIGNED) : 0) 138 #define NFSX_POSTOPATTR(v3) ((v3) ? (NFSX_V3FATTR + NFSX_UNSIGNED) : 0) 139 #define NFSX_POSTOPORFATTR(v3) ((v3) ? (NFSX_V3FATTR + NFSX_UNSIGNED) : \ 141 #define NFSX_WCCDATA(v3) ((v3) ? NFSX_V3WCCDATA : 0) 142 #define NFSX_WCCORFATTR(v3) ((v3) ? NFSX_V3WCCDATA : NFSX_V2FATTR) 143 #define NFSX_SATTR(v3) ((v3) ? NFSX_V3SATTR : NFSX_V2SATTR) 144 #define NFSX_COOKIEVERF(v3) ((v3) ? NFSX_V3COOKIEVERF : 0) 145 #define NFSX_WRITEVERF(v3) ((v3) ? NFSX_V3WRITEVERF : 0) 146 #define NFSX_READDIR(v3) ((v3) ? (5 * NFSX_UNSIGNED) : \ 148 #define NFSX_STATFS(v3) ((v3) ? NFSX_V3STATFS : NFSX_V2STATFS) 151 #define NFSPROC_NULL 0 152 #define NFSPROC_GETATTR 1 153 #define NFSPROC_SETATTR 2 154 #define NFSPROC_LOOKUP 3 155 #define NFSPROC_ACCESS 4 156 #define NFSPROC_READLINK 5 157 #define NFSPROC_READ 6 158 #define NFSPROC_WRITE 7 159 #define NFSPROC_CREATE 8 160 #define NFSPROC_MKDIR 9 161 #define NFSPROC_SYMLINK 10 162 #define NFSPROC_MKNOD 11 163 #define NFSPROC_REMOVE 12 164 #define NFSPROC_RMDIR 13 165 #define NFSPROC_RENAME 14 166 #define NFSPROC_LINK 15 167 #define NFSPROC_READDIR 16 168 #define NFSPROC_READDIRPLUS 17 169 #define NFSPROC_FSSTAT 18 170 #define NFSPROC_FSINFO 19 171 #define NFSPROC_PATHCONF 20 172 #define NFSPROC_COMMIT 21 173 #define NFSPROC_NOOP 22 174 #define NFS_NPROCS 23 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 182 #define NFSV2PROC_LOOKUP 4 183 #define NFSV2PROC_READLINK 5 184 #define NFSV2PROC_READ 6 185 #define NFSV2PROC_WRITECACHE NFSV2PROC_NOOP 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 200 #define NFSV3SATTRTIME_DONTCHANGE 0 201 #define NFSV3SATTRTIME_TOSERVER 1 202 #define NFSV3SATTRTIME_TOCLIENT 2 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 211 #define NFSV3WRITE_UNSTABLE 0 212 #define NFSV3WRITE_DATASYNC 1 213 #define NFSV3WRITE_FILESYNC 2 215 #define NFSV3CREATE_UNCHECKED 0 216 #define NFSV3CREATE_GUARDED 1 217 #define NFSV3CREATE_EXCLUSIVE 2 219 #define NFSV3FSINFO_LINK 0x01 220 #define NFSV3FSINFO_SYMLINK 0x02 221 #define NFSV3FSINFO_HOMOGENEOUS 0x08 222 #define NFSV3FSINFO_CANSETTIME 0x10 225 typedef enum { NFNON=0, NFREG=1, NFDIR=2, NFBLK=3, NFCHR=4, NFLNK=5,
226 NFSOCK=6, NFFIFO=7 } nfstype;
237 #define NFS_SMALLFH 64 241 u_char fh_bytes[NFS_SMALLFH];
243 typedef union nfsfh nfsfh_t;
247 u_int32_t nfsv2_usec;
253 u_int32_t nfsv3_nsec;
262 u_int32_t nfsuquad[2];
301 u_int32_t nfsv2fa_size;
302 u_int32_t nfsv2fa_blocksize;
303 u_int32_t nfsv2fa_rdev;
304 u_int32_t nfsv2fa_blocks;
305 u_int32_t nfsv2fa_fsid;
306 u_int32_t nfsv2fa_fileid;
307 nfstime2 nfsv2fa_atime;
308 nfstime2 nfsv2fa_mtime;
309 nfstime2 nfsv2fa_ctime;
312 nfsuint64 nfsv3fa_size;
313 nfsuint64 nfsv3fa_used;
314 nfsv3spec nfsv3fa_rdev;
315 nfsuint64 nfsv3fa_fsid;
316 nfsuint64 nfsv3fa_fileid;
317 nfstime3 nfsv3fa_atime;
318 nfstime3 nfsv3fa_mtime;
319 nfstime3 nfsv3fa_ctime;
325 #define fa2_size fa_un.fa_nfsv2.nfsv2fa_size 326 #define fa2_blocksize fa_un.fa_nfsv2.nfsv2fa_blocksize 327 #define fa2_rdev fa_un.fa_nfsv2.nfsv2fa_rdev 328 #define fa2_blocks fa_un.fa_nfsv2.nfsv2fa_blocks 329 #define fa2_fsid fa_un.fa_nfsv2.nfsv2fa_fsid 330 #define fa2_fileid fa_un.fa_nfsv2.nfsv2fa_fileid 331 #define fa2_atime fa_un.fa_nfsv2.nfsv2fa_atime 332 #define fa2_mtime fa_un.fa_nfsv2.nfsv2fa_mtime 333 #define fa2_ctime fa_un.fa_nfsv2.nfsv2fa_ctime 334 #define fa3_size fa_un.fa_nfsv3.nfsv3fa_size 335 #define fa3_used fa_un.fa_nfsv3.nfsv3fa_used 336 #define fa3_rdev fa_un.fa_nfsv3.nfsv3fa_rdev 337 #define fa3_fsid fa_un.fa_nfsv3.nfsv3fa_fsid 338 #define fa3_fileid fa_un.fa_nfsv3.nfsv3fa_fileid 339 #define fa3_atime fa_un.fa_nfsv3.nfsv3fa_atime 340 #define fa3_mtime fa_un.fa_nfsv3.nfsv3fa_mtime 341 #define fa3_ctime fa_un.fa_nfsv3.nfsv3fa_ctime 356 u_int32_t sa_modetrue;
358 u_int32_t sa_uidfalse;
359 u_int32_t sa_gidfalse;
360 u_int32_t sa_sizefalse;
361 u_int32_t sa_atimetype;
363 u_int32_t sa_mtimetype;
370 u_int32_t nfsv2sf_tsize;
371 u_int32_t nfsv2sf_bsize;
372 u_int32_t nfsv2sf_blocks;
373 u_int32_t nfsv2sf_bfree;
374 u_int32_t nfsv2sf_bavail;
377 nfsuint64 nfsv3sf_tbytes;
378 nfsuint64 nfsv3sf_fbytes;
379 nfsuint64 nfsv3sf_abytes;
380 nfsuint64 nfsv3sf_tfiles;
381 nfsuint64 nfsv3sf_ffiles;
382 nfsuint64 nfsv3sf_afiles;
383 u_int32_t nfsv3sf_invarsec;
388 #define sf_tsize sf_un.sf_nfsv2.nfsv2sf_tsize 389 #define sf_bsize sf_un.sf_nfsv2.nfsv2sf_bsize 390 #define sf_blocks sf_un.sf_nfsv2.nfsv2sf_blocks 391 #define sf_bfree sf_un.sf_nfsv2.nfsv2sf_bfree 392 #define sf_bavail sf_un.sf_nfsv2.nfsv2sf_bavail 393 #define sf_tbytes sf_un.sf_nfsv3.nfsv3sf_tbytes 394 #define sf_fbytes sf_un.sf_nfsv3.nfsv3sf_fbytes 395 #define sf_abytes sf_un.sf_nfsv3.nfsv3sf_abytes 396 #define sf_tfiles sf_un.sf_nfsv3.nfsv3sf_tfiles 397 #define sf_ffiles sf_un.sf_nfsv3.nfsv3sf_ffiles 398 #define sf_afiles sf_un.sf_nfsv3.nfsv3sf_afiles 399 #define sf_invarsec sf_un.sf_nfsv3.nfsv3sf_invarsec 409 nfsuint64 fs_maxfilesize;
410 nfstime3 fs_timedelta;
411 u_int32_t fs_properties;
415 u_int32_t pc_linkmax;
416 u_int32_t pc_namemax;
417 u_int32_t pc_notrunc;
418 u_int32_t pc_chownrestricted;
419 u_int32_t pc_caseinsensitive;
420 u_int32_t pc_casepreserving;
Definition: nfsproto.h:279
Definition: nfsproto.h:344
Definition: nfsproto.h:252
Definition: nfsproto.h:415
Definition: nfsproto.h:246
Definition: nfsproto.h:240
Definition: nfsproto.h:368
Definition: nfsproto.h:262
Definition: nfsproto.h:356
Definition: nfsproto.h:402
Definition: nfsproto.h:294
Definition: nfsproto.h:270