From: Christian Brauner Date: Wed, 22 Jul 2020 08:54:12 +0000 (+0200) Subject: syscalls: add fspick() X-Git-Tag: lxc-5.0.0~383^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=749bc40479328b146fad2ef79cfb6cffa9701319;p=thirdparty%2Flxc.git syscalls: add fspick() Signed-off-by: Christian Brauner --- diff --git a/configure.ac b/configure.ac index 85d266885..32fcdc230 100644 --- a/configure.ac +++ b/configure.ac @@ -622,7 +622,7 @@ AC_CHECK_HEADER([ifaddrs.h], AC_HEADER_MAJOR # Check for some syscalls functions -AC_CHECK_FUNCS([setns pivot_root sethostname unshare rand_r confstr faccessat gettid memfd_create move_mount open_tree execveat clone3 fsopen]) +AC_CHECK_FUNCS([setns pivot_root sethostname unshare rand_r confstr faccessat gettid memfd_create move_mount open_tree execveat clone3 fsopen fspick]) AC_CHECK_TYPES([struct clone_args], [], [], [[#include ]]) AC_CHECK_MEMBERS([struct clone_args.set_tid],[],[],[[#include ]]) AC_CHECK_MEMBERS([struct clone_args.cgroup],[],[],[[#include ]]) diff --git a/src/lxc/syscall_numbers.h b/src/lxc/syscall_numbers.h index 678683092..cbd69803e 100644 --- a/src/lxc/syscall_numbers.h +++ b/src/lxc/syscall_numbers.h @@ -583,4 +583,24 @@ #endif #endif +#ifndef __NR_fspick + #if defined __alpha__ + #define __NR_fspick 543 + #elif defined _MIPS_SIM + #if _MIPS_SIM == _MIPS_SIM_ABI32 /* o32 */ + #define __NR_fspick 4433 + #endif + #if _MIPS_SIM == _MIPS_SIM_NABI32 /* n32 */ + #define __NR_fspick 6433 + #endif + #if _MIPS_SIM == _MIPS_SIM_ABI64 /* n64 */ + #define __NR_fspick 5433 + #endif + #elif defined __ia64__ + #define __NR_fspick (433 + 1024) + #else + #define __NR_fspick 433 + #endif +#endif + #endif /* __LXC_SYSCALL_NUMBERS_H */ diff --git a/src/lxc/syscall_wrappers.h b/src/lxc/syscall_wrappers.h index 8e7937d4d..6d4f8f42c 100644 --- a/src/lxc/syscall_wrappers.h +++ b/src/lxc/syscall_wrappers.h @@ -171,4 +171,14 @@ static inline int fsopen_lxc(const char *fs_name, unsigned int flags) extern int fsopen(const char *fs_name, unsigned int flags); #endif +#ifndef HAVE_FSPICK +static inline int fspick_lxc(int dfd, const char *path, unsigned int flags) +{ + return syscall(__NR_fspick, dfd, path, flags); +} +#define fspick fspick_lxc +#else +extern int fspick(int dfd, const char *path, unsigned int flags); +#endif + #endif /* __LXC_SYSCALL_WRAPPER_H */