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