1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
/* Header file for mounting/unmount Linux filesystems.
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* This is taken from /usr/include/linux/fs.h. */
#ifndef _SYS_MOUNT_H
#define _SYS_MOUNT_H 1
#include <features.h>
#include <sys/ioctl.h>
__BEGIN_DECLS
#define BLOCK_SIZE 1024
#define BLOCK_SIZE_BITS 10
/* These are the fs-independent mount-flags: up to 16 flags are
supported */
#define MS_RDONLY 1 /* Mount read-only. */
#define MS_NOSUID 2 /* Ignore suid and sgid bits. */
#define MS_NODEV 4 /* Disallow access to device special files. */
#define MS_NOEXEC 8 /* Disallow program execution. */
#define MS_SYNCHRONOUS 16 /* Writes are synced at once. */
#define MS_REMOUNT 32 /* Alter flags of a mounted FS. */
#define MS_MANDLOCK 64 /* Allow mandatory locks on an FS. */
#define S_WRITE 128 /* Write on file/directory/symlink. */
#define S_APPEND 256 /* Append-only file. */
#define S_IMMUTABLE 512 /* Immutable file. */
#define MS_NOATIME 1024 /* Do not update access times. */
/* Flags that can be altered by MS_REMOUNT */
#define MS_RMT_MASK (MS_RDONLY | MS_MANDLOCK)
/* Magic mount flag number. Has to be or-ed to the flag values. */
#define MS_MGC_VAL 0xc0ed0000 /* Magic flag number to indicate "new" flags */
#define MS_MGC_MSK 0xffff0000 /* Magic flag number mask */
/* Note that read-only etc flags are inode-specific: setting some
file-system flags just means all the inodes inherit those flags by
default. It might be possible to override it selectively if you
really wanted to with some ioctl() that is not currently
implemented.
Exception: MS_RDONLY is always applied to the entire file system. */
#define IS_RDONLY(inode) \
(((inode)->i_sb) && ((inode)->i_sb->s_flags & MS_RDONLY))
#define DO_UPDATE_ATIME(inode) \
(!((inode)->i_flags & MS_NOATIME) && !IS_RDONLY (inode))
#define IS_NOSUID(inode) ((inode)->i_flags & MS_NOSUID)
#define IS_NODEV(inode) ((inode)->i_flags & MS_NODEV)
#define IS_NOEXEC(inode) ((inode)->i_flags & MS_NOEXEC)
#define IS_SYNC(inode) ((inode)->i_flags & MS_SYNCHRONOUS)
#define IS_MANDLOCK(inode) ((inode)->i_flags & MS_MANDLOCK)
#define IS_WRITABLE(inode) ((inode)->i_flags & S_WRITE)
#define IS_APPEND(inode) ((inode)->i_flags & S_APPEND)
#define IS_IMMUTABLE(inode) ((inode)->i_flags & S_IMMUTABLE)
/* The read-only stuff doesn't really belong here, but any other place
is probably as bad and I don't want to create yet another include
file. */
#define BLKROSET _IO(0x12, 93) /* Set device read-only (0 = read-write). */
#define BLKROGET _IO(0x12, 94) /* Get read-only status (0 = read_write). */
#define BLKRRPART _IO(0x12, 95) /* Re-read partition table. */
#define BLKGETSIZE _IO(0x12, 96) /* Return device size. */
#define BLKFLSBUF _IO(0x12, 97) /* Flush buffer cache. */
#define BLKRASET _IO(0x12, 98) /* Set read ahead for block device. */
#define BLKRAGET _IO(0x12, 99) /* Get current read ahead setting. */
/* Mount a filesystem. */
extern int mount __P ((__const char *__special_file, __const char *__dir,
__const char *__fstype, unsigned long int __rwflag,
__const void *__data));
/* Unmount a filesystem. */
extern int umount __P ((__const char *__special_file));
__END_DECLS
#endif /* _SYS_MOUNT_H */
|