| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- // SPDX-License-Identifier: GPL-2.0
- //
- #ifndef __SELFTEST_OVERLAYFS_WRAPPERS_H__
- #define __SELFTEST_OVERLAYFS_WRAPPERS_H__
- #define _GNU_SOURCE
- #include <linux/types.h>
- #include <linux/mount.h>
- #include <sys/syscall.h>
- #ifndef STATX_MNT_ID_UNIQUE
- #define STATX_MNT_ID_UNIQUE 0x00004000U /* Want/got extended stx_mount_id */
- #endif
- static inline int sys_fsopen(const char *fsname, unsigned int flags)
- {
- return syscall(__NR_fsopen, fsname, flags);
- }
- static inline int sys_fsconfig(int fd, unsigned int cmd, const char *key,
- const char *value, int aux)
- {
- return syscall(__NR_fsconfig, fd, cmd, key, value, aux);
- }
- static inline int sys_fsmount(int fd, unsigned int flags,
- unsigned int attr_flags)
- {
- return syscall(__NR_fsmount, fd, flags, attr_flags);
- }
- static inline int sys_mount(const char *src, const char *tgt, const char *fst,
- unsigned long flags, const void *data)
- {
- return syscall(__NR_mount, src, tgt, fst, flags, data);
- }
- #ifndef MOVE_MOUNT_F_EMPTY_PATH
- #define MOVE_MOUNT_F_EMPTY_PATH 0x00000004 /* Empty from path permitted */
- #endif
- #ifndef MOVE_MOUNT_T_EMPTY_PATH
- #define MOVE_MOUNT_T_EMPTY_PATH 0x00000040 /* Empty to path permitted */
- #endif
- #ifndef __NR_move_mount
- #if defined __alpha__
- #define __NR_move_mount 539
- #elif defined _MIPS_SIM
- #if _MIPS_SIM == _MIPS_SIM_ABI32 /* o32 */
- #define __NR_move_mount 4429
- #endif
- #if _MIPS_SIM == _MIPS_SIM_NABI32 /* n32 */
- #define __NR_move_mount 6429
- #endif
- #if _MIPS_SIM == _MIPS_SIM_ABI64 /* n64 */
- #define __NR_move_mount 5429
- #endif
- #else
- #define __NR_move_mount 429
- #endif
- #endif
- static inline int sys_move_mount(int from_dfd, const char *from_pathname,
- int to_dfd, const char *to_pathname,
- unsigned int flags)
- {
- return syscall(__NR_move_mount, from_dfd, from_pathname, to_dfd,
- to_pathname, flags);
- }
- #ifndef OPEN_TREE_CLONE
- #define OPEN_TREE_CLONE 1
- #endif
- #ifndef OPEN_TREE_CLOEXEC
- #define OPEN_TREE_CLOEXEC O_CLOEXEC
- #endif
- #ifndef AT_RECURSIVE
- #define AT_RECURSIVE 0x8000 /* Apply to the entire subtree */
- #endif
- #ifndef __NR_open_tree
- #if defined __alpha__
- #define __NR_open_tree 538
- #elif defined _MIPS_SIM
- #if _MIPS_SIM == _MIPS_SIM_ABI32 /* o32 */
- #define __NR_open_tree 4428
- #endif
- #if _MIPS_SIM == _MIPS_SIM_NABI32 /* n32 */
- #define __NR_open_tree 6428
- #endif
- #if _MIPS_SIM == _MIPS_SIM_ABI64 /* n64 */
- #define __NR_open_tree 5428
- #endif
- #else
- #define __NR_open_tree 428
- #endif
- #endif
- static inline int sys_open_tree(int dfd, const char *filename, unsigned int flags)
- {
- return syscall(__NR_open_tree, dfd, filename, flags);
- }
- #endif
|