1 /* NFSv4.1 client for Windows
2 * Copyright © 2012 The Regents of the University of Michigan
4 * Olga Kornievskaia <aglo@umich.edu>
5 * Casey Bodley <cbodley@umich.edu>
7 * This library is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU Lesser General Public License as published by
9 * the Free Software Foundation; either version 2.1 of the License, or (at
10 * your option) any later version.
12 * This library is distributed in the hope that it will be useful, but
13 * without any warranty; without even the implied warranty of merchantability
14 * or fitness for a particular purpose. See the GNU Lesser General Public
15 * License for more details.
17 * You should have received a copy of the GNU Lesser General Public License
18 * along with this library; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA
22 #ifndef __NFS41_NFS_CONST_H__
23 #define __NFS41_NFS_CONST_H__
29 #define NFS4_FHSIZE 128
30 #define NFS4_VERIFIER_SIZE 8
31 #define NFS4_OPAQUE_LIMIT 1024
32 #define NFS4_SESSIONID_SIZE 16
33 #define NFS4_STATEID_OTHER 12
34 #define NFS4_EASIZE 256
35 #define NFS4_EANAME_SIZE 128
38 #define NFS41_MAX_FILEIO_SIZE (1024 * 1024)
39 #define NFS41_MAX_SERVER_CACHE 1024
40 #define NFS41_MAX_RPC_REQS 128
42 #define UPCALL_BUF_SIZE 2048
44 /* MaximumComponentNameLength reported for FileFsAttributeInformation */
45 #define NFS41_MAX_COMPONENT_LEN 256
46 #define NFS41_MAX_PATH_LEN 1280
48 #define NFS41_HOSTNAME_LEN 64
49 #define NFS41_ADDRS_PER_SERVER 4
51 /* max length of ipv6 address 48
52 * sizeof(".255.255") + 8 */
53 #define NFS41_UNIVERSAL_ADDR_LEN 56
55 /* "udp" "tcp" "udp6" "tcp6" */
56 #define NFS41_NETWORK_ID_LEN 4
58 /* msdn: There is a maximum of 31 reparse points (and
59 * therefore symbolic links) allowed in a particular path. */
60 #define NFS41_MAX_SYMLINK_DEPTH 31
63 /* 424 bytes: max rpc header for reply with data */
64 /* 32 bytes: max COMPOUND response */
65 /* 40 bytes: max SEQUENCE response */
66 /* 4 bytes: max PUTFH response */
67 /* 12 bytes: max READ response */
68 #define READ_OVERHEAD 512
70 /* 840 bytes: max rpc header for call */
71 /* 32 bytes: max COMPOUND request */
72 /* 32 bytes: max SEQUENCE request */
73 /* 132 bytes: max PUTFH request */
74 /* 32 bytes: max WRITE request */
75 #define WRITE_OVERHEAD 1068
78 #define NFS41_RPC_PROGRAM 100003
79 #define NFS41_RPC_VERSION 4
80 #define NFS41_RPC_CBPROGRAM 0x2358
87 NFS4_OK
= 0, /* everything is okay */
88 NFS4ERR_PERM
= 1, /* caller not privileged */
89 NFS4ERR_NOENT
= 2, /* no such file/directory */
90 NFS4ERR_IO
= 5, /* hard I/O error */
91 NFS4ERR_NXIO
= 6, /* no such device */
92 NFS4ERR_ACCESS
= 13, /* access denied */
93 NFS4ERR_EXIST
= 17, /* file already exists */
94 NFS4ERR_XDEV
= 18, /* different filesystems */
96 NFS4ERR_NOTDIR
= 20, /* should be a directory */
97 NFS4ERR_ISDIR
= 21, /* should not be directory */
98 NFS4ERR_INVAL
= 22, /* invalid argument */
99 NFS4ERR_FBIG
= 27, /* file exceeds server max */
100 NFS4ERR_NOSPC
= 28, /* no space on filesystem */
101 NFS4ERR_ROFS
= 30, /* read-only filesystem */
102 NFS4ERR_MLINK
= 31, /* too many hard links */
103 NFS4ERR_NAMETOOLONG
= 63, /* name exceeds server max */
104 NFS4ERR_NOTEMPTY
= 66, /* directory not empty */
105 NFS4ERR_DQUOT
= 69, /* hard quota limit reached*/
106 NFS4ERR_STALE
= 70, /* file no longer exists */
107 NFS4ERR_BADHANDLE
= 10001, /* Illegal filehandle */
108 NFS4ERR_BAD_COOKIE
= 10003, /* READDIR cookie is stale */
109 NFS4ERR_NOTSUPP
= 10004, /* operation not supported */
110 NFS4ERR_TOOSMALL
= 10005, /* response limit exceeded */
111 NFS4ERR_SERVERFAULT
= 10006, /* undefined server error */
112 NFS4ERR_BADTYPE
= 10007, /* type invalid for CREATE */
113 NFS4ERR_DELAY
= 10008, /* file "busy" - retry */
114 NFS4ERR_SAME
= 10009, /* nverify says attrs same */
115 NFS4ERR_DENIED
= 10010, /* lock unavailable */
116 NFS4ERR_EXPIRED
= 10011, /* lock lease expired */
117 NFS4ERR_LOCKED
= 10012, /* I/O failed due to lock */
118 NFS4ERR_GRACE
= 10013, /* in grace period */
119 NFS4ERR_FHEXPIRED
= 10014, /* filehandle expired */
120 NFS4ERR_SHARE_DENIED
= 10015, /* share reserve denied */
121 NFS4ERR_WRONGSEC
= 10016, /* wrong security flavor */
122 NFS4ERR_CLID_INUSE
= 10017, /* clientid in use */
124 /* NFS4ERR_RESOURCE is not a valid error in NFSv4.1 */
125 NFS4ERR_RESOURCE
= 10018, /* resource exhaustion */
126 NFS4ERR_MOVED
= 10019, /* filesystem relocated */
127 NFS4ERR_NOFILEHANDLE
= 10020, /* current FH is not set */
128 NFS4ERR_MINOR_VERS_MISMATCH
= 10021, /* minor vers not supp */
129 NFS4ERR_STALE_CLIENTID
= 10022, /* server has rebooted */
130 NFS4ERR_STALE_STATEID
= 10023, /* server has rebooted */
131 NFS4ERR_OLD_STATEID
= 10024, /* state is out of sync */
132 NFS4ERR_BAD_STATEID
= 10025, /* incorrect stateid */
133 NFS4ERR_BAD_SEQID
= 10026, /* request is out of seq. */
134 NFS4ERR_NOT_SAME
= 10027, /* verify - attrs not same */
135 NFS4ERR_LOCK_RANGE
= 10028, /* overlapping lock range */
136 NFS4ERR_SYMLINK
= 10029, /* should be file/directory*/
137 NFS4ERR_RESTOREFH
= 10030, /* no saved filehandle */
138 NFS4ERR_LEASE_MOVED
= 10031, /* some filesystem moved */
139 NFS4ERR_ATTRNOTSUPP
= 10032, /* recommended attr not sup*/
140 NFS4ERR_NO_GRACE
= 10033, /* reclaim outside of grace*/
141 NFS4ERR_RECLAIM_BAD
= 10034, /* reclaim error at server */
142 NFS4ERR_RECLAIM_CONFLICT
= 10035, /* conflict on reclaim */
143 NFS4ERR_BADXDR
= 10036, /* XDR decode failed */
144 NFS4ERR_LOCKS_HELD
= 10037, /* file locks held at CLOSE*/
145 NFS4ERR_OPENMODE
= 10038, /* conflict in OPEN and I/O*/
146 NFS4ERR_BADOWNER
= 10039, /* owner translation bad */
147 NFS4ERR_BADCHAR
= 10040, /* utf-8 char not supported*/
148 NFS4ERR_BADNAME
= 10041, /* name not supported */
149 NFS4ERR_BAD_RANGE
= 10042, /* lock range not supported*/
150 NFS4ERR_LOCK_NOTSUPP
= 10043, /* no atomic up/downgrade */
151 NFS4ERR_OP_ILLEGAL
= 10044, /* undefined operation */
152 NFS4ERR_DEADLOCK
= 10045, /* file locking deadlock */
153 NFS4ERR_FILE_OPEN
= 10046, /* open file blocks op. */
154 NFS4ERR_ADMIN_REVOKED
= 10047, /* lockowner state revoked */
155 NFS4ERR_CB_PATH_DOWN
= 10048, /* callback path down */
157 /* NFSv4.1 errors start here. */
158 NFS4ERR_BADIOMODE
= 10049,
159 NFS4ERR_BADLAYOUT
= 10050,
160 NFS4ERR_BAD_SESSION_DIGEST
= 10051,
161 NFS4ERR_BADSESSION
= 10052,
162 NFS4ERR_BADSLOT
= 10053,
163 NFS4ERR_COMPLETE_ALREADY
= 10054,
164 NFS4ERR_CONN_NOT_BOUND_TO_SESSION
= 10055,
165 NFS4ERR_DELEG_ALREADY_WANTED
= 10056,
166 NFS4ERR_BACK_CHAN_BUSY
= 10057, /*backchan reqs outstanding*/
167 NFS4ERR_LAYOUTTRYLATER
= 10058,
168 NFS4ERR_LAYOUTUNAVAILABLE
= 10059,
169 NFS4ERR_NOMATCHING_LAYOUT
= 10060,
170 NFS4ERR_RECALLCONFLICT
= 10061,
171 NFS4ERR_UNKNOWN_LAYOUTTYPE
= 10062,
172 NFS4ERR_SEQ_MISORDERED
= 10063, /* unexpected seq.ID in req*/
173 NFS4ERR_SEQUENCE_POS
= 10064, /* [CB_]SEQ. op not 1st op */
174 NFS4ERR_REQ_TOO_BIG
= 10065, /* request too big */
175 NFS4ERR_REP_TOO_BIG
= 10066, /* reply too big */
176 NFS4ERR_REP_TOO_BIG_TO_CACHE
= 10067, /* rep. not all cached */
177 NFS4ERR_RETRY_UNCACHED_REP
= 10068, /* retry & rep. uncached */
178 NFS4ERR_UNSAFE_COMPOUND
= 10069, /* retry/recovery too hard */
179 NFS4ERR_TOO_MANY_OPS
= 10070, /*too many ops in [CB_]COMP*/
180 NFS4ERR_OP_NOT_IN_SESSION
= 10071, /* op needs [CB_]SEQ. op */
181 NFS4ERR_HASH_ALG_UNSUPP
= 10072, /* hash alg. not supp. */
182 /* Error 10073 is unused. */
183 NFS4ERR_CLIENTID_BUSY
= 10074, /* clientid has state */
184 NFS4ERR_PNFS_IO_HOLE
= 10075, /* IO to _SPARSE file hole */
185 NFS4ERR_SEQ_FALSE_RETRY
= 10076, /* Retry != original req. */
186 NFS4ERR_BAD_HIGH_SLOT
= 10077, /* req has bad highest_slot*/
187 NFS4ERR_DEADSESSION
= 10078, /*new req sent to dead sess*/
188 NFS4ERR_ENCR_ALG_UNSUPP
= 10079, /* encr alg. not supp. */
189 NFS4ERR_PNFS_NO_LAYOUT
= 10080, /* I/O without a layout */
190 NFS4ERR_NOT_ONLY_OP
= 10081, /* addl ops not allowed */
191 NFS4ERR_WRONG_CRED
= 10082, /* op done by wrong cred */
192 NFS4ERR_WRONG_TYPE
= 10083, /* op on wrong type object */
193 NFS4ERR_DIRDELEG_UNAVAIL
= 10084, /* delegation not avail. */
194 NFS4ERR_REJECT_DELEG
= 10085, /* cb rejected delegation */
195 NFS4ERR_RETURNCONFLICT
= 10086, /* layout get before return*/
196 NFS4ERR_DELEG_REVOKED
= 10087 /* deleg./layout revoked */
199 #define MAKE_WORD0(XXX) (1 << XXX)
200 #define MAKE_WORD1(XXX) (1 << (XXX-32))
201 #define MAKE_WORD2(XXX) (1 << (XXX-64))
205 * Mandatory Attributes
207 FATTR4_WORD0_SUPPORTED_ATTRS
= MAKE_WORD0(0),
208 FATTR4_WORD0_TYPE
= MAKE_WORD0(1),
209 FATTR4_WORD0_FH_EXPIRE_TYPE
= MAKE_WORD0(2),
210 FATTR4_WORD0_CHANGE
= MAKE_WORD0(3),
211 FATTR4_WORD0_SIZE
= MAKE_WORD0(4),
212 FATTR4_WORD0_LINK_SUPPORT
= MAKE_WORD0(5),
213 FATTR4_WORD0_SYMLINK_SUPPORT
= MAKE_WORD0(6),
214 FATTR4_WORD0_NAMED_ATTR
= MAKE_WORD0(7),
215 FATTR4_WORD0_FSID
= MAKE_WORD0(8),
216 FATTR4_WORD0_UNIQUE_HANDLES
= MAKE_WORD0(9),
217 FATTR4_WORD0_LEASE_TIME
= MAKE_WORD0(10),
218 FATTR4_WORD0_RDATTR_ERROR
= MAKE_WORD0(11),
219 FATTR4_WORD0_FILEHANDLE
= MAKE_WORD0(19),
220 FATTR4_WORD2_SUPPATTR_EXCLCREAT
= MAKE_WORD2(75),
223 * Recommended Attributes
225 FATTR4_WORD0_ACL
= MAKE_WORD0(12),
226 FATTR4_WORD0_ACLSUPPORT
= MAKE_WORD0(13),
227 FATTR4_WORD0_ARCHIVE
= MAKE_WORD0(14),
228 FATTR4_WORD0_CANSETTIME
= MAKE_WORD0(15),
229 FATTR4_WORD0_CASE_INSENSITIVE
= MAKE_WORD0(16),
230 FATTR4_WORD0_CASE_PRESERVING
= MAKE_WORD0(17),
231 FATTR4_WORD0_CHOWN_RESTRICTED
= MAKE_WORD0(18),
232 FATTR4_WORD0_FILEID
= MAKE_WORD0(20),
233 FATTR4_WORD0_FILES_AVAIL
= MAKE_WORD0(21),
234 FATTR4_WORD0_FILES_FREE
= MAKE_WORD0(22),
235 FATTR4_WORD0_FILES_TOTAL
= MAKE_WORD0(23),
236 FATTR4_WORD0_FS_LOCATIONS
= MAKE_WORD0(24),
237 FATTR4_WORD0_HIDDEN
= MAKE_WORD0(25),
238 FATTR4_WORD0_HOMOGENEOUS
= MAKE_WORD0(26),
239 FATTR4_WORD0_MAXFILESIZE
= MAKE_WORD0(27),
240 FATTR4_WORD0_MAXLINK
= MAKE_WORD0(28),
241 FATTR4_WORD0_MAXNAME
= MAKE_WORD0(29),
242 FATTR4_WORD0_MAXREAD
= MAKE_WORD0(30),
243 FATTR4_WORD0_MAXWRITE
= MAKE_WORD0(31),
244 FATTR4_WORD1_MIMETYPE
= MAKE_WORD1(32),
245 FATTR4_WORD1_MODE
= MAKE_WORD1(33),
246 FATTR4_WORD1_NO_TRUNC
= MAKE_WORD1(34),
247 FATTR4_WORD1_NUMLINKS
= MAKE_WORD1(35),
248 FATTR4_WORD1_OWNER
= MAKE_WORD1(36),
249 FATTR4_WORD1_OWNER_GROUP
= MAKE_WORD1(37),
250 FATTR4_WORD1_QUOTA_AVAIL_HARD
= MAKE_WORD1(38),
251 FATTR4_WORD1_QUOTA_AVAIL_SOFT
= MAKE_WORD1(39),
252 FATTR4_WORD1_QUOTA_USED
= MAKE_WORD1(40),
253 FATTR4_WORD1_RAWDEV
= MAKE_WORD1(41),
254 FATTR4_WORD1_SPACE_AVAIL
= MAKE_WORD1(42),
255 FATTR4_WORD1_SPACE_FREE
= MAKE_WORD1(43),
256 FATTR4_WORD1_SPACE_TOTAL
= MAKE_WORD1(44),
257 FATTR4_WORD1_SPACE_USED
= MAKE_WORD1(45),
258 FATTR4_WORD1_SYSTEM
= MAKE_WORD1(46),
259 FATTR4_WORD1_TIME_ACCESS
= MAKE_WORD1(47),
260 FATTR4_WORD1_TIME_ACCESS_SET
= MAKE_WORD1(48),
261 FATTR4_WORD1_TIME_BACKUP
= MAKE_WORD1(49),
262 FATTR4_WORD1_TIME_CREATE
= MAKE_WORD1(50),
263 FATTR4_WORD1_TIME_DELTA
= MAKE_WORD1(51),
264 FATTR4_WORD1_TIME_METADATA
= MAKE_WORD1(52),
265 FATTR4_WORD1_TIME_MODIFY
= MAKE_WORD1(53),
266 FATTR4_WORD1_TIME_MODIFY_SET
= MAKE_WORD1(54),
267 FATTR4_WORD1_MOUNTED_ON_FILEID
= MAKE_WORD1(55),
268 FATTR4_WORD1_DIR_NOTIF_DELAY
= MAKE_WORD1(56),
269 FATTR4_WORD1_DIRENT_NOTIF_DELAY
= MAKE_WORD1(57),
270 FATTR4_WORD1_DACL
= MAKE_WORD1(58),
271 FATTR4_WORD1_SACL
= MAKE_WORD1(59),
272 FATTR4_WORD1_CHANGE_POLICY
= MAKE_WORD1(60),
273 FATTR4_WORD1_FS_STATUS
= MAKE_WORD1(61),
274 FATTR4_WORD1_FS_LAYOUT_TYPE
= MAKE_WORD1(62),
275 FATTR4_WORD1_LAYOUT_HINT
= MAKE_WORD1(63),
276 FATTR4_WORD2_LAYOUT_TYPE
= MAKE_WORD2(64),
277 FATTR4_WORD2_LAYOUT_BLKSIZE
= MAKE_WORD2(65),
278 FATTR4_WORD2_LAYOUT_ALIGNMENT
= MAKE_WORD2(66),
279 FATTR4_WORD2_FS_LOCATIONS_INFO
= MAKE_WORD2(67),
280 FATTR4_WORD2_MDSTHRESHOLD
= MAKE_WORD2(68),
281 FATTR4_WORD2_RETENTION_GET
= MAKE_WORD2(69),
282 FATTR4_WORD2_RETENTION_SET
= MAKE_WORD2(70),
283 FATTR4_WORD2_RETENTEVT_GET
= MAKE_WORD2(71),
284 FATTR4_WORD2_RETENTEVT_SET
= MAKE_WORD2(72),
285 FATTR4_WORD2_RETENTION_HOLD
= MAKE_WORD2(73),
286 FATTR4_WORD2_MODE_SET_MASKED
= MAKE_WORD2(74),
287 FATTR4_WORD2_FS_CHARSET_CAP
= MAKE_WORD2(76),
294 NF4REG
= 1, /* Regular File */
295 NF4DIR
= 2, /* Directory */
296 NF4BLK
= 3, /* Special File - block device */
297 NF4CHR
= 4, /* Special File - character device */
298 NF4LNK
= 5, /* Symbolic Link */
299 NF4SOCK
= 6, /* Special File - socket */
300 NF4FIFO
= 7, /* Special File - fifo */
301 NF4ATTRDIR
= 8, /* Attribute Directory */
302 NF4NAMEDATTR
= 9, /* Named Attribute */
307 #define CREATE_SESSION4_FLAG_PERSIST 0x00000001
308 #define CREATE_SESSION4_FLAG_CONN_BACK_CHAN 0x00000002
309 #define CREATE_SESSION4_FLAG_CONN_RDMA 0x00000004
311 /* ACLS aclsupport attribute values */
312 #define ACL4_SUPPORT_ALLOW_ACL 0x00000001
313 #define ACL4_SUPPORT_DENY_ACL 0x00000002
314 #define ACL4_SUPPORT_AUDIT_ACL 0x00000004
315 #define ACL4_SUPPORT_ALARM_ACL 0x00000008
317 /* ACLS acetype4 field constants */
318 #define ACE4_ACCESS_ALLOWED_ACE_TYPE 0x00000000
319 #define ACE4_ACCESS_DENIED_ACE_TYPE 0x00000001
320 #define ACE4_SYSTEM_AUDIT_ACE_TYPE 0x00000002
321 #define ACE4_SYSTEM_ALARM_ACE_TYPE 0x00000003
323 /* ACLS acemask4 field constants */
324 #define ACE4_READ_DATA 0x00000001
325 #define ACE4_LIST_DIRECTORY 0x00000001
326 #define ACE4_WRITE_DATA 0x00000002
327 #define ACE4_ADD_FILE 0x00000002
328 #define ACE4_APPEND_DATA 0x00000004
329 #define ACE4_ADD_SUBDIRECTORY 0x00000004
330 #define ACE4_READ_NAMED_ATTRS 0x00000008
331 #define ACE4_WRITE_NAMED_ATTRS 0x00000010
332 #define ACE4_EXECUTE 0x00000020
333 #define ACE4_DELETE_CHILD 0x00000040
334 #define ACE4_READ_ATTRIBUTES 0x00000080
335 #define ACE4_WRITE_ATTRIBUTES 0x00000100
336 #define ACE4_WRITE_RETENTION 0x00000200
337 #define ACE4_WRITE_RETENTION_HOLD 0x00000400
339 #define ACE4_DELETE 0x00010000
340 #define ACE4_READ_ACL 0x00020000
341 #define ACE4_WRITE_ACL 0x00040000
342 #define ACE4_WRITE_OWNER 0x00080000
343 #define ACE4_SYNCHRONIZE 0x00100000
345 #define ACE4_ALL_FILE ACE4_READ_DATA|ACE4_WRITE_DATA|ACE4_APPEND_DATA| \
346 ACE4_READ_NAMED_ATTRS|ACE4_WRITE_NAMED_ATTRS|ACE4_EXECUTE| \
347 ACE4_READ_ATTRIBUTES|ACE4_WRITE_ATTRIBUTES| \
348 ACE4_DELETE|ACE4_READ_ACL|ACE4_WRITE_ACL|ACE4_WRITE_OWNER| \
350 #define ACE4_ALL_DIR ACE4_READ_DATA|ACE4_WRITE_DATA|ACE4_APPEND_DATA| \
351 ACE4_READ_NAMED_ATTRS|ACE4_WRITE_NAMED_ATTRS|ACE4_EXECUTE| \
352 ACE4_DELETE_CHILD|ACE4_READ_ATTRIBUTES|ACE4_WRITE_ATTRIBUTES| \
353 ACE4_DELETE|ACE4_READ_ACL|ACE4_WRITE_ACL|ACE4_WRITE_OWNER| \
356 #define ACE4_GENERIC_READ ACE4_READ_DATA|ACE4_READ_NAMED_ATTRS| \
357 ACE4_READ_ATTRIBUTES|ACE4_READ_ACL|ACE4_SYNCHRONIZE
358 #define ACE4_GENERIC_WRITE ACE4_WRITE_DATA|ACE4_WRITE_NAMED_ATTRS| \
359 ACE4_WRITE_ATTRIBUTES|ACE4_READ_ACL|ACE4_SYNCHRONIZE
360 #define ACE4_GENERIC_EXECUTE ACE4_EXECUTE|ACE4_READ_ATTRIBUTES| \
361 ACE4_READ_ACL|ACE4_SYNCHRONIZE
365 #define ACE4_FILE_ALL_ACCESS ACE4_READ_DATA|ACE4_LIST_DIRECTORY| \
366 ACE4_WRITE_DATA|ACE4_ADD_FILE|ACE4_APPEND_DATA|ACE4_ADD_SUBDIRECTORY| \
367 ACE4_READ_NAMED_ATTRS|ACE4_WRITE_NAMED_ATTRS|ACE4_EXECUTE| \
368 ACE4_READ_ATTRIBUTES|ACE4_WRITE_ATTRIBUTES
370 /* ACLS aceflag4 field constants */
371 #define ACE4_FILE_INHERIT_ACE 0x00000001
372 #define ACE4_DIRECTORY_INHERIT_ACE 0x00000002
373 #define ACE4_NO_PROPAGATE_INHERIT_ACE 0x00000004
374 #define ACE4_INHERIT_ONLY_ACE 0x00000008
375 #define ACE4_SUCCESSFUL_ACCESS_ACE_FLAG 0x00000010
376 #define ACE4_FAILED_ACCESS_ACE_FLAG 0x00000020
377 #define ACE4_IDENTIFIER_GROUP 0x00000040
378 #define ACE4_INHERITED_ACE 0x00000080
380 /* ACLS well-defined WHOs */
381 #define ACE4_OWNER "OWNER@"
382 #define ACE4_GROUP "GROUP@"
383 #define ACE4_EVERYONE "EVERYONE@"
384 #define ACE4_INTERACTIVE "INTERACTIVE@"
385 #define ACE4_NETWORK "NETWORK@"
386 #define ACE4_DIALUP "DIALUP@"
387 #define ACE4_BATCH "BATCH@"
388 #define ACE4_ANONYMOUS "ANONYMOUS@"
389 #define ACE4_AUTHENTICATED "AUTHENTICATED@"
390 #define ACE4_SERVICE "SERVICE@"
391 #define ACE4_NOBODY "nobody"
393 /* ACLE nfsacl41 aclflag4 constants */
394 #define ACL4_AUTO_INHERIT 0x00000001
395 #define ACL4_PROTECTED 0x00000002
396 #define ACL4_DEFAULTED 0x00000004
399 #endif /* !__NFS41_NFS_CONST_H__ */