Commit | Line | Data |
---|---|---|
a2907882 KM |
1 | /* |
2 | * Copyright (c) 1989 The Regents of the University of California. | |
3 | * All rights reserved. | |
4 | * | |
5 | * This code is derived from software contributed to Berkeley by | |
6 | * Rick Macklem at The University of Guelph. | |
7 | * | |
8 | * Redistribution and use in source and binary forms are permitted | |
9 | * provided that the above copyright notice and this paragraph are | |
10 | * duplicated in all such forms and that any documentation, | |
11 | * advertising materials, and other materials related to such | |
12 | * distribution and use acknowledge that the software was developed | |
13 | * by the University of California, Berkeley. The name of the | |
14 | * University may not be used to endorse or promote products derived | |
15 | * from this software without specific prior written permission. | |
16 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR | |
17 | * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED | |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | |
19 | * | |
20 | * @(#)nfsproto.h 7.1 (Berkeley) %G% | |
21 | */ | |
22 | ||
23 | /* | |
24 | * nfs definitions as per the version 2 specs | |
25 | */ | |
26 | ||
27 | /* | |
28 | * Constants as defined in the Sun NFS Version 2 spec. | |
29 | * "Network File System Protocol Specification" in the | |
30 | * Manual "Networking on the Sun Workstation", Part #800-1324-03, Rev B | |
31 | */ | |
32 | ||
33 | #define NFS_PORT 2049 | |
34 | #define NFS_PROG 100003 | |
35 | #define NFS_VER2 2 | |
36 | #define NFS_MAXDATA 8192 | |
37 | #define NFS_MAXPATHLEN 1024 | |
38 | #define NFS_MAXNAMLEN 255 | |
39 | #define NFS_FHSIZE 32 | |
40 | #define NFS_NPROCS 18 | |
41 | ||
42 | /* Stat numbers for rpc returns */ | |
43 | #define NFS_OK 0 | |
44 | #define NFSERR_PERM 1 | |
45 | #define NFSERR_NOENT 2 | |
46 | #define NFSERR_IO 5 | |
47 | #define NFSERR_NXIO 6 | |
48 | #define NFSERR_ACCES 13 | |
49 | #define NFSERR_EXIST 17 | |
50 | #define NFSERR_NODEV 19 | |
51 | #define NFSERR_NOTDIR 20 | |
52 | #define NFSERR_ISDIR 21 | |
53 | #define NFSERR_FBIG 27 | |
54 | #define NFSERR_NOSPC 28 | |
55 | #define NFSERR_ROFS 30 | |
56 | #define NFSERR_NAMETOOLONG 63 | |
57 | #define NFSERR_NOTEMPTY 66 | |
58 | #define NFSERR_DQUOT 69 | |
59 | #define NFSERR_STALE 70 | |
60 | #define NFSERR_WFLUSH 99 | |
61 | ||
62 | /* Sizes in bytes of various nfs rpc components */ | |
63 | #define NFSX_FH 32 | |
64 | #define NFSX_UNSIGNED 4 | |
65 | #define NFSX_FATTR 68 | |
66 | #define NFSX_SATTR 32 | |
67 | #define NFSX_COOKIE 4 | |
68 | #define NFSX_STATFS 20 | |
69 | ||
70 | /* nfs rpc procedure numbers */ | |
71 | #define NFSPROC_NULL 0 | |
72 | #define NFSPROC_GETATTR 1 | |
73 | #define NFSPROC_SETATTR 2 | |
74 | #define NFSPROC_ROOT 3 /* Obsolete */ | |
75 | #define NFSPROC_LOOKUP 4 | |
76 | #define NFSPROC_READLINK 5 | |
77 | #define NFSPROC_READ 6 | |
78 | #define NFSPROC_WRITECACHE 7 /* Obsolete */ | |
79 | #define NFSPROC_WRITE 8 | |
80 | #define NFSPROC_CREATE 9 | |
81 | #define NFSPROC_REMOVE 10 | |
82 | #define NFSPROC_RENAME 11 | |
83 | #define NFSPROC_LINK 12 | |
84 | #define NFSPROC_SYMLINK 13 | |
85 | #define NFSPROC_MKDIR 14 | |
86 | #define NFSPROC_RMDIR 15 | |
87 | #define NFSPROC_READDIR 16 | |
88 | #define NFSPROC_STATFS 17 | |
89 | ||
90 | /* Conversion macros */ | |
91 | #define vtonfs_mode(t,m) txdr_unsigned(MAKEIMODE(t,m)) | |
92 | #define nfstov_mode(a) (fxdr_unsigned(u_short, (a))&07777) | |
93 | #define vtonfs_type(a) txdr_unsigned(nfs_type[((long)(a))]) | |
94 | #define nfstov_type(a) v_type[fxdr_unsigned(u_long, (a))] | |
95 | ||
96 | /* File types */ | |
97 | typedef enum { NFNON=0, NFREG=1, NFDIR=2, NFBLK=3, NFCHR=4, NFLNK=5 } nfstype; |