1#ifndef _SYS_MOUNT_H
2#define _SYS_MOUNT_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8#include <sys/ioctl.h>
9
10#define BLKROSET   _IO(0x12, 93)
11#define BLKROGET   _IO(0x12, 94)
12#define BLKRRPART  _IO(0x12, 95)
13#define BLKGETSIZE _IO(0x12, 96)
14#define BLKFLSBUF  _IO(0x12, 97)
15#define BLKRASET   _IO(0x12, 98)
16#define BLKRAGET   _IO(0x12, 99)
17#define BLKFRASET  _IO(0x12,100)
18#define BLKFRAGET  _IO(0x12,101)
19#define BLKSECTSET _IO(0x12,102)
20#define BLKSECTGET _IO(0x12,103)
21#define BLKSSZGET  _IO(0x12,104)
22#define BLKBSZGET  _IOR(0x12,112,size_t)
23#define BLKBSZSET  _IOW(0x12,113,size_t)
24#define BLKGETSIZE64 _IOR(0x12,114,size_t)
25
26#define MS_RDONLY      1
27#define MS_NOSUID      2
28#define MS_NODEV       4
29#define MS_NOEXEC      8
30#define MS_SYNCHRONOUS 16
31#define MS_REMOUNT     32
32#define MS_MANDLOCK    64
33#define MS_DIRSYNC     128
34#define MS_NOATIME     1024
35#define MS_NODIRATIME  2048
36#define MS_BIND        4096
37#define MS_MOVE        8192
38#define MS_REC         16384
39#define MS_SILENT      32768
40#define MS_POSIXACL    (1<<16)
41#define MS_UNBINDABLE  (1<<17)
42#define MS_PRIVATE     (1<<18)
43#define MS_SLAVE       (1<<19)
44#define MS_SHARED      (1<<20)
45#define MS_RELATIME    (1<<21)
46#define MS_KERNMOUNT   (1<<22)
47#define MS_I_VERSION   (1<<23)
48#define MS_STRICTATIME (1<<24)
49#define MS_LAZYTIME    (1<<25)
50#define MS_NOREMOTELOCK (1<<27)
51#define MS_NOSEC       (1<<28)
52#define MS_BORN        (1<<29)
53#define MS_ACTIVE      (1<<30)
54#define MS_NOUSER      (1U<<31)
55
56#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION|MS_LAZYTIME)
57
58#define MS_MGC_VAL 0xc0ed0000
59#define MS_MGC_MSK 0xffff0000
60
61#define MNT_FORCE       1
62#define MNT_DETACH      2
63#define MNT_EXPIRE      4
64#define UMOUNT_NOFOLLOW 8
65
66int mount(const char *, const char *, const char *, unsigned long, const void *);
67int umount(const char *);
68int umount2(const char *, int);
69
70#ifdef __cplusplus
71}
72#endif
73
74#endif
75