Sat Oct 8 17:28:17 2016 UTC ()
white space


(ast)
diff -r1.33 -r1.34 src/sys/sys/fstypes.h

cvs diff -r1.33 -r1.34 src/sys/sys/fstypes.h (switch to unified diff)

--- src/sys/sys/fstypes.h 2015/05/06 15:57:08 1.33
+++ src/sys/sys/fstypes.h 2016/10/08 17:28:17 1.34
@@ -1,285 +1,285 @@ @@ -1,285 +1,285 @@
1/* $NetBSD: fstypes.h,v 1.33 2015/05/06 15:57:08 hannken Exp $ */ 1/* $NetBSD: fstypes.h,v 1.34 2016/10/08 17:28:17 ast Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 1989, 1991, 1993 4 * Copyright (c) 1989, 1991, 1993
5 * The Regents of the University of California. All rights reserved. 5 * The Regents of the University of California. All rights reserved.
6 * 6 *
7 * Redistribution and use in source and binary forms, with or without 7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions 8 * modification, are permitted provided that the following conditions
9 * are met: 9 * are met:
10 * 1. Redistributions of source code must retain the above copyright 10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer. 11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright 12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the 13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution. 14 * documentation and/or other materials provided with the distribution.
15 * 3. Neither the name of the University nor the names of its contributors 15 * 3. Neither the name of the University nor the names of its contributors
16 * may be used to endorse or promote products derived from this software 16 * may be used to endorse or promote products derived from this software
17 * without specific prior written permission. 17 * without specific prior written permission.
18 * 18 *
19 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 19 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 22 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 24 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 25 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 * SUCH DAMAGE. 29 * SUCH DAMAGE.
30 * 30 *
31 * @(#)mount.h 8.21 (Berkeley) 5/20/95 31 * @(#)mount.h 8.21 (Berkeley) 5/20/95
32 */ 32 */
33 33
34#ifndef _SYS_FSTYPES_H_ 34#ifndef _SYS_FSTYPES_H_
35#define _SYS_FSTYPES_H_ 35#define _SYS_FSTYPES_H_
36 36
37typedef struct { int32_t __fsid_val[2]; } fsid_t; /* file system id type */ 37typedef struct { int32_t __fsid_val[2]; } fsid_t; /* file system id type */
38 38
39#if defined(_KERNEL) 39#if defined(_KERNEL)
40/* 40/*
41 * File identifier. 41 * File identifier.
42 * These are unique per filesystem on a single machine. 42 * These are unique per filesystem on a single machine.
43 */ 43 */
44struct fid { 44struct fid {
45 unsigned short fid_len; /* length of data in bytes */ 45 unsigned short fid_len; /* length of data in bytes */
46 unsigned short fid_reserved; /* compat: historic align */ 46 unsigned short fid_reserved; /* compat: historic align */
47 char fid_data[0]; /* data (variable length) */ 47 char fid_data[0]; /* data (variable length) */
48}; 48};
49 49
50/* 50/*
51 * Generic file handle 51 * Generic file handle
52 */ 52 */
53struct fhandle { 53struct fhandle {
54 fsid_t fh_fsid; /* File system id of mount point */ 54 fsid_t fh_fsid; /* File system id of mount point */
55 struct fid fh_fid; /* File sys specific id */ 55 struct fid fh_fid; /* File sys specific id */
56}; 56};
57typedef struct fhandle fhandle_t; 57typedef struct fhandle fhandle_t;
58 58
59/* 59/*
60 * FHANDLE_SIZE_MAX: arbitrary value to prevent unreasonable allocation. 60 * FHANDLE_SIZE_MAX: arbitrary value to prevent unreasonable allocation.
61 * 61 *
62 * FHANDLE_SIZE_MIN: chosen for compatibility. smaller handles are zero-padded. 62 * FHANDLE_SIZE_MIN: chosen for compatibility. smaller handles are zero-padded.
63 */ 63 */
64 64
65#define FHANDLE_SIZE_COMPAT 28 65#define FHANDLE_SIZE_COMPAT 28
66#define FHANDLE_SIZE_MAX 1024 66#define FHANDLE_SIZE_MAX 1024
67#define FHANDLE_SIZE_MIN FHANDLE_SIZE_COMPAT 67#define FHANDLE_SIZE_MIN FHANDLE_SIZE_COMPAT
68 68
69#define FHANDLE_FSID(fh) (&(fh)->fh_fsid) 69#define FHANDLE_FSID(fh) (&(fh)->fh_fsid)
70#define FHANDLE_FILEID(fh) (&(fh)->fh_fid) 70#define FHANDLE_FILEID(fh) (&(fh)->fh_fid)
71#define FHANDLE_SIZE_FROM_FILEID_SIZE(fidsize) \ 71#define FHANDLE_SIZE_FROM_FILEID_SIZE(fidsize) \
72 MAX(FHANDLE_SIZE_MIN, (offsetof(fhandle_t, fh_fid) + (fidsize))) 72 MAX(FHANDLE_SIZE_MIN, (offsetof(fhandle_t, fh_fid) + (fidsize)))
73#define FHANDLE_SIZE(fh) \ 73#define FHANDLE_SIZE(fh) \
74 FHANDLE_SIZE_FROM_FILEID_SIZE(FHANDLE_FILEID(fh)->fid_len) 74 FHANDLE_SIZE_FROM_FILEID_SIZE(FHANDLE_FILEID(fh)->fid_len)
75#endif /* defined(_KERNEL) */ 75#endif /* defined(_KERNEL) */
76 76
77/* 77/*
78 * Mount flags. XXX BEWARE: these are not in numerical order! 78 * Mount flags. XXX BEWARE: these are not in numerical order!
79 * 79 *
80 * Unmount uses MNT_FORCE flag. 80 * Unmount uses MNT_FORCE flag.
81 * 81 *
82 * Note that all mount flags are listed here. if you need to add one, take 82 * Note that all mount flags are listed here. if you need to add one, take
83 * one of the __MNT_UNUSED flags. 83 * one of the __MNT_UNUSED flags.
84 */ 84 */
85 85
86#define __MNT_UNUSED1 0x00200000 86#define __MNT_UNUSED1 0x00200000
87 87
88#define MNT_RDONLY 0x00000001 /* read only filesystem */ 88#define MNT_RDONLY 0x00000001 /* read only filesystem */
89#define MNT_SYNCHRONOUS 0x00000002 /* file system written synchronously */ 89#define MNT_SYNCHRONOUS 0x00000002 /* file system written synchronously */
90#define MNT_NOEXEC 0x00000004 /* can't exec from filesystem */ 90#define MNT_NOEXEC 0x00000004 /* can't exec from filesystem */
91#define MNT_NOSUID 0x00000008 /* don't honor setuid bits on fs */ 91#define MNT_NOSUID 0x00000008 /* don't honor setuid bits on fs */
92#define MNT_NODEV 0x00000010 /* don't interpret special files */ 92#define MNT_NODEV 0x00000010 /* don't interpret special files */
93#define MNT_UNION 0x00000020 /* union with underlying filesystem */ 93#define MNT_UNION 0x00000020 /* union with underlying filesystem */
94#define MNT_ASYNC 0x00000040 /* file system written asynchronously */ 94#define MNT_ASYNC 0x00000040 /* file system written asynchronously */
95#define MNT_NOCOREDUMP 0x00008000 /* don't write core dumps to this FS */ 95#define MNT_NOCOREDUMP 0x00008000 /* don't write core dumps to this FS */
96#define MNT_RELATIME 0x00020000 /* only update access time if mod/ch */ 96#define MNT_RELATIME 0x00020000 /* only update access time if mod/ch */
97#define MNT_IGNORE 0x00100000 /* don't show entry in df */ 97#define MNT_IGNORE 0x00100000 /* don't show entry in df */
98#define MNT_DISCARD 0x00800000 /* use DISCARD/TRIM if supported */ 98#define MNT_DISCARD 0x00800000 /* use DISCARD/TRIM if supported */
99#define MNT_EXTATTR 0x01000000 /* enable extended attributes */ 99#define MNT_EXTATTR 0x01000000 /* enable extended attributes */
100#define MNT_LOG 0x02000000 /* Use logging */ 100#define MNT_LOG 0x02000000 /* Use logging */
101#define MNT_NOATIME 0x04000000 /* Never update access times in fs */ 101#define MNT_NOATIME 0x04000000 /* Never update access times in fs */
102#define MNT_SYMPERM 0x20000000 /* recognize symlink permission */ 102#define MNT_SYMPERM 0x20000000 /* recognize symlink permission */
103#define MNT_NODEVMTIME 0x40000000 /* Never update mod times for devs */ 103#define MNT_NODEVMTIME 0x40000000 /* Never update mod times for devs */
104#define MNT_SOFTDEP 0x80000000 /* Use soft dependencies */ 104#define MNT_SOFTDEP 0x80000000 /* Use soft dependencies */
105 105
106#define __MNT_BASIC_FLAGS \ 106#define __MNT_BASIC_FLAGS \
107 { MNT_ASYNC, 0, "asynchronous" }, \ 107 { MNT_ASYNC, 0, "asynchronous" }, \
108 { MNT_DISCARD, 0, "discard" }, \ 108 { MNT_DISCARD, 0, "discard" }, \
109 { MNT_EXTATTR, 0, "extattr" }, \ 109 { MNT_EXTATTR, 0, "extattr" }, \
110 { MNT_IGNORE, 0, "hidden" }, \ 110 { MNT_IGNORE, 0, "hidden" }, \
111 { MNT_LOG, 0, "log" }, \ 111 { MNT_LOG, 0, "log" }, \
112 { MNT_NOATIME, 0, "noatime" }, \ 112 { MNT_NOATIME, 0, "noatime" }, \
113 { MNT_NOCOREDUMP, 0, "nocoredump" }, \ 113 { MNT_NOCOREDUMP, 0, "nocoredump" }, \
114 { MNT_NODEV, 0, "nodev" }, \ 114 { MNT_NODEV, 0, "nodev" }, \
115 { MNT_NODEVMTIME, 0, "nodevmtime" }, \ 115 { MNT_NODEVMTIME, 0, "nodevmtime" }, \
116 { MNT_NOEXEC, 0, "noexec" }, \ 116 { MNT_NOEXEC, 0, "noexec" }, \
117 { MNT_NOSUID, 0, "nosuid" }, \ 117 { MNT_NOSUID, 0, "nosuid" }, \
118 { MNT_RDONLY, 0, "read-only" }, \ 118 { MNT_RDONLY, 0, "read-only" }, \
119 { MNT_RELATIME, 0, "relatime" }, \ 119 { MNT_RELATIME, 0, "relatime" }, \
120 { MNT_SOFTDEP, 0, "soft dependencies" }, \ 120 { MNT_SOFTDEP, 0, "soft dependencies" }, \
121 { MNT_SYMPERM, 0, "symperm" }, \ 121 { MNT_SYMPERM, 0, "symperm" }, \
122 { MNT_SYNCHRONOUS, 0, "synchronous" }, \ 122 { MNT_SYNCHRONOUS, 0, "synchronous" }, \
123 { MNT_UNION, 0, "union" }, \ 123 { MNT_UNION, 0, "union" }, \
124 124
125#define MNT_BASIC_FLAGS (MNT_ASYNC | MNT_DISCARD | MNT_EXTATTR | MNT_LOG | \ 125#define MNT_BASIC_FLAGS (MNT_ASYNC | MNT_DISCARD | MNT_EXTATTR | MNT_LOG | \
126 MNT_NOATIME | MNT_NOCOREDUMP | MNT_NODEV | MNT_NODEVMTIME | MNT_NOEXEC | \ 126 MNT_NOATIME | MNT_NOCOREDUMP | MNT_NODEV | MNT_NODEVMTIME | MNT_NOEXEC | \
127 MNT_NOSUID | MNT_RDONLY | MNT_RELATIME | MNT_SOFTDEP | MNT_SYMPERM | \ 127 MNT_NOSUID | MNT_RDONLY | MNT_RELATIME | MNT_SOFTDEP | MNT_SYMPERM | \
128 MNT_SYNCHRONOUS | MNT_UNION) 128 MNT_SYNCHRONOUS | MNT_UNION)
129/* 129/*
130 * exported mount flags. 130 * exported mount flags.
131 */ 131 */
132#define MNT_EXRDONLY 0x00000080 /* exported read only */ 132#define MNT_EXRDONLY 0x00000080 /* exported read only */
133#define MNT_EXPORTED 0x00000100 /* file system is exported */ 133#define MNT_EXPORTED 0x00000100 /* file system is exported */
134#define MNT_DEFEXPORTED 0x00000200 /* exported to the world */ 134#define MNT_DEFEXPORTED 0x00000200 /* exported to the world */
135#define MNT_EXPORTANON 0x00000400 /* use anon uid mapping for everyone */ 135#define MNT_EXPORTANON 0x00000400 /* use anon uid mapping for everyone */
136#define MNT_EXKERB 0x00000800 /* exported with Kerberos uid mapping */ 136#define MNT_EXKERB 0x00000800 /* exported with Kerberos uid mapping */
137#define MNT_EXNORESPORT 0x08000000 /* don't enforce reserved ports (NFS) */ 137#define MNT_EXNORESPORT 0x08000000 /* don't enforce reserved ports (NFS) */
138#define MNT_EXPUBLIC 0x10000000 /* public export (WebNFS) */ 138#define MNT_EXPUBLIC 0x10000000 /* public export (WebNFS) */
139 139
140#define __MNT_EXPORTED_FLAGS \ 140#define __MNT_EXPORTED_FLAGS \
141 { MNT_EXRDONLY, 1, "exported read-only" }, \ 141 { MNT_EXRDONLY, 1, "exported read-only" }, \
142 { MNT_EXPORTED, 0, "NFS exported" }, \ 142 { MNT_EXPORTED, 0, "NFS exported" }, \
143 { MNT_DEFEXPORTED, 1, "exported to the world" }, \ 143 { MNT_DEFEXPORTED, 1, "exported to the world" }, \
144 { MNT_EXPORTANON, 1, "anon uid mapping" }, \ 144 { MNT_EXPORTANON, 1, "anon uid mapping" }, \
145 { MNT_EXKERB, 1, "kerberos uid mapping" }, \ 145 { MNT_EXKERB, 1, "kerberos uid mapping" }, \
146 { MNT_EXNORESPORT, 0, "non-reserved ports" }, \ 146 { MNT_EXNORESPORT, 0, "non-reserved ports" }, \
147 { MNT_EXPUBLIC, 0, "WebNFS exports" }, 147 { MNT_EXPUBLIC, 0, "WebNFS exports" },
148 148
149/* 149/*
150 * Flags set by internal operations. 150 * Flags set by internal operations.
151 */ 151 */
152#define MNT_LOCAL 0x00001000 /* filesystem is stored locally */ 152#define MNT_LOCAL 0x00001000 /* filesystem is stored locally */
153#define MNT_QUOTA 0x00002000 /* quotas are enabled on filesystem */ 153#define MNT_QUOTA 0x00002000 /* quotas are enabled on filesystem */
154#define MNT_ROOTFS 0x00004000 /* identifies the root filesystem */ 154#define MNT_ROOTFS 0x00004000 /* identifies the root filesystem */
155 155
156#define __MNT_INTERNAL_FLAGS \ 156#define __MNT_INTERNAL_FLAGS \
157 { MNT_LOCAL, 0, "local" }, \ 157 { MNT_LOCAL, 0, "local" }, \
158 { MNT_QUOTA, 0, "with quotas" }, \ 158 { MNT_QUOTA, 0, "with quotas" }, \
159 { MNT_ROOTFS, 1, "root file system" }, 159 { MNT_ROOTFS, 1, "root file system" },
160 160
161/* 161/*
162 * Mask of flags that are visible to statvfs() 162 * Mask of flags that are visible to statvfs()
163 */ 163 */
164#define MNT_VISFLAGMASK ( \ 164#define MNT_VISFLAGMASK ( \
165 MNT_RDONLY | \ 165 MNT_RDONLY | \
166 MNT_SYNCHRONOUS | \ 166 MNT_SYNCHRONOUS | \
167 MNT_NOEXEC | \ 167 MNT_NOEXEC | \
168 MNT_NOSUID | \ 168 MNT_NOSUID | \
169 MNT_NODEV | \ 169 MNT_NODEV | \
170 MNT_UNION | \ 170 MNT_UNION | \
171 MNT_ASYNC | \ 171 MNT_ASYNC | \
172 MNT_NOCOREDUMP | \ 172 MNT_NOCOREDUMP | \
173 MNT_IGNORE | \ 173 MNT_IGNORE | \
174 MNT_DISCARD | \ 174 MNT_DISCARD | \
175 MNT_NOATIME | \ 175 MNT_NOATIME | \
176 MNT_SYMPERM | \ 176 MNT_SYMPERM | \
177 MNT_NODEVMTIME | \ 177 MNT_NODEVMTIME | \
178 MNT_SOFTDEP | \ 178 MNT_SOFTDEP | \
179 MNT_EXRDONLY | \ 179 MNT_EXRDONLY | \
180 MNT_EXPORTED | \ 180 MNT_EXPORTED | \
181 MNT_DEFEXPORTED | \ 181 MNT_DEFEXPORTED | \
182 MNT_EXPORTANON | \ 182 MNT_EXPORTANON | \
183 MNT_EXKERB | \ 183 MNT_EXKERB | \
184 MNT_EXNORESPORT | \ 184 MNT_EXNORESPORT | \
185 MNT_EXPUBLIC | \ 185 MNT_EXPUBLIC | \
186 MNT_LOCAL | \ 186 MNT_LOCAL | \
187 MNT_QUOTA | \ 187 MNT_QUOTA | \
188 MNT_ROOTFS | \ 188 MNT_ROOTFS | \
189 MNT_LOG | \ 189 MNT_LOG | \
190 MNT_EXTATTR) 190 MNT_EXTATTR)
191 191
192/* 192/*
193 * External filesystem control flags. 193 * External filesystem control flags.
194 */ 194 */
195#define MNT_UPDATE 0x00010000 /* not a real mount, just an update */ 195#define MNT_UPDATE 0x00010000 /* not a real mount, just an update */
196#define MNT_RELOAD 0x00040000 /* reload filesystem data */ 196#define MNT_RELOAD 0x00040000 /* reload filesystem data */
197#define MNT_FORCE 0x00080000 /* force unmount or readonly change */ 197#define MNT_FORCE 0x00080000 /* force unmount or readonly change */
198#define MNT_GETARGS 0x00400000 /* retrieve file system specific args */ 198#define MNT_GETARGS 0x00400000 /* retrieve file system specific args */
199 199
200#define MNT_OP_FLAGS (MNT_UPDATE|MNT_RELOAD|MNT_FORCE|MNT_GETARGS) 200#define MNT_OP_FLAGS (MNT_UPDATE|MNT_RELOAD|MNT_FORCE|MNT_GETARGS)
201 201
202#define __MNT_EXTERNAL_FLAGS \ 202#define __MNT_EXTERNAL_FLAGS \
203 { MNT_UPDATE, 1, "being updated" }, \ 203 { MNT_UPDATE, 1, "being updated" }, \
204 { MNT_RELOAD, 1, "reload filesystem data" }, \ 204 { MNT_RELOAD, 1, "reload filesystem data" }, \
205 { MNT_FORCE, 1, "force unmount or readonly change" }, \ 205 { MNT_FORCE, 1, "force unmount or readonly change" }, \
206 { MNT_GETARGS, 1, "retrieve mount arguments" }, 206 { MNT_GETARGS, 1, "retrieve mount arguments" },
207 207
208/* 208/*
209 * Internal filesystem control flags. 209 * Internal filesystem control flags.
210 * These are set in struct mount mnt_iflag. 210 * These are set in struct mount mnt_iflag.
211 * 211 *
212 * IMNT_UNMOUNT locks the mount entry so that name lookup cannot proceed 212 * IMNT_UNMOUNT locks the mount entry so that name lookup cannot proceed
213 * past the mount point. This keeps the subtree stable during mounts 213 * past the mount point. This keeps the subtree stable during mounts
214 * and unmounts. 214 * and unmounts.
215 */ 215 */
216#define IMNT_GONE 0x00000001 /* filesystem is gone.. */ 216#define IMNT_GONE 0x00000001 /* filesystem is gone.. */
217#define IMNT_UNMOUNT 0x00000002 /* unmount in progress */ 217#define IMNT_UNMOUNT 0x00000002 /* unmount in progress */
218#define IMNT_WANTRDWR 0x00000004 /* upgrade to read/write requested */ 218#define IMNT_WANTRDWR 0x00000004 /* upgrade to read/write requested */
219#define IMNT_DTYPE 0x00000040 /* returns d_type fields */ 219#define IMNT_DTYPE 0x00000040 /* returns d_type fields */
220#define IMNT_HAS_TRANS 0x00000080 /* supports transactions */ 220#define IMNT_HAS_TRANS 0x00000080 /* supports transactions */
221#define IMNT_MPSAFE 0x00000100 /* file system code MP safe */ 221#define IMNT_MPSAFE 0x00000100 /* file system code MP safe */
222#define IMNT_CAN_RWTORO 0x00000200 /* can downgrade fs to from rw to r/o */ 222#define IMNT_CAN_RWTORO 0x00000200 /* can downgrade fs to from rw to r/o */
223#define IMNT_ONWORKLIST 0x00000400 /* on syncer worklist */ 223#define IMNT_ONWORKLIST 0x00000400 /* on syncer worklist */
224 224
225#define __MNT_FLAGS \ 225#define __MNT_FLAGS \
226 __MNT_BASIC_FLAGS \ 226 __MNT_BASIC_FLAGS \
227 __MNT_EXPORTED_FLAGS \ 227 __MNT_EXPORTED_FLAGS \
228 __MNT_INTERNAL_FLAGS \ 228 __MNT_INTERNAL_FLAGS \
229 __MNT_EXTERNAL_FLAGS 229 __MNT_EXTERNAL_FLAGS
230 230
231#define __MNT_FLAG_BITS \ 231#define __MNT_FLAG_BITS \
232 "\20" \ 232 "\20" \
233 "\40MNT_SOFTDEP" \ 233 "\40MNT_SOFTDEP" \
234 "\37MNT_NODEVMTIME" \ 234 "\37MNT_NODEVMTIME" \
235 "\36MNT_SYMPERM" \ 235 "\36MNT_SYMPERM" \
236 "\35MNT_EXPUBLIC" \ 236 "\35MNT_EXPUBLIC" \
237 "\34MNT_EXNORESPORT" \ 237 "\34MNT_EXNORESPORT" \
238 "\33MNT_NOATIME" \ 238 "\33MNT_NOATIME" \
239 "\32MNT_LOG" \ 239 "\32MNT_LOG" \
240 "\31MNT_EXTATTR" \ 240 "\31MNT_EXTATTR" \
241 "\30MNT_DISCARD" \ 241 "\30MNT_DISCARD" \
242 "\27MNT_GETARGS" \ 242 "\27MNT_GETARGS" \
243 "\26MNT_UNUSED" \ 243 "\26MNT_UNUSED" \
244 "\25MNT_IGNORE" \ 244 "\25MNT_IGNORE" \
245 "\24MNT_FORCE" \ 245 "\24MNT_FORCE" \
246 "\23MNT_RELOAD" \ 246 "\23MNT_RELOAD" \
247 "\22MNT_RELATIME" \ 247 "\22MNT_RELATIME" \
248 "\21MNT_UPDATE" \ 248 "\21MNT_UPDATE" \
249 "\20MNT_NOCOREDUMP" \ 249 "\20MNT_NOCOREDUMP" \
250 "\17MNT_ROOTFS" \ 250 "\17MNT_ROOTFS" \
251 "\16MNT_QUOTA" \ 251 "\16MNT_QUOTA" \
252 "\15MNT_LOCAL" \ 252 "\15MNT_LOCAL" \
253 "\14MNT_EXKERB" \ 253 "\14MNT_EXKERB" \
254 "\13MNT_EXPORTANON" \ 254 "\13MNT_EXPORTANON" \
255 "\12MNT_DEFEXPORTED" \ 255 "\12MNT_DEFEXPORTED" \
256 "\11MNT_EXPORTED" \ 256 "\11MNT_EXPORTED" \
257 "\10MNT_EXRDONLY" \ 257 "\10MNT_EXRDONLY" \
258 "\07MNT_ASYNC" \ 258 "\07MNT_ASYNC" \
259 "\06MNT_UNION" \ 259 "\06MNT_UNION" \
260 "\05MNT_NODEV" \ 260 "\05MNT_NODEV" \
261 "\04MNT_NOSUID" \ 261 "\04MNT_NOSUID" \
262 "\03MNT_NOEXEC" \ 262 "\03MNT_NOEXEC" \
263 "\02MNT_SYNCHRONOUS" \ 263 "\02MNT_SYNCHRONOUS" \
264 "\01MNT_RDONLY" 264 "\01MNT_RDONLY"
265 265
266#define __IMNT_FLAG_BITS \ 266#define __IMNT_FLAG_BITS \
267 "\20" \ 267 "\20" \
268 "\13IMNT_ONWORKLIST" \ 268 "\13IMNT_ONWORKLIST" \
269 "\12IMNT_CAN_RWTORO" \ 269 "\12IMNT_CAN_RWTORO" \
270 "\11IMNT_MPSAFE" \ 270 "\11IMNT_MPSAFE" \
271 "\10IMNT_HAS_TRANS" \ 271 "\10IMNT_HAS_TRANS" \
272 "\07IMNT_DTYPE" \ 272 "\07IMNT_DTYPE" \
273 "\03IMNT_WANTRDWR" \ 273 "\03IMNT_WANTRDWR" \
274 "\02IMNT_UNMOUNT" \ 274 "\02IMNT_UNMOUNT" \
275 "\01IMNT_GONE" 275 "\01IMNT_GONE"
276 276
277/* 277/*
278 * Flags for various system call interfaces. 278 * Flags for various system call interfaces.
279 * 279 *
280 * waitfor flags to vfs_sync() and getvfsstat() 280 * waitfor flags to vfs_sync() and getvfsstat()
281 */ 281 */
282#define MNT_WAIT 1 /* synchronously wait for I/O to complete */ 282#define MNT_WAIT 1 /* synchronously wait for I/O to complete */
283#define MNT_NOWAIT 2 /* start all I/O, but do not wait for it */ 283#define MNT_NOWAIT 2 /* start all I/O, but do not wait for it */
284#define MNT_LAZY 3 /* push data not written by filesystem syncer */ 284#define MNT_LAZY 3 /* push data not written by filesystem syncer */
285#endif /* _SYS_FSTYPES_H_ */ 285#endif /* _SYS_FSTYPES_H_ */