summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2022-01-03 03:44:50 +0900
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2022-01-04 16:24:47 +0100
commitcd88d010e862d26ce816eb3bd6735a80999ac41e (patch)
tree9fc5b22a8456de4c3ba552d6dbbbe494f92b0432
parent7e338876577cb328632ce3e7753c0130b54dd7a2 (diff)
downloadsystemd-cd88d010e862d26ce816eb3bd6735a80999ac41e.tar.gz
missing-syscall: add __NR_openat2
(cherry picked from commit d96ad9e8cb9fc8a9adfeebf69a645b809705daa0)
-rw-r--r--src/basic/missing_syscall_def.h66
-rw-r--r--src/basic/missing_syscalls.py1
2 files changed, 67 insertions, 0 deletions
diff --git a/src/basic/missing_syscall_def.h b/src/basic/missing_syscall_def.h
index 84d41d9fd3..d078bf70df 100644
--- a/src/basic/missing_syscall_def.h
+++ b/src/basic/missing_syscall_def.h
@@ -700,6 +700,72 @@ assert_cc(__NR_open_tree == systemd_NR_open_tree);
# endif
#endif
+#ifndef __IGNORE_openat2
+# if defined(__aarch64__)
+# define systemd_NR_openat2 437
+# elif defined(__alpha__)
+# define systemd_NR_openat2 547
+# elif defined(__arc__) || defined(__tilegx__)
+# define systemd_NR_openat2 437
+# elif defined(__arm__)
+# define systemd_NR_openat2 437
+# elif defined(__i386__)
+# define systemd_NR_openat2 437
+# elif defined(__ia64__)
+# define systemd_NR_openat2 1461
+# elif defined(__loongarch64)
+# define systemd_NR_openat2 437
+# elif defined(__m68k__)
+# define systemd_NR_openat2 437
+# elif defined(_MIPS_SIM)
+# if _MIPS_SIM == _MIPS_SIM_ABI32
+# define systemd_NR_openat2 4437
+# elif _MIPS_SIM == _MIPS_SIM_NABI32
+# define systemd_NR_openat2 6437
+# elif _MIPS_SIM == _MIPS_SIM_ABI64
+# define systemd_NR_openat2 5437
+# else
+# error "Unknown MIPS ABI"
+# endif
+# elif defined(__powerpc__)
+# define systemd_NR_openat2 437
+# elif defined(__riscv)
+# if __riscv_xlen == 32
+# define systemd_NR_openat2 437
+# elif __riscv_xlen == 64
+# define systemd_NR_openat2 437
+# else
+# error "Unknown RISC-V ABI"
+# endif
+# elif defined(__s390__)
+# define systemd_NR_openat2 437
+# elif defined(__sparc__)
+# define systemd_NR_openat2 437
+# elif defined(__x86_64__)
+# if defined(__ILP32__)
+# define systemd_NR_openat2 (437 | /* __X32_SYSCALL_BIT */ 0x40000000)
+# else
+# define systemd_NR_openat2 437
+# endif
+# elif !defined(missing_arch_template)
+# warning "openat2() syscall number is unknown for your architecture"
+# endif
+
+/* may be an (invalid) negative number due to libseccomp, see PR 13319 */
+# if defined __NR_openat2 && __NR_openat2 >= 0
+# if defined systemd_NR_openat2
+assert_cc(__NR_openat2 == systemd_NR_openat2);
+# endif
+# else
+# if defined __NR_openat2
+# undef __NR_openat2
+# endif
+# if defined systemd_NR_openat2 && systemd_NR_openat2 >= 0
+# define __NR_openat2 systemd_NR_openat2
+# endif
+# endif
+#endif
+
#ifndef __IGNORE_pidfd_open
# if defined(__aarch64__)
# define systemd_NR_pidfd_open 434
diff --git a/src/basic/missing_syscalls.py b/src/basic/missing_syscalls.py
index 1fbd619789..2694e83b98 100644
--- a/src/basic/missing_syscalls.py
+++ b/src/basic/missing_syscalls.py
@@ -16,6 +16,7 @@ SYSCALLS = [
'move_mount',
'name_to_handle_at',
'open_tree',
+ 'openat2',
'pidfd_open',
'pidfd_send_signal',
'pkey_mprotect',