1#pragma once
2
3#ifdef __cplusplus
4extern "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
64int mount(const char*, const char*, const char*, unsigned long, const void*);
65int umount(const char*);
66int umount2(const char*, int);
67
68#ifdef __cplusplus
69}
70#endif
71