]>
Commit | Line | Data |
---|---|---|
93995795 | 1 | /* Header file for mounting/unmount Linux filesystems. |
d4697bc9 | 2 | Copyright (C) 1996-2014 Free Software Foundation, Inc. |
8a4b65b4 | 3 | This file is part of the GNU C Library. |
93995795 | 4 | |
8a4b65b4 | 5 | The GNU C Library is free software; you can redistribute it and/or |
41bdb6e2 AJ |
6 | modify it under the terms of the GNU Lesser General Public |
7 | License as published by the Free Software Foundation; either | |
8 | version 2.1 of the License, or (at your option) any later version. | |
93995795 | 9 | |
8a4b65b4 UD |
10 | The GNU C Library is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
41bdb6e2 | 13 | Lesser General Public License for more details. |
93995795 | 14 | |
41bdb6e2 | 15 | You should have received a copy of the GNU Lesser General Public |
59ba27a6 PE |
16 | License along with the GNU C Library; if not, see |
17 | <http://www.gnu.org/licenses/>. */ | |
93995795 | 18 | |
51702635 UD |
19 | /* This is taken from /usr/include/linux/fs.h. */ |
20 | ||
93995795 | 21 | #ifndef _SYS_MOUNT_H |
8a4b65b4 | 22 | #define _SYS_MOUNT_H 1 |
93995795 | 23 | |
867506f3 | 24 | #include <features.h> |
51702635 UD |
25 | #include <sys/ioctl.h> |
26 | ||
51702635 UD |
27 | #define BLOCK_SIZE 1024 |
28 | #define BLOCK_SIZE_BITS 10 | |
29 | ||
30 | ||
31 | /* These are the fs-independent mount-flags: up to 16 flags are | |
32 | supported */ | |
867506f3 UD |
33 | enum |
34 | { | |
35 | MS_RDONLY = 1, /* Mount read-only. */ | |
36 | #define MS_RDONLY MS_RDONLY | |
37 | MS_NOSUID = 2, /* Ignore suid and sgid bits. */ | |
38 | #define MS_NOSUID MS_NOSUID | |
39 | MS_NODEV = 4, /* Disallow access to device special files. */ | |
40 | #define MS_NODEV MS_NODEV | |
41 | MS_NOEXEC = 8, /* Disallow program execution. */ | |
42 | #define MS_NOEXEC MS_NOEXEC | |
43 | MS_SYNCHRONOUS = 16, /* Writes are synced at once. */ | |
44 | #define MS_SYNCHRONOUS MS_SYNCHRONOUS | |
45 | MS_REMOUNT = 32, /* Alter flags of a mounted FS. */ | |
46 | #define MS_REMOUNT MS_REMOUNT | |
47 | MS_MANDLOCK = 64, /* Allow mandatory locks on an FS. */ | |
48 | #define MS_MANDLOCK MS_MANDLOCK | |
17127345 UD |
49 | MS_DIRSYNC = 128, /* Directory modifications are synchronous. */ |
50 | #define MS_DIRSYNC MS_DIRSYNC | |
bf7997b6 | 51 | MS_NOATIME = 1024, /* Do not update access times. */ |
867506f3 | 52 | #define MS_NOATIME MS_NOATIME |
4ccacaa1 | 53 | MS_NODIRATIME = 2048, /* Do not update directory access times. */ |
bf7997b6 | 54 | #define MS_NODIRATIME MS_NODIRATIME |
4ccacaa1 AJ |
55 | MS_BIND = 4096, /* Bind directory at different place. */ |
56 | #define MS_BIND MS_BIND | |
17127345 UD |
57 | MS_MOVE = 8192, |
58 | #define MS_MOVE MS_MOVE | |
59 | MS_REC = 16384, | |
60 | #define MS_REC MS_REC | |
61 | MS_SILENT = 32768, | |
62 | #define MS_SILENT MS_SILENT | |
63 | MS_POSIXACL = 1 << 16, /* VFS does not apply the umask. */ | |
64 | #define MS_POSIXACL MS_POSIXACL | |
65 | MS_UNBINDABLE = 1 << 17, /* Change to unbindable. */ | |
66 | #define MS_UNBINDABLE MS_UNBINDABLE | |
67 | MS_PRIVATE = 1 << 18, /* Change to private. */ | |
68 | #define MS_PRIVATE MS_PRIVATE | |
69 | MS_SLAVE = 1 << 19, /* Change to slave. */ | |
70 | #define MS_SLAVE MS_SLAVE | |
71 | MS_SHARED = 1 << 20, /* Change to shared. */ | |
72 | #define MS_SHARED MS_SHARED | |
73 | MS_RELATIME = 1 << 21, /* Update atime relative to mtime/ctime. */ | |
74 | #define MS_RELATIME MS_RELATIME | |
75 | MS_KERNMOUNT = 1 << 22, /* This is a kern_mount call. */ | |
76 | #define MS_KERNMOUNT MS_KERNMOUNT | |
77 | MS_I_VERSION = 1 << 23, /* Update inode I_version field. */ | |
78 | #define MS_I_VERSION MS_I_VERSION | |
79 | MS_STRICTATIME = 1 << 24, /* Always perform atime updates. */ | |
80 | #define MS_STRICTATIME MS_STRICTATIME | |
81 | MS_ACTIVE = 1 << 30, | |
82 | #define MS_ACTIVE MS_ACTIVE | |
83 | MS_NOUSER = 1 << 31 | |
84 | #define MS_NOUSER MS_NOUSER | |
867506f3 | 85 | }; |
51702635 UD |
86 | |
87 | /* Flags that can be altered by MS_REMOUNT */ | |
17127345 | 88 | #define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION) |
51702635 UD |
89 | |
90 | ||
91 | /* Magic mount flag number. Has to be or-ed to the flag values. */ | |
92 | ||
93 | #define MS_MGC_VAL 0xc0ed0000 /* Magic flag number to indicate "new" flags */ | |
94 | #define MS_MGC_MSK 0xffff0000 /* Magic flag number mask */ | |
95 | ||
96 | ||
51702635 UD |
97 | /* The read-only stuff doesn't really belong here, but any other place |
98 | is probably as bad and I don't want to create yet another include | |
99 | file. */ | |
100 | ||
101 | #define BLKROSET _IO(0x12, 93) /* Set device read-only (0 = read-write). */ | |
102 | #define BLKROGET _IO(0x12, 94) /* Get read-only status (0 = read_write). */ | |
103 | #define BLKRRPART _IO(0x12, 95) /* Re-read partition table. */ | |
104 | #define BLKGETSIZE _IO(0x12, 96) /* Return device size. */ | |
105 | #define BLKFLSBUF _IO(0x12, 97) /* Flush buffer cache. */ | |
106 | #define BLKRASET _IO(0x12, 98) /* Set read ahead for block device. */ | |
107 | #define BLKRAGET _IO(0x12, 99) /* Get current read ahead setting. */ | |
8f1913a9 UD |
108 | #define BLKFRASET _IO(0x12,100) /* Set filesystem read-ahead. */ |
109 | #define BLKFRAGET _IO(0x12,101) /* Get filesystem read-ahead. */ | |
110 | #define BLKSECTSET _IO(0x12,102) /* Set max sectors per request. */ | |
111 | #define BLKSECTGET _IO(0x12,103) /* Get max sectors per request. */ | |
112 | #define BLKSSZGET _IO(0x12,104) /* Get block device sector size. */ | |
113 | #define BLKBSZGET _IOR(0x12,112,size_t) | |
114 | #define BLKBSZSET _IOW(0x12,113,size_t) | |
115 | #define BLKGETSIZE64 _IOR(0x12,114,size_t) /* return device size. */ | |
51702635 UD |
116 | |
117 | ||
7934cc16 | 118 | /* Possible value for FLAGS parameter of `umount2'. */ |
ed1ac6a2 UD |
119 | enum |
120 | { | |
95bf537f | 121 | MNT_FORCE = 1, /* Force unmounting. */ |
ed1ac6a2 | 122 | #define MNT_FORCE MNT_FORCE |
95bf537f UD |
123 | MNT_DETACH = 2, /* Just detach from the tree. */ |
124 | #define MNT_DETACH MNT_DETACH | |
94db8db8 | 125 | MNT_EXPIRE = 4, /* Mark for expiry. */ |
95bf537f | 126 | #define MNT_EXPIRE MNT_EXPIRE |
94db8db8 UD |
127 | UMOUNT_NOFOLLOW = 8 /* Don't follow symlink on umount. */ |
128 | #define UMOUNT_NOFOLLOW UMOUNT_NOFOLLOW | |
ed1ac6a2 | 129 | }; |
7934cc16 UD |
130 | |
131 | ||
867506f3 UD |
132 | __BEGIN_DECLS |
133 | ||
93995795 | 134 | /* Mount a filesystem. */ |
a784e502 UD |
135 | extern int mount (const char *__special_file, const char *__dir, |
136 | const char *__fstype, unsigned long int __rwflag, | |
137 | const void *__data) __THROW; | |
93995795 RM |
138 | |
139 | /* Unmount a filesystem. */ | |
a784e502 | 140 | extern int umount (const char *__special_file) __THROW; |
93995795 | 141 | |
5148d49f | 142 | /* Unmount a filesystem. Force unmounting if FLAGS is set to MNT_FORCE. */ |
a784e502 | 143 | extern int umount2 (const char *__special_file, int __flags) __THROW; |
7934cc16 | 144 | |
93995795 RM |
145 | __END_DECLS |
146 | ||
147 | #endif /* _SYS_MOUNT_H */ |