Add headers for OpenSolaris extensions that glibc implements
[kopensolaris-gnu/glibc.git] / sysdeps / unix / sysv / solaris2 / kopensolaris-gnu / sys / mount.h
1 /* Header file for mounting/unmount OpenSolaris filesystems.
2    Copyright (C) 1996,1997,1998,1999,2000,2004,2008
3     Free Software Foundation, Inc.
4    This file is part of the GNU C Library.
5
6    The GNU C Library is free software; you can redistribute it and/or
7    modify it under the terms of the GNU Lesser General Public
8    License as published by the Free Software Foundation; either
9    version 2.1 of the License, or (at your option) any later version.
10
11    The GNU C Library is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    Lesser General Public License for more details.
15
16    You should have received a copy of the GNU Lesser General Public
17    License along with the GNU C Library; if not, write to the Free
18    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
19    02111-1307 USA.  */
20
21 /* This is taken from /usr/include/linux/fs.h.  */
22
23 #ifndef _SYS_MOUNT_H
24 #define _SYS_MOUNT_H    1
25
26 #include <features.h>
27 #include <sys/ioctl.h>
28
29
30 /* These are the fs-independent mount-flags: up to 16 flags are
31    supported  */
32 #define MS_RDONLY       0x0001 /* Mount read-only.  */
33 #define MS_FSS          0x0002 /* Old mount.  */
34 #define MS_DATA         0x0004 /* 6-argument mount.  */
35 #define MS_SYSSPACE     0x0008 /* In kernel space.  */
36 #define MS_NOSUID       0x0010 /* Ignore suid and sgid bits.  */
37 #define MS_REMOUNT      0x0020 /* Alter flags of a mounted FS.  */
38 #define MS_NOTRUNC      0x0040 /* Return ENAMETOOLONG for long filenames.  */
39 #define MS_OVERLAY      0x0080 /* Allow overlay mounts.  */
40 #define MS_OPTIONSTR    0x0100 /* Data is a an in/out option string.  */
41 #define MS_GLOBAL       0x0200 /* Clustering: Mount into global name space.  */
42 #define MS_FORCE        0x0400 /* Forced unmount.  */
43 #define MS_NOMNTTAB     0x0800 /* Don't show mount in mnttab.  */
44 #define MS_SYSSPACE     0x1000
45 #define MS_NOCHECK      0x2000
46
47 #define MS_MASK         (MS_RDONLY | MS_FSS | MS_DATA | MS_NOSUID | \
48                         MS_REMOUNT | MS_NOTRUNC | MS_OVERLAY | MS_OPTIONSTR | \
49                         MS_GLOBAL | MS_NOMNTTAB)
50 #define MS_UMOUNT_MASK  (MS_FORCE)
51
52 #define MAX_MNTOPT_STR  1024
53
54 __BEGIN_DECLS
55
56 /* Mount a filesystem.  */
57 extern int mount (__const char *__spec, __const char *__dir,
58                   int __mflag_, __const char *__fstype, __const void *__dataptr,
59                   int __datalen, char *__optptr, int __optlen) __THROW;
60
61 /* Unmount a filesystem.  */
62 extern int umount (__const char *__file) __THROW;
63
64 /* Unmount a filesystem.  Force unmounting if FLAG is set to MS_FORCE.  */
65 extern int umount2 (__const char *__file, int __flag) __THROW;
66
67 __END_DECLS
68
69 #endif /* _SYS_MOUNT_H */