libfuse
fuse_mount_compat.h
1/*
2 FUSE: Filesystem in Userspace
3 Copyright (C) 2023 Giulio Benetti <giulio.benetti@benettiengineering.com>
4
5 Logging API.
6
7 This program can be distributed under the terms of the GNU LGPLv2.
8 See the file LICENSE
9*/
10
11#ifndef FUSE_MOUNT_COMPAT_H_
12#define FUSE_MOUNT_COMPAT_H_
13
14#include <sys/mount.h>
15
16/* Some libc don't define MS_*, so define them manually
17 * (values taken from https://elixir.bootlin.com/linux/v6.10/source/include/uapi/linux/mount.h#L13 on)
18 */
19#ifndef MS_DIRSYNC
20#define MS_DIRSYNC 128
21#endif
22
23#ifndef MS_NOSYMFOLLOW
24#define MS_NOSYMFOLLOW 256
25#endif
26
27#ifndef MS_REC
28#define MS_REC 16384
29#endif
30
31#ifndef MS_PRIVATE
32#define MS_PRIVATE (1<<18)
33#endif
34
35#ifndef MS_LAZYTIME
36#define MS_LAZYTIME (1<<25)
37#endif
38
39#ifndef UMOUNT_DETACH
40#define UMOUNT_DETACH 0x00000002 /* Just detach from the tree */
41#endif
42#ifndef UMOUNT_NOFOLLOW
43#define UMOUNT_NOFOLLOW 0x00000008 /* Don't follow symlink on umount */
44#endif
45#ifndef UMOUNT_UNUSED
46#define UMOUNT_UNUSED 0x80000000 /* Flag guaranteed to be unused */
47#endif
48
49#endif /* FUSE_MOUNT_COMPAT_H_ */