source: svn/trunk/newcon3bcm2_21bu/toolchain/mips-linux-uclibc/include/linux/nfs4.h

Last change on this file was 2, checked in by jglee, 11 years ago

first commit

  • Property svn:executable set to *
File size: 10.2 KB
RevLine 
[2]1/*
2 *  include/linux/nfs4.h
3 *
4 *  NFSv4 protocol definitions.
5 *
6 *  Copyright (c) 2002 The Regents of the University of Michigan.
7 *  All rights reserved.
8 *
9 *  Kendrick Smith <kmsmith@umich.edu>
10 *  Andy Adamson   <andros@umich.edu>
11 */
12
13#ifndef _LINUX_NFS4_H
14#define _LINUX_NFS4_H
15
16#include <linux/types.h>
17
18#define NFS4_VERIFIER_SIZE      8
19#define NFS4_FHSIZE             128
20#define NFS4_MAXPATHLEN         PATH_MAX
21#define NFS4_MAXNAMLEN          NAME_MAX
22
23#define NFS4_ACCESS_READ        0x0001
24#define NFS4_ACCESS_LOOKUP      0x0002
25#define NFS4_ACCESS_MODIFY      0x0004
26#define NFS4_ACCESS_EXTEND      0x0008
27#define NFS4_ACCESS_DELETE      0x0010
28#define NFS4_ACCESS_EXECUTE     0x0020
29
30#define NFS4_FH_PERISTENT               0x0000
31#define NFS4_FH_NOEXPIRE_WITH_OPEN      0x0001
32#define NFS4_FH_VOLATILE_ANY            0x0002
33#define NFS4_FH_VOL_MIGRATION           0x0004
34#define NFS4_FH_VOL_RENAME              0x0008
35
36#define NFS4_OPEN_RESULT_CONFIRM 0x0002
37#define NFS4_OPEN_RESULT_LOCKTYPE_POSIX 0x0004
38
39#define NFS4_SHARE_ACCESS_READ  0x0001
40#define NFS4_SHARE_ACCESS_WRITE 0x0002
41#define NFS4_SHARE_ACCESS_BOTH  0x0003
42#define NFS4_SHARE_DENY_READ    0x0001
43#define NFS4_SHARE_DENY_WRITE   0x0002
44#define NFS4_SHARE_DENY_BOTH    0x0003
45
46#define NFS4_SET_TO_SERVER_TIME 0
47#define NFS4_SET_TO_CLIENT_TIME 1
48
49#define NFS4_ACE_ACCESS_ALLOWED_ACE_TYPE 0
50#define NFS4_ACE_ACCESS_DENIED_ACE_TYPE  1
51#define NFS4_ACE_SYSTEM_AUDIT_ACE_TYPE   2
52#define NFS4_ACE_SYSTEM_ALARM_ACE_TYPE   3
53
54#define ACL4_SUPPORT_ALLOW_ACL 0x01
55#define ACL4_SUPPORT_DENY_ACL  0x02
56#define ACL4_SUPPORT_AUDIT_ACL 0x04
57#define ACL4_SUPPORT_ALARM_ACL 0x08
58
59#define NFS4_ACE_FILE_INHERIT_ACE             0x00000001
60#define NFS4_ACE_DIRECTORY_INHERIT_ACE        0x00000002
61#define NFS4_ACE_NO_PROPAGATE_INHERIT_ACE     0x00000004
62#define NFS4_ACE_INHERIT_ONLY_ACE             0x00000008
63#define NFS4_ACE_SUCCESSFUL_ACCESS_ACE_FLAG   0x00000010
64#define NFS4_ACE_FAILED_ACCESS_ACE_FLAG       0x00000020
65#define NFS4_ACE_IDENTIFIER_GROUP             0x00000040
66#define NFS4_ACE_OWNER                        0x00000080
67#define NFS4_ACE_GROUP                        0x00000100
68#define NFS4_ACE_EVERYONE                     0x00000200
69
70#define NFS4_ACE_READ_DATA                    0x00000001
71#define NFS4_ACE_LIST_DIRECTORY               0x00000001
72#define NFS4_ACE_WRITE_DATA                   0x00000002
73#define NFS4_ACE_ADD_FILE                     0x00000002
74#define NFS4_ACE_APPEND_DATA                  0x00000004
75#define NFS4_ACE_ADD_SUBDIRECTORY             0x00000004
76#define NFS4_ACE_READ_NAMED_ATTRS             0x00000008
77#define NFS4_ACE_WRITE_NAMED_ATTRS            0x00000010
78#define NFS4_ACE_EXECUTE                      0x00000020
79#define NFS4_ACE_DELETE_CHILD                 0x00000040
80#define NFS4_ACE_READ_ATTRIBUTES              0x00000080
81#define NFS4_ACE_WRITE_ATTRIBUTES             0x00000100
82#define NFS4_ACE_DELETE                       0x00010000
83#define NFS4_ACE_READ_ACL                     0x00020000
84#define NFS4_ACE_WRITE_ACL                    0x00040000
85#define NFS4_ACE_WRITE_OWNER                  0x00080000
86#define NFS4_ACE_SYNCHRONIZE                  0x00100000
87#define NFS4_ACE_GENERIC_READ                 0x00120081
88#define NFS4_ACE_GENERIC_WRITE                0x00160106
89#define NFS4_ACE_GENERIC_EXECUTE              0x001200A0
90#define NFS4_ACE_MASK_ALL                     0x001F01FF
91
92enum nfs4_acl_whotype {
93        NFS4_ACL_WHO_NAMED = 0,
94        NFS4_ACL_WHO_OWNER,
95        NFS4_ACL_WHO_GROUP,
96        NFS4_ACL_WHO_EVERYONE
97};
98
99typedef struct { char data[NFS4_VERIFIER_SIZE]; } nfs4_verifier;
100typedef struct { char data[16]; } nfs4_stateid;
101
102enum nfs_opnum4 {
103        OP_ACCESS = 3,
104        OP_CLOSE = 4,
105        OP_COMMIT = 5,
106        OP_CREATE = 6,
107        OP_DELEGPURGE = 7,
108        OP_DELEGRETURN = 8,
109        OP_GETATTR = 9,
110        OP_GETFH = 10,
111        OP_LINK = 11,
112        OP_LOCK = 12,
113        OP_LOCKT = 13,
114        OP_LOCKU = 14,
115        OP_LOOKUP = 15,
116        OP_LOOKUPP = 16,
117        OP_NVERIFY = 17,
118        OP_OPEN = 18,
119        OP_OPENATTR = 19,
120        OP_OPEN_CONFIRM = 20,
121        OP_OPEN_DOWNGRADE = 21,
122        OP_PUTFH = 22,
123        OP_PUTPUBFH = 23,
124        OP_PUTROOTFH = 24,
125        OP_READ = 25,
126        OP_READDIR = 26,
127        OP_READLINK = 27,
128        OP_REMOVE = 28,
129        OP_RENAME = 29,
130        OP_RENEW = 30,
131        OP_RESTOREFH = 31,
132        OP_SAVEFH = 32,
133        OP_SECINFO = 33,
134        OP_SETATTR = 34,
135        OP_SETCLIENTID = 35,
136        OP_SETCLIENTID_CONFIRM = 36,
137        OP_VERIFY = 37,
138        OP_WRITE = 38,
139        OP_RELEASE_LOCKOWNER = 39,
140        OP_ILLEGAL = 10044
141};
142
143enum nfsstat4 {
144        NFS4_OK = 0,
145        NFS4ERR_PERM = 1,
146        NFS4ERR_NOENT = 2,
147        NFS4ERR_IO = 5,
148        NFS4ERR_NXIO = 6,
149        NFS4ERR_ACCESS = 13,
150        NFS4ERR_EXIST = 17,
151        NFS4ERR_XDEV = 18,
152        /* Unused/reserved 19 */
153        NFS4ERR_NOTDIR = 20,
154        NFS4ERR_ISDIR = 21,
155        NFS4ERR_INVAL = 22,
156        NFS4ERR_FBIG = 27,
157        NFS4ERR_NOSPC = 28,
158        NFS4ERR_ROFS = 30,
159        NFS4ERR_MLINK = 31,
160        NFS4ERR_NAMETOOLONG = 63,
161        NFS4ERR_NOTEMPTY = 66,
162        NFS4ERR_DQUOT = 69,
163        NFS4ERR_STALE = 70,
164        NFS4ERR_BADHANDLE = 10001,
165        NFS4ERR_BAD_COOKIE = 10003,
166        NFS4ERR_NOTSUPP = 10004,
167        NFS4ERR_TOOSMALL = 10005,
168        NFS4ERR_SERVERFAULT = 10006,
169        NFS4ERR_BADTYPE = 10007,
170        NFS4ERR_DELAY = 10008,
171        NFS4ERR_SAME = 10009,
172        NFS4ERR_DENIED = 10010,
173        NFS4ERR_EXPIRED = 10011,
174        NFS4ERR_LOCKED = 10012,
175        NFS4ERR_GRACE = 10013,
176        NFS4ERR_FHEXPIRED = 10014,
177        NFS4ERR_SHARE_DENIED = 10015,
178        NFS4ERR_WRONGSEC = 10016,
179        NFS4ERR_CLID_INUSE = 10017,
180        NFS4ERR_RESOURCE = 10018,
181        NFS4ERR_MOVED = 10019,
182        NFS4ERR_NOFILEHANDLE = 10020,
183        NFS4ERR_MINOR_VERS_MISMATCH = 10021,
184        NFS4ERR_STALE_CLIENTID = 10022,
185        NFS4ERR_STALE_STATEID = 10023,
186        NFS4ERR_OLD_STATEID = 10024,
187        NFS4ERR_BAD_STATEID = 10025,
188        NFS4ERR_BAD_SEQID = 10026,
189        NFS4ERR_NOT_SAME = 10027,
190        NFS4ERR_LOCK_RANGE = 10028,
191        NFS4ERR_SYMLINK = 10029,
192        NFS4ERR_RESTOREFH = 10030,
193        NFS4ERR_LEASE_MOVED = 10031,
194        NFS4ERR_ATTRNOTSUPP = 10032,
195        NFS4ERR_NO_GRACE = 10033,
196        NFS4ERR_RECLAIM_BAD = 10034,
197        NFS4ERR_RECLAIM_CONFLICT = 10035,
198        NFS4ERR_BADXDR = 10036,
199        NFS4ERR_LOCKS_HELD = 10037,
200        NFS4ERR_OPENMODE = 10038,
201        NFS4ERR_BADOWNER = 10039,
202        NFS4ERR_BADCHAR = 10040,
203        NFS4ERR_BADNAME = 10041,
204        NFS4ERR_BAD_RANGE = 10042,
205        NFS4ERR_LOCK_NOTSUPP = 10043,
206        NFS4ERR_OP_ILLEGAL = 10044,
207        NFS4ERR_DEADLOCK = 10045,
208        NFS4ERR_FILE_OPEN = 10046,
209        NFS4ERR_ADMIN_REVOKED = 10047,
210        NFS4ERR_CB_PATH_DOWN = 10048
211};
212
213/*
214 * Note: NF4BAD is not actually part of the protocol; it is just used
215 * internally by nfsd.
216 */
217enum nfs_ftype4 {
218        NF4BAD          = 0,
219        NF4REG          = 1,    /* Regular File */
220        NF4DIR          = 2,    /* Directory */
221        NF4BLK          = 3,    /* Special File - block device */
222        NF4CHR          = 4,    /* Special File - character device */
223        NF4LNK          = 5,    /* Symbolic Link */
224        NF4SOCK         = 6,    /* Special File - socket */
225        NF4FIFO         = 7,    /* Special File - fifo */
226        NF4ATTRDIR      = 8,    /* Attribute Directory */
227        NF4NAMEDATTR    = 9     /* Named Attribute */
228};
229
230enum open_claim_type4 {
231        NFS4_OPEN_CLAIM_NULL = 0,
232        NFS4_OPEN_CLAIM_PREVIOUS = 1,
233        NFS4_OPEN_CLAIM_DELEGATE_CUR = 2,
234        NFS4_OPEN_CLAIM_DELEGATE_PREV = 3
235};
236
237enum opentype4 {
238        NFS4_OPEN_NOCREATE = 0,
239        NFS4_OPEN_CREATE = 1
240};
241
242enum createmode4 {
243        NFS4_CREATE_UNCHECKED = 0,
244        NFS4_CREATE_GUARDED = 1,
245        NFS4_CREATE_EXCLUSIVE = 2
246};
247
248enum limit_by4 {
249        NFS4_LIMIT_SIZE = 1,
250        NFS4_LIMIT_BLOCKS = 2
251};
252
253enum open_delegation_type4 {
254        NFS4_OPEN_DELEGATE_NONE = 0,
255        NFS4_OPEN_DELEGATE_READ = 1,
256        NFS4_OPEN_DELEGATE_WRITE = 2
257};
258
259enum lock_type4 {
260        NFS4_UNLOCK_LT = 0,
261        NFS4_READ_LT = 1,
262        NFS4_WRITE_LT = 2,
263        NFS4_READW_LT = 3,
264        NFS4_WRITEW_LT = 4
265};
266
267
268/* Mandatory Attributes */
269#define FATTR4_WORD0_SUPPORTED_ATTRS    (1UL << 0)
270#define FATTR4_WORD0_TYPE               (1UL << 1)
271#define FATTR4_WORD0_FH_EXPIRE_TYPE     (1UL << 2)
272#define FATTR4_WORD0_CHANGE             (1UL << 3)
273#define FATTR4_WORD0_SIZE               (1UL << 4)
274#define FATTR4_WORD0_LINK_SUPPORT       (1UL << 5)
275#define FATTR4_WORD0_SYMLINK_SUPPORT    (1UL << 6)
276#define FATTR4_WORD0_NAMED_ATTR         (1UL << 7)
277#define FATTR4_WORD0_FSID               (1UL << 8)
278#define FATTR4_WORD0_UNIQUE_HANDLES     (1UL << 9)
279#define FATTR4_WORD0_LEASE_TIME         (1UL << 10)
280#define FATTR4_WORD0_RDATTR_ERROR       (1UL << 11)
281
282/* Recommended Attributes */
283#define FATTR4_WORD0_ACL                (1UL << 12)
284#define FATTR4_WORD0_ACLSUPPORT         (1UL << 13)
285#define FATTR4_WORD0_ARCHIVE            (1UL << 14)
286#define FATTR4_WORD0_CANSETTIME         (1UL << 15)
287#define FATTR4_WORD0_CASE_INSENSITIVE   (1UL << 16)
288#define FATTR4_WORD0_CASE_PRESERVING    (1UL << 17)
289#define FATTR4_WORD0_CHOWN_RESTRICTED   (1UL << 18)
290#define FATTR4_WORD0_FILEHANDLE         (1UL << 19)
291#define FATTR4_WORD0_FILEID             (1UL << 20)
292#define FATTR4_WORD0_FILES_AVAIL        (1UL << 21)
293#define FATTR4_WORD0_FILES_FREE         (1UL << 22)
294#define FATTR4_WORD0_FILES_TOTAL        (1UL << 23)
295#define FATTR4_WORD0_FS_LOCATIONS       (1UL << 24)
296#define FATTR4_WORD0_HIDDEN             (1UL << 25)
297#define FATTR4_WORD0_HOMOGENEOUS        (1UL << 26)
298#define FATTR4_WORD0_MAXFILESIZE        (1UL << 27)
299#define FATTR4_WORD0_MAXLINK            (1UL << 28)
300#define FATTR4_WORD0_MAXNAME            (1UL << 29)
301#define FATTR4_WORD0_MAXREAD            (1UL << 30)
302#define FATTR4_WORD0_MAXWRITE           (1UL << 31)
303#define FATTR4_WORD1_MIMETYPE           (1UL << 0)
304#define FATTR4_WORD1_MODE               (1UL << 1)
305#define FATTR4_WORD1_NO_TRUNC           (1UL << 2)
306#define FATTR4_WORD1_NUMLINKS           (1UL << 3)
307#define FATTR4_WORD1_OWNER              (1UL << 4)
308#define FATTR4_WORD1_OWNER_GROUP        (1UL << 5)
309#define FATTR4_WORD1_QUOTA_HARD         (1UL << 6)
310#define FATTR4_WORD1_QUOTA_SOFT         (1UL << 7)
311#define FATTR4_WORD1_QUOTA_USED         (1UL << 8)
312#define FATTR4_WORD1_RAWDEV             (1UL << 9)
313#define FATTR4_WORD1_SPACE_AVAIL        (1UL << 10)
314#define FATTR4_WORD1_SPACE_FREE         (1UL << 11)
315#define FATTR4_WORD1_SPACE_TOTAL        (1UL << 12)
316#define FATTR4_WORD1_SPACE_USED         (1UL << 13)
317#define FATTR4_WORD1_SYSTEM             (1UL << 14)
318#define FATTR4_WORD1_TIME_ACCESS        (1UL << 15)
319#define FATTR4_WORD1_TIME_ACCESS_SET    (1UL << 16)
320#define FATTR4_WORD1_TIME_BACKUP        (1UL << 17)
321#define FATTR4_WORD1_TIME_CREATE        (1UL << 18)
322#define FATTR4_WORD1_TIME_DELTA         (1UL << 19)
323#define FATTR4_WORD1_TIME_METADATA      (1UL << 20)
324#define FATTR4_WORD1_TIME_MODIFY        (1UL << 21)
325#define FATTR4_WORD1_TIME_MODIFY_SET    (1UL << 22)
326#define FATTR4_WORD1_MOUNTED_ON_FILEID  (1UL << 23)
327
328#define NFSPROC4_NULL 0
329#define NFSPROC4_COMPOUND 1
330#define NFS4_MINOR_VERSION 0
331#define NFS4_DEBUG 1
332
333#endif
334
335/*
336 * Local variables:
337 *  c-basic-offset: 8
338 * End:
339 */
Note: See TracBrowser for help on using the repository browser.