root / lab4 / .minix-src / include / mntopts.h @ 13
History | View | Annotate | Download (4.16 KB)
1 |
/* $NetBSD: mntopts.h,v 1.15 2012/10/19 17:09:06 drochner Exp $ */
|
---|---|
2 |
|
3 |
/*-
|
4 |
* Copyright (c) 1994
|
5 |
* The Regents of the University of California. All rights reserved.
|
6 |
*
|
7 |
* Redistribution and use in source and binary forms, with or without
|
8 |
* modification, are permitted provided that the following conditions
|
9 |
* are met:
|
10 |
* 1. Redistributions of source code must retain the above copyright
|
11 |
* notice, this list of conditions and the following disclaimer.
|
12 |
* 2. Redistributions in binary form must reproduce the above copyright
|
13 |
* notice, this list of conditions and the following disclaimer in the
|
14 |
* documentation and/or other materials provided with the distribution.
|
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
|
17 |
* without specific prior written permission.
|
18 |
*
|
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
|
21 |
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
22 |
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
23 |
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
24 |
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
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
|
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
|
29 |
* SUCH DAMAGE.
|
30 |
*
|
31 |
* @(#)mntopts.h 8.7 (Berkeley) 3/29/95
|
32 |
*/
|
33 |
#ifndef _MNTOPTS_H_
|
34 |
#define _MNTOPTS_H_
|
35 |
|
36 |
struct mntopt {
|
37 |
const char *m_option; /* option name */ |
38 |
int m_inverse; /* if a negative option, eg "dev" */ |
39 |
int m_flag; /* bit to set, eg. MNT_RDONLY */ |
40 |
int m_altloc; /* 1 => set bit in altflags */ |
41 |
}; |
42 |
|
43 |
/* User-visible MNT_ flags. */
|
44 |
#define MOPT_ASYNC { "async", 0, MNT_ASYNC, 0 } |
45 |
#define MOPT_NOCOREDUMP { "coredump", 1, MNT_NOCOREDUMP, 0 } |
46 |
#define MOPT_NODEV { "dev", 1, MNT_NODEV, 0 } |
47 |
#define MOPT_NODEVMTIME { "devmtime", 1, MNT_NODEVMTIME, 0 } |
48 |
#define MOPT_NOEXEC { "exec", 1, MNT_NOEXEC, 0 } |
49 |
#define MOPT_NOSUID { "suid", 1, MNT_NOSUID, 0 } |
50 |
#define MOPT_RDONLY { "rdonly", 0, MNT_RDONLY, 0 } |
51 |
#define MOPT_SYNC { "sync", 0, MNT_SYNCHRONOUS, 0 } |
52 |
#define MOPT_UNION { "union", 0, MNT_UNION, 0 } |
53 |
#define MOPT_USERQUOTA { "userquota", 0, 0, 0 } |
54 |
#define MOPT_GROUPQUOTA { "groupquota", 0, 0, 0 } |
55 |
#define MOPT_NOATIME { "atime", 1, MNT_NOATIME, 0 } |
56 |
#define MOPT_SYMPERM { "symperm", 0, MNT_SYMPERM, 0 } |
57 |
#define MOPT_SOFTDEP { "softdep", 0, MNT_SOFTDEP, 0 } |
58 |
#define MOPT_LOG { "log", 0, MNT_LOG, 0 } |
59 |
#define MOPT_IGNORE { "hidden", 0, MNT_IGNORE, 0 } |
60 |
#define MOPT_EXTATTR { "extattr", 0, MNT_EXTATTR, 0 } |
61 |
#define MOPT_DISCARD { "discard", 0, MNT_DISCARD, 0 } |
62 |
|
63 |
/* Control flags. */
|
64 |
#define MOPT_FORCE { "force", 0, MNT_FORCE, 0 } |
65 |
#define MOPT_UPDATE { "update", 0, MNT_UPDATE, 0 } |
66 |
#define MOPT_RELOAD { "reload", 0, MNT_RELOAD, 0 } |
67 |
#define MOPT_GETARGS { "getargs", 0, MNT_GETARGS, 0 } |
68 |
|
69 |
/* Support for old-style "ro", "rw" flags. */
|
70 |
#define MOPT_RO { "ro", 0, MNT_RDONLY, 0 } |
71 |
#define MOPT_RW { "rw", 1, MNT_RDONLY, 0 } |
72 |
|
73 |
/* This is parsed by mount(8), but is ignored by specific mount_*(8)s. */
|
74 |
#define MOPT_AUTO { "auto", 0, 0, 0 } |
75 |
#define MOPT_RUMP { "rump", 0, 0, 0 } |
76 |
#define MOPT_NULL { NULL, 0, 0, 0 } |
77 |
|
78 |
#define MOPT_FSTAB_COMPAT \
|
79 |
MOPT_RO, \ |
80 |
MOPT_RW, \ |
81 |
MOPT_AUTO |
82 |
|
83 |
/* Standard options which all mounts can understand. */
|
84 |
#define MOPT_STDOPTS \
|
85 |
MOPT_USERQUOTA, \ |
86 |
MOPT_GROUPQUOTA, \ |
87 |
MOPT_FSTAB_COMPAT, \ |
88 |
MOPT_NOCOREDUMP, \ |
89 |
MOPT_NODEV, \ |
90 |
MOPT_NOEXEC, \ |
91 |
MOPT_NOSUID, \ |
92 |
MOPT_RDONLY, \ |
93 |
MOPT_UNION, \ |
94 |
MOPT_IGNORE, \ |
95 |
MOPT_SYMPERM, \ |
96 |
MOPT_RUMP |
97 |
|
98 |
__BEGIN_DECLS |
99 |
typedef struct mntoptparse *mntoptparse_t; |
100 |
mntoptparse_t getmntopts(const char *, const struct mntopt *, int *, int *); |
101 |
const char *getmntoptstr(mntoptparse_t, const char *); |
102 |
long getmntoptnum(mntoptparse_t, const char *); |
103 |
void freemntopts(mntoptparse_t);
|
104 |
|
105 |
extern int getmnt_silent; |
106 |
__END_DECLS |
107 |
|
108 |
#endif /* _MNTOPTS_H_ */ |