Project

General

Profile

Statistics
| Revision:

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_ */