missing_capability_h = files('missing_capability.h')
missing_socket_h = files('missing_socket.h')
+missing_syscall_def_h = files('missing_syscall_def.h')
+basic_sources += missing_syscall_def_h
+
generate_af_list = find_program('generate-af-list.sh')
af_list_txt = custom_target(
'af-list.txt',
endforeach
basic_sources += generated_gperf_headers
-basic_gcrypt_sources = files(
- 'gcrypt-util.c',
- 'gcrypt-util.h')
-
-libbasic = static_library(
- 'basic',
- basic_sources,
- include_directories : includes,
- dependencies : [versiondep,
- threads,
- libcap,
- libseccomp,
- libselinux,
- libm,
- libdl],
- c_args : ['-fvisibility=default'],
- install : false)
-
-# A convenience library that is separate from libbasic to avoid
-# unnecessary linking to libgcrypt.
-libbasic_gcrypt = static_library(
- 'basic-gcrypt',
- basic_gcrypt_sources,
- include_directories : includes,
- dependencies : [libgcrypt],
- c_args : ['-fvisibility=default'])
############################################################
command : [syscall_table_update_sh, meson.current_source_dir()] + arch_list)
syscall_names_text = files('syscall-names.text')
+
+syscall_lists = []
+foreach arch: arch_list
+ syscall_lists += files('syscalls-@0@'.format(arch))
+endforeach
+
+missing_syscalls_py = find_program('missing_syscalls.py')
+
+run_target(
+ 'update-syscall-header',
+ command : [missing_syscalls_py,
+ missing_syscall_def_h,
+ syscall_lists])
+
+############################################################
+
+libbasic = static_library(
+ 'basic',
+ basic_sources,
+ include_directories : includes,
+ dependencies : [versiondep,
+ threads,
+ libcap,
+ libseccomp,
+ libselinux,
+ libm,
+ libdl],
+ c_args : ['-fvisibility=default'],
+ install : false)
+
+############################################################
+
+basic_gcrypt_sources = files(
+ 'gcrypt-util.c',
+ 'gcrypt-util.h')
+
+# A convenience library that is separate from libbasic to avoid
+# unnecessary linking to libgcrypt.
+libbasic_gcrypt = static_library(
+ 'basic-gcrypt',
+ basic_gcrypt_sources,
+ include_directories : includes,
+ dependencies : [libgcrypt],
+ c_args : ['-fvisibility=default'])
#include <asm/sgidefs.h>
#endif
-#if defined(__alpha__)
-# define systemd_SC_arch_bias(x) (110 + (x))
-#elif defined(__ia64__)
-# define systemd_SC_arch_bias(x) (1024 + (x))
-#elif defined(_MIPS_SIM)
-# if _MIPS_SIM == _MIPS_SIM_ABI32
-# define systemd_SC_arch_bias(x) (4000 + (x))
-# elif _MIPS_SIM == _MIPS_SIM_NABI32
-# define systemd_SC_arch_bias(x) (6000 + (x))
-# elif _MIPS_SIM == _MIPS_SIM_ABI64
-# define systemd_SC_arch_bias(x) (5000 + (x))
-# else
-# error "Unknown MIPS ABI"
-# endif
-#elif defined(__x86_64__) && defined(__ILP32__)
-# define systemd_SC_arch_bias(x) ((x) | /* __X32_SYSCALL_BIT */ 0x40000000)
-#else
-# define systemd_SC_arch_bias(x) (x)
-#endif
-
#include "missing_keyctl.h"
#include "missing_stat.h"
+#include "missing_syscall_def.h"
/* linux/kcmp.h */
#ifndef KCMP_FILE /* 3f4994cfc15f38a3159c6e3a4b3ab2e1481a6b02 (3.19) */
#define KCMP_FILE 0
#endif
+/* ======================================================================= */
+
#if !HAVE_PIVOT_ROOT
static inline int missing_pivot_root(const char *new_root, const char *put_old) {
return syscall(__NR_pivot_root, new_root, put_old);
/* ======================================================================= */
-#if defined(__aarch64__)
-# define systemd_NR_memfd_create 279
-#elif defined(__alpha__)
-# define systemd_NR_memfd_create 512
-#elif defined(__arc__) || defined(__tilegx__)
-# define systemd_NR_memfd_create 279
-#elif defined(__arm__)
-# define systemd_NR_memfd_create 385
-#elif defined(__i386__)
-# define systemd_NR_memfd_create 356
-#elif defined(__ia64__)
-# define systemd_NR_memfd_create systemd_SC_arch_bias(316)
-#elif defined(__m68k__)
-# define systemd_NR_memfd_create 353
-#elif defined(_MIPS_SIM)
-# if _MIPS_SIM == _MIPS_SIM_ABI32
-# define systemd_NR_memfd_create systemd_SC_arch_bias(354)
-# elif _MIPS_SIM == _MIPS_SIM_NABI32
-# define systemd_NR_memfd_create systemd_SC_arch_bias(318)
-# elif _MIPS_SIM == _MIPS_SIM_ABI64
-# define systemd_NR_memfd_create systemd_SC_arch_bias(314)
-# endif
-#elif defined(__powerpc__)
-# define systemd_NR_memfd_create 360
-#elif defined(__s390__)
-# define systemd_NR_memfd_create 350
-#elif defined(__sparc__)
-# define systemd_NR_memfd_create 348
-#elif defined(__x86_64__)
-# define systemd_NR_memfd_create systemd_SC_arch_bias(319)
-#else
-# warning "memfd_create() syscall number is unknown for your architecture"
-#endif
-
-/* may be (invalid) negative number due to libseccomp, see PR 13319 */
-#if defined __NR_memfd_create && __NR_memfd_create >= 0
-# if defined systemd_NR_memfd_create
-assert_cc(__NR_memfd_create == systemd_NR_memfd_create);
-# endif
-#else
-# if defined __NR_memfd_create
-# undef __NR_memfd_create
-# endif
-# if defined systemd_NR_memfd_create
-# define __NR_memfd_create systemd_NR_memfd_create
-# endif
-#endif
-
#if !HAVE_MEMFD_CREATE
static inline int missing_memfd_create(const char *name, unsigned int flags) {
# ifdef __NR_memfd_create
/* ======================================================================= */
-#if defined(__aarch64__)
-# define systemd_NR_getrandom 278
-#elif defined(__alpha__)
-# define systemd_NR_getrandom 511
-#elif defined(__arc__) || defined(__tilegx__)
-# define systemd_NR_getrandom 278
-#elif defined(__arm__)
-# define systemd_NR_getrandom 384
-#elif defined(__i386__)
-# define systemd_NR_getrandom 355
-#elif defined(__ia64__)
-# define systemd_NR_getrandom systemd_SC_arch_bias(318)
-#elif defined(__m68k__)
-# define systemd_NR_getrandom 352
-#elif defined(_MIPS_SIM)
-# if _MIPS_SIM == _MIPS_SIM_ABI32
-# define systemd_NR_getrandom systemd_SC_arch_bias(353)
-# elif _MIPS_SIM == _MIPS_SIM_NABI32
-# define systemd_NR_getrandom systemd_SC_arch_bias(317)
-# elif _MIPS_SIM == _MIPS_SIM_ABI64
-# define systemd_NR_getrandom systemd_SC_arch_bias(313)
-# endif
-#elif defined(__powerpc__)
-# define systemd_NR_getrandom 359
-#elif defined(__s390__)
-# define systemd_NR_getrandom 349
-#elif defined(__sparc__)
-# define systemd_NR_getrandom 347
-#elif defined(__x86_64__)
-# define systemd_NR_getrandom systemd_SC_arch_bias(318)
-#else
-# warning "getrandom() syscall number is unknown for your architecture"
-#endif
-
-/* may be (invalid) negative number due to libseccomp, see PR 13319 */
-#if defined __NR_getrandom && __NR_getrandom >= 0
-# if defined systemd_NR_getrandom
-assert_cc(__NR_getrandom == systemd_NR_getrandom);
-# endif
-#else
-# if defined __NR_getrandom
-# undef __NR_getrandom
-# endif
-# if defined systemd_NR_getrandom
-# define __NR_getrandom systemd_NR_getrandom
-# endif
-#endif
-
#if !HAVE_GETRANDOM
static inline int missing_getrandom(void *buffer, size_t count, unsigned flags) {
# ifdef __NR_getrandom
/* ======================================================================= */
-#if defined(__aarch64__)
-# define systemd_NR_name_to_handle_at 264
-#elif defined(__alpha__)
-# define systemd_NR_name_to_handle_at 497
-#elif defined(__arc__) || defined(__tilegx__)
-# define systemd_NR_name_to_handle_at 264
-#elif defined(__arm__)
-# define systemd_NR_name_to_handle_at 370
-#elif defined(__i386__)
-# define systemd_NR_name_to_handle_at 341
-#elif defined(__ia64__)
-# define systemd_NR_name_to_handle_at systemd_SC_arch_bias(302)
-#elif defined(__m68k__)
-# define systemd_NR_name_to_handle_at 340
-#elif defined(_MIPS_SIM)
-# if _MIPS_SIM == _MIPS_SIM_ABI32
-# define systemd_NR_name_to_handle_at systemd_SC_arch_bias(339)
-# elif _MIPS_SIM == _MIPS_SIM_NABI32
-# define systemd_NR_name_to_handle_at systemd_SC_arch_bias(303)
-# elif _MIPS_SIM == _MIPS_SIM_ABI64
-# define systemd_NR_name_to_handle_at systemd_SC_arch_bias(298)
-# endif
-#elif defined(__powerpc__)
-# define systemd_NR_name_to_handle_at 345
-#elif defined(__s390__)
-# define systemd_NR_name_to_handle_at 335
-#elif defined(__sparc__)
-# define systemd_NR_name_to_handle_at 332
-#elif defined(__x86_64__)
-# define systemd_NR_name_to_handle_at systemd_SC_arch_bias(303)
-#else
-# warning "name_to_handle_at() syscall number is unknown for your architecture"
-#endif
-
-/* may be (invalid) negative number due to libseccomp, see PR 13319 */
-#if defined __NR_name_to_handle_at && __NR_name_to_handle_at >= 0
-# if defined systemd_NR_name_to_handle_at
-assert_cc(__NR_name_to_handle_at == systemd_NR_name_to_handle_at);
-# endif
-#else
-# if defined __NR_name_to_handle_at
-# undef __NR_name_to_handle_at
-# endif
-# if defined systemd_NR_name_to_handle_at
-# define __NR_name_to_handle_at systemd_NR_name_to_handle_at
-# endif
-#endif
-
#if !HAVE_NAME_TO_HANDLE_AT
struct file_handle {
unsigned int handle_bytes;
/* ======================================================================= */
-#if defined(__aarch64__)
-# define systemd_NR_setns 268
-#elif defined(__alpha__)
-# define systemd_NR_setns 501
-#elif defined(__arc__) || defined(__tilegx__)
-# define systemd_NR_setns 268
-#elif defined(__arm__)
-# define systemd_NR_setns 375
-#elif defined(__i386__)
-# define systemd_NR_setns 346
-#elif defined(__ia64__)
-# define systemd_NR_setns systemd_SC_arch_bias(306)
-#elif defined(__m68k__)
-# define systemd_NR_setns 344
-#elif defined(_MIPS_SIM)
-# if _MIPS_SIM == _MIPS_SIM_ABI32
-# define systemd_NR_setns systemd_SC_arch_bias(344)
-# elif _MIPS_SIM == _MIPS_SIM_NABI32
-# define systemd_NR_setns systemd_SC_arch_bias(308)
-# elif _MIPS_SIM == _MIPS_SIM_ABI64
-# define systemd_NR_setns systemd_SC_arch_bias(303)
-# endif
-#elif defined(__powerpc__)
-# define systemd_NR_setns 350
-#elif defined(__s390__)
-# define systemd_NR_setns 339
-#elif defined(__sparc__)
-# define systemd_NR_setns 337
-#elif defined(__x86_64__)
-# define systemd_NR_setns systemd_SC_arch_bias(308)
-#else
-# warning "setns() syscall number is unknown for your architecture"
-#endif
-
-/* may be (invalid) negative number due to libseccomp, see PR 13319 */
-#if defined __NR_setns && __NR_setns >= 0
-# if defined systemd_NR_setns
-assert_cc(__NR_setns == systemd_NR_setns);
-# endif
-#else
-# if defined __NR_setns
-# undef __NR_setns
-# endif
-# if defined systemd_NR_setns
-# define __NR_setns systemd_NR_setns
-# endif
-#endif
-
#if !HAVE_SETNS
static inline int missing_setns(int fd, int nstype) {
# ifdef __NR_setns
/* ======================================================================= */
-#if defined(__aarch64__)
-# define systemd_NR_renameat2 276
-#elif defined(__alpha__)
-# define systemd_NR_renameat2 510
-#elif defined(__arc__) || defined(__tilegx__)
-# define systemd_NR_renameat2 276
-#elif defined(__arm__)
-# define systemd_NR_renameat2 382
-#elif defined(__i386__)
-# define systemd_NR_renameat2 353
-#elif defined(__ia64__)
-# define systemd_NR_renameat2 systemd_SC_arch_bias(314)
-#elif defined(__m68k__)
-# define systemd_NR_renameat2 351
-#elif defined(_MIPS_SIM)
-# if _MIPS_SIM == _MIPS_SIM_ABI32
-# define systemd_NR_renameat2 systemd_SC_arch_bias(351)
-# elif _MIPS_SIM == _MIPS_SIM_NABI32
-# define systemd_NR_renameat2 systemd_SC_arch_bias(315)
-# elif _MIPS_SIM == _MIPS_SIM_ABI64
-# define systemd_NR_renameat2 systemd_SC_arch_bias(311)
-# endif
-#elif defined(__powerpc__)
-# define systemd_NR_renameat2 357
-#elif defined(__s390__)
-# define systemd_NR_renameat2 347
-#elif defined(__sparc__)
-# define systemd_NR_renameat2 345
-#elif defined(__x86_64__)
-# define systemd_NR_renameat2 systemd_SC_arch_bias(316)
-#else
-# warning "renameat2() syscall number is unknown for your architecture"
-#endif
-
-/* may be (invalid) negative number due to libseccomp, see PR 13319 */
-#if defined __NR_renameat2 && __NR_renameat2 >= 0
-# if defined systemd_NR_renameat2
-assert_cc(__NR_renameat2 == systemd_NR_renameat2);
-# endif
-#else
-# if defined __NR_renameat2
-# undef __NR_renameat2
-# endif
-# if defined systemd_NR_renameat2
-# define __NR_renameat2 systemd_NR_renameat2
-# endif
-#endif
-
#if !HAVE_RENAMEAT2
static inline int missing_renameat2(int oldfd, const char *oldname, int newfd, const char *newname, unsigned flags) {
# ifdef __NR_renameat2
/* ======================================================================= */
-#if defined(__aarch64__)
-# define systemd_NR_copy_file_range 285
-#elif defined(__alpha__)
-# define systemd_NR_copy_file_range 519
-#elif defined(__arc__) || defined(__tilegx__)
-# define systemd_NR_copy_file_range 285
-#elif defined(__arm__)
-# define systemd_NR_copy_file_range 391
-#elif defined(__i386__)
-# define systemd_NR_copy_file_range 377
-#elif defined(__ia64__)
-# define systemd_NR_copy_file_range systemd_SC_arch_bias(323)
-#elif defined(__m68k__)
-# define systemd_NR_copy_file_range 376
-#elif defined(_MIPS_SIM)
-# if _MIPS_SIM == _MIPS_SIM_ABI32
-# define systemd_NR_copy_file_range systemd_SC_arch_bias(360)
-# elif _MIPS_SIM == _MIPS_SIM_NABI32
-# define systemd_NR_copy_file_range systemd_SC_arch_bias(324)
-# elif _MIPS_SIM == _MIPS_SIM_ABI64
-# define systemd_NR_copy_file_range systemd_SC_arch_bias(320)
-# endif
-#elif defined(__powerpc__)
-# define systemd_NR_copy_file_range 379
-#elif defined(__s390__)
-# define systemd_NR_copy_file_range 375
-#elif defined(__sparc__)
-# define systemd_NR_copy_file_range 357
-#elif defined(__x86_64__)
-# define systemd_NR_copy_file_range systemd_SC_arch_bias(326)
-#else
-# warning "copy_file_range() syscall number is unknown for your architecture"
-#endif
-
-/* may be (invalid) negative number due to libseccomp, see PR 13319 */
-#if defined __NR_copy_file_range && __NR_copy_file_range >= 0
-# if defined systemd_NR_copy_file_range
-assert_cc(__NR_copy_file_range == systemd_NR_copy_file_range);
-# endif
-#else
-# if defined __NR_copy_file_range
-# undef __NR_copy_file_range
-# endif
-# if defined systemd_NR_copy_file_range
-# define __NR_copy_file_range systemd_NR_copy_file_range
-# endif
-#endif
-
#if !HAVE_COPY_FILE_RANGE
static inline ssize_t missing_copy_file_range(int fd_in, loff_t *off_in,
int fd_out, loff_t *off_out,
/* ======================================================================= */
-#if defined(__aarch64__)
-# define systemd_NR_bpf 280
-#elif defined(__alpha__)
-# define systemd_NR_bpf 515
-#elif defined(__arc__) || defined(__tilegx__)
-# define systemd_NR_bpf 280
-#elif defined(__arm__)
-# define systemd_NR_bpf 386
-#elif defined(__i386__)
-# define systemd_NR_bpf 357
-#elif defined(__ia64__)
-# define systemd_NR_bpf systemd_SC_arch_bias(317)
-#elif defined(__m68k__)
-# define systemd_NR_bpf 354
-#elif defined(_MIPS_SIM)
-# if _MIPS_SIM == _MIPS_SIM_ABI32
-# define systemd_NR_bpf systemd_SC_arch_bias(355)
-# elif _MIPS_SIM == _MIPS_SIM_NABI32
-# define systemd_NR_bpf systemd_SC_arch_bias(319)
-# elif _MIPS_SIM == _MIPS_SIM_ABI64
-# define systemd_NR_bpf systemd_SC_arch_bias(315)
-# endif
-#elif defined(__powerpc__)
-# define systemd_NR_bpf 361
-#elif defined(__s390__)
-# define systemd_NR_bpf 351
-#elif defined(__sparc__)
-# define systemd_NR_bpf 349
-#elif defined(__x86_64__)
-# define systemd_NR_bpf systemd_SC_arch_bias(321)
-#else
-# warning "bpf() syscall number is unknown for your architecture"
-#endif
-
-/* may be (invalid) negative number due to libseccomp, see PR 13319 */
-#if defined __NR_bpf && __NR_bpf >= 0
-# if defined systemd_NR_bpf
-assert_cc(__NR_bpf == systemd_NR_bpf);
-# endif
-#else
-# if defined __NR_bpf
-# undef __NR_bpf
-# endif
-# if defined systemd_NR_bpf
-# define __NR_bpf systemd_NR_bpf
-# endif
-#endif
-
#if !HAVE_BPF
union bpf_attr;
/* ======================================================================= */
-#ifndef __IGNORE_pkey_mprotect
-# if defined(__aarch64__)
-# define systemd_NR_pkey_mprotect 288
-# elif defined(__alpha__)
-# define systemd_NR_pkey_mprotect 524
-# elif defined(__arc__) || defined(__tilegx__)
-# define systemd_NR_pkey_mprotect 226
-# elif defined(__arm__)
-# define systemd_NR_pkey_mprotect 394
-# elif defined(__i386__)
-# define systemd_NR_pkey_mprotect 380
-# elif defined(__ia64__)
-# define systemd_NR_pkey_mprotect systemd_SC_arch_bias(330)
-# elif defined(__m68k__)
-# define systemd_NR_pkey_mprotect 381
-# elif defined(_MIPS_SIM)
-# if _MIPS_SIM == _MIPS_SIM_ABI32
-# define systemd_NR_pkey_mprotect systemd_SC_arch_bias(363)
-# elif _MIPS_SIM == _MIPS_SIM_NABI32
-# define systemd_NR_pkey_mprotect systemd_SC_arch_bias(327)
-# elif _MIPS_SIM == _MIPS_SIM_ABI64
-# define systemd_NR_pkey_mprotect systemd_SC_arch_bias(323)
-# endif
-# elif defined(__powerpc__)
-# define systemd_NR_pkey_mprotect 386
-# elif defined(__s390__)
-# define systemd_NR_pkey_mprotect 384
-# elif defined(__sparc__)
-# define systemd_NR_pkey_mprotect 362
-# elif defined(__x86_64__)
-# define systemd_NR_pkey_mprotect systemd_SC_arch_bias(329)
-# else
-# warning "pkey_mprotect() syscall number is unknown for your architecture"
-# endif
-
-/* may be (invalid) negative number due to libseccomp, see PR 13319 */
-# if defined __NR_pkey_mprotect && __NR_pkey_mprotect >= 0
-# if defined systemd_NR_pkey_mprotect
-assert_cc(__NR_pkey_mprotect == systemd_NR_pkey_mprotect);
-# endif
-# else
-# if defined __NR_pkey_mprotect
-# undef __NR_pkey_mprotect
-# endif
-# if defined systemd_NR_pkey_mprotect
-# define __NR_pkey_mprotect systemd_NR_pkey_mprotect
-# endif
-# endif
-#endif
-
-/* ======================================================================= */
-
-#if defined(__aarch64__)
-# define systemd_NR_statx 291
-#elif defined(__alpha__)
-# define systemd_NR_statx 522
-#elif defined(__arc__) || defined(__tilegx__)
-# define systemd_NR_statx 291
-#elif defined(__arm__)
-# define systemd_NR_statx 397
-#elif defined(__i386__)
-# define systemd_NR_statx 383
-#elif defined(__ia64__)
-# define systemd_NR_statx systemd_SC_arch_bias(326)
-#elif defined(__m68k__)
-# define systemd_NR_statx 379
-#elif defined(_MIPS_SIM)
-# if _MIPS_SIM == _MIPS_SIM_ABI32
-# define systemd_NR_statx systemd_SC_arch_bias(366)
-# elif _MIPS_SIM == _MIPS_SIM_NABI32
-# define systemd_NR_statx systemd_SC_arch_bias(330)
-# elif _MIPS_SIM == _MIPS_SIM_ABI64
-# define systemd_NR_statx systemd_SC_arch_bias(326)
-# endif
-#elif defined(__powerpc__)
-# define systemd_NR_statx 383
-#elif defined(__s390__)
-# define systemd_NR_statx 379
-#elif defined(__sparc__)
-# define systemd_NR_statx 360
-#elif defined(__x86_64__)
-# define systemd_NR_statx systemd_SC_arch_bias(332)
-#else
-# warning "statx() syscall number is unknown for your architecture"
-#endif
-
-/* may be (invalid) negative number due to libseccomp, see PR 13319 */
-#if defined __NR_statx && __NR_statx >= 0
-# if defined systemd_NR_statx
-assert_cc(__NR_statx == systemd_NR_statx);
-# endif
-#else
-# if defined __NR_statx
-# undef __NR_statx
-# endif
-# if defined systemd_NR_statx
-# define __NR_statx systemd_NR_statx
-# endif
-#endif
-
#if !HAVE_STATX
struct statx;
/* ======================================================================= */
-/* should be always defined, see kernel 39036cd2727395c3369b1051005da74059a85317 */
-#define systemd_NR_pidfd_send_signal systemd_SC_arch_bias(424)
-
-/* may be (invalid) negative number due to libseccomp, see PR 13319 */
-#if defined __NR_pidfd_send_signal && __NR_pidfd_send_signal >= 0
-# if defined systemd_NR_pidfd_send_signal
-assert_cc(__NR_pidfd_send_signal == systemd_NR_pidfd_send_signal);
-# endif
-#else
-# if defined __NR_pidfd_send_signal
-# undef __NR_pidfd_send_signal
-# endif
-# define __NR_pidfd_send_signal systemd_NR_pidfd_send_signal
-#endif
-
#if !HAVE_PIDFD_SEND_SIGNAL
static inline int missing_pidfd_send_signal(int fd, int sig, siginfo_t *info, unsigned flags) {
# ifdef __NR_pidfd_send_signal
# define pidfd_send_signal missing_pidfd_send_signal
#endif
-/* should be always defined, see kernel 7615d9e1780e26e0178c93c55b73309a5dc093d7 */
-#define systemd_NR_pidfd_open systemd_SC_arch_bias(434)
-
-/* may be (invalid) negative number due to libseccomp, see PR 13319 */
-#if defined __NR_pidfd_open && __NR_pidfd_open >= 0
-# if defined systemd_NR_pidfd_open
-assert_cc(__NR_pidfd_open == systemd_NR_pidfd_open);
-# endif
-#else
-# if defined __NR_pidfd_open
-# undef __NR_pidfd_open
-# endif
-# define __NR_pidfd_open systemd_NR_pidfd_open
-#endif
-
#if !HAVE_PIDFD_OPEN
static inline int missing_pidfd_open(pid_t pid, unsigned flags) {
# ifdef __NR_pidfd_open
/* ======================================================================= */
-#define systemd_NR_close_range systemd_SC_arch_bias(436)
-
-/* may be (invalid) negative number due to libseccomp, see PR 13319 */
-#if defined __NR_close_range && __NR_close_range >= 0
-# if defined systemd_NR_close_range
-assert_cc(__NR_close_range == systemd_NR_close_range);
-# endif
-#else
-# if defined __NR_close_range
-# undef __NR_close_range
-# endif
-# if defined systemd_NR_close_range
-# define __NR_close_range systemd_NR_close_range
-# endif
-#endif
-
#if !HAVE_CLOSE_RANGE
static inline int missing_close_range(int first_fd, int end_fd, unsigned flags) {
# ifdef __NR_close_range
--- /dev/null
+/* This file is generated. Do not edit! */
+
+#ifndef __IGNORE_bpf
+# if defined(__aarch64__)
+# define systemd_NR_bpf 280
+# elif defined(__alpha__)
+# define systemd_NR_bpf 515
+# elif defined(__arc__) || defined(__tilegx__)
+# define systemd_NR_bpf 280
+# elif defined(__arm__)
+# define systemd_NR_bpf 386
+# elif defined(__i386__)
+# define systemd_NR_bpf 357
+# elif defined(__ia64__)
+# define systemd_NR_bpf 1341
+# elif defined(__m68k__)
+# define systemd_NR_bpf 354
+# elif defined(_MIPS_SIM)
+# if _MIPS_SIM == _MIPS_SIM_ABI32
+# define systemd_NR_bpf 4355
+# elif _MIPS_SIM == _MIPS_SIM_NABI32
+# define systemd_NR_bpf 6319
+# elif _MIPS_SIM == _MIPS_SIM_ABI64
+# define systemd_NR_bpf 5315
+# else
+# error "Unknown MIPS ABI"
+# endif
+# elif defined(__powerpc__)
+# define systemd_NR_bpf 361
+# elif defined(__s390__)
+# define systemd_NR_bpf 351
+# elif defined(__sparc__)
+# define systemd_NR_bpf 349
+# elif defined(__x86_64__)
+# if defined(__ILP32__)
+# define systemd_NR_bpf (321 | /* __X32_SYSCALL_BIT */ 0x40000000)
+# else
+# define systemd_NR_bpf 321
+# endif
+# else
+# warning "bpf() syscall number is unknown for your architecture"
+# endif
+
+/* may be (invalid) negative number due to libseccomp, see PR 13319 */
+# if defined __NR_bpf && __NR_bpf >= 0
+# if defined systemd_NR_bpf
+assert_cc(__NR_bpf == systemd_NR_bpf);
+# endif
+# else
+# if defined __NR_bpf
+# undef __NR_bpf
+# endif
+# if defined systemd_NR_bpf && systemd_NR_bpf >= 0
+# define __NR_bpf systemd_NR_bpf
+# endif
+# endif
+#endif
+
+#ifndef __IGNORE_close_range
+# if defined(__aarch64__)
+# define systemd_NR_close_range 436
+# elif defined(__alpha__)
+# define systemd_NR_close_range 546
+# elif defined(__arc__) || defined(__tilegx__)
+# define systemd_NR_close_range 436
+# elif defined(__arm__)
+# define systemd_NR_close_range 436
+# elif defined(__i386__)
+# define systemd_NR_close_range 436
+# elif defined(__ia64__)
+# define systemd_NR_close_range 1460
+# elif defined(__m68k__)
+# define systemd_NR_close_range 436
+# elif defined(_MIPS_SIM)
+# if _MIPS_SIM == _MIPS_SIM_ABI32
+# define systemd_NR_close_range 4436
+# elif _MIPS_SIM == _MIPS_SIM_NABI32
+# define systemd_NR_close_range 6436
+# elif _MIPS_SIM == _MIPS_SIM_ABI64
+# define systemd_NR_close_range 5436
+# else
+# error "Unknown MIPS ABI"
+# endif
+# elif defined(__powerpc__)
+# define systemd_NR_close_range 436
+# elif defined(__s390__)
+# define systemd_NR_close_range 436
+# elif defined(__sparc__)
+# define systemd_NR_close_range 436
+# elif defined(__x86_64__)
+# if defined(__ILP32__)
+# define systemd_NR_close_range (436 | /* __X32_SYSCALL_BIT */ 0x40000000)
+# else
+# define systemd_NR_close_range 436
+# endif
+# else
+# warning "close_range() syscall number is unknown for your architecture"
+# endif
+
+/* may be (invalid) negative number due to libseccomp, see PR 13319 */
+# if defined __NR_close_range && __NR_close_range >= 0
+# if defined systemd_NR_close_range
+assert_cc(__NR_close_range == systemd_NR_close_range);
+# endif
+# else
+# if defined __NR_close_range
+# undef __NR_close_range
+# endif
+# if defined systemd_NR_close_range && systemd_NR_close_range >= 0
+# define __NR_close_range systemd_NR_close_range
+# endif
+# endif
+#endif
+
+#ifndef __IGNORE_copy_file_range
+# if defined(__aarch64__)
+# define systemd_NR_copy_file_range 285
+# elif defined(__alpha__)
+# define systemd_NR_copy_file_range 519
+# elif defined(__arc__) || defined(__tilegx__)
+# define systemd_NR_copy_file_range 285
+# elif defined(__arm__)
+# define systemd_NR_copy_file_range 391
+# elif defined(__i386__)
+# define systemd_NR_copy_file_range 377
+# elif defined(__ia64__)
+# define systemd_NR_copy_file_range 1347
+# elif defined(__m68k__)
+# define systemd_NR_copy_file_range 376
+# elif defined(_MIPS_SIM)
+# if _MIPS_SIM == _MIPS_SIM_ABI32
+# define systemd_NR_copy_file_range 4360
+# elif _MIPS_SIM == _MIPS_SIM_NABI32
+# define systemd_NR_copy_file_range 6324
+# elif _MIPS_SIM == _MIPS_SIM_ABI64
+# define systemd_NR_copy_file_range 5320
+# else
+# error "Unknown MIPS ABI"
+# endif
+# elif defined(__powerpc__)
+# define systemd_NR_copy_file_range 379
+# elif defined(__s390__)
+# define systemd_NR_copy_file_range 375
+# elif defined(__sparc__)
+# define systemd_NR_copy_file_range 357
+# elif defined(__x86_64__)
+# if defined(__ILP32__)
+# define systemd_NR_copy_file_range (326 | /* __X32_SYSCALL_BIT */ 0x40000000)
+# else
+# define systemd_NR_copy_file_range 326
+# endif
+# else
+# warning "copy_file_range() syscall number is unknown for your architecture"
+# endif
+
+/* may be (invalid) negative number due to libseccomp, see PR 13319 */
+# if defined __NR_copy_file_range && __NR_copy_file_range >= 0
+# if defined systemd_NR_copy_file_range
+assert_cc(__NR_copy_file_range == systemd_NR_copy_file_range);
+# endif
+# else
+# if defined __NR_copy_file_range
+# undef __NR_copy_file_range
+# endif
+# if defined systemd_NR_copy_file_range && systemd_NR_copy_file_range >= 0
+# define __NR_copy_file_range systemd_NR_copy_file_range
+# endif
+# endif
+#endif
+
+#ifndef __IGNORE_getrandom
+# if defined(__aarch64__)
+# define systemd_NR_getrandom 278
+# elif defined(__alpha__)
+# define systemd_NR_getrandom 511
+# elif defined(__arc__) || defined(__tilegx__)
+# define systemd_NR_getrandom 278
+# elif defined(__arm__)
+# define systemd_NR_getrandom 384
+# elif defined(__i386__)
+# define systemd_NR_getrandom 355
+# elif defined(__ia64__)
+# define systemd_NR_getrandom 1339
+# elif defined(__m68k__)
+# define systemd_NR_getrandom 352
+# elif defined(_MIPS_SIM)
+# if _MIPS_SIM == _MIPS_SIM_ABI32
+# define systemd_NR_getrandom 4353
+# elif _MIPS_SIM == _MIPS_SIM_NABI32
+# define systemd_NR_getrandom 6317
+# elif _MIPS_SIM == _MIPS_SIM_ABI64
+# define systemd_NR_getrandom 5313
+# else
+# error "Unknown MIPS ABI"
+# endif
+# elif defined(__powerpc__)
+# define systemd_NR_getrandom 359
+# elif defined(__s390__)
+# define systemd_NR_getrandom 349
+# elif defined(__sparc__)
+# define systemd_NR_getrandom 347
+# elif defined(__x86_64__)
+# if defined(__ILP32__)
+# define systemd_NR_getrandom (318 | /* __X32_SYSCALL_BIT */ 0x40000000)
+# else
+# define systemd_NR_getrandom 318
+# endif
+# else
+# warning "getrandom() syscall number is unknown for your architecture"
+# endif
+
+/* may be (invalid) negative number due to libseccomp, see PR 13319 */
+# if defined __NR_getrandom && __NR_getrandom >= 0
+# if defined systemd_NR_getrandom
+assert_cc(__NR_getrandom == systemd_NR_getrandom);
+# endif
+# else
+# if defined __NR_getrandom
+# undef __NR_getrandom
+# endif
+# if defined systemd_NR_getrandom && systemd_NR_getrandom >= 0
+# define __NR_getrandom systemd_NR_getrandom
+# endif
+# endif
+#endif
+
+#ifndef __IGNORE_memfd_create
+# if defined(__aarch64__)
+# define systemd_NR_memfd_create 279
+# elif defined(__alpha__)
+# define systemd_NR_memfd_create 512
+# elif defined(__arc__) || defined(__tilegx__)
+# define systemd_NR_memfd_create 279
+# elif defined(__arm__)
+# define systemd_NR_memfd_create 385
+# elif defined(__i386__)
+# define systemd_NR_memfd_create 356
+# elif defined(__ia64__)
+# define systemd_NR_memfd_create 1340
+# elif defined(__m68k__)
+# define systemd_NR_memfd_create 353
+# elif defined(_MIPS_SIM)
+# if _MIPS_SIM == _MIPS_SIM_ABI32
+# define systemd_NR_memfd_create 4354
+# elif _MIPS_SIM == _MIPS_SIM_NABI32
+# define systemd_NR_memfd_create 6318
+# elif _MIPS_SIM == _MIPS_SIM_ABI64
+# define systemd_NR_memfd_create 5314
+# else
+# error "Unknown MIPS ABI"
+# endif
+# elif defined(__powerpc__)
+# define systemd_NR_memfd_create 360
+# elif defined(__s390__)
+# define systemd_NR_memfd_create 350
+# elif defined(__sparc__)
+# define systemd_NR_memfd_create 348
+# elif defined(__x86_64__)
+# if defined(__ILP32__)
+# define systemd_NR_memfd_create (319 | /* __X32_SYSCALL_BIT */ 0x40000000)
+# else
+# define systemd_NR_memfd_create 319
+# endif
+# else
+# warning "memfd_create() syscall number is unknown for your architecture"
+# endif
+
+/* may be (invalid) negative number due to libseccomp, see PR 13319 */
+# if defined __NR_memfd_create && __NR_memfd_create >= 0
+# if defined systemd_NR_memfd_create
+assert_cc(__NR_memfd_create == systemd_NR_memfd_create);
+# endif
+# else
+# if defined __NR_memfd_create
+# undef __NR_memfd_create
+# endif
+# if defined systemd_NR_memfd_create && systemd_NR_memfd_create >= 0
+# define __NR_memfd_create systemd_NR_memfd_create
+# endif
+# endif
+#endif
+
+#ifndef __IGNORE_name_to_handle_at
+# if defined(__aarch64__)
+# define systemd_NR_name_to_handle_at 264
+# elif defined(__alpha__)
+# define systemd_NR_name_to_handle_at 497
+# elif defined(__arc__) || defined(__tilegx__)
+# define systemd_NR_name_to_handle_at 264
+# elif defined(__arm__)
+# define systemd_NR_name_to_handle_at 370
+# elif defined(__i386__)
+# define systemd_NR_name_to_handle_at 341
+# elif defined(__ia64__)
+# define systemd_NR_name_to_handle_at 1326
+# elif defined(__m68k__)
+# define systemd_NR_name_to_handle_at 340
+# elif defined(_MIPS_SIM)
+# if _MIPS_SIM == _MIPS_SIM_ABI32
+# define systemd_NR_name_to_handle_at 4339
+# elif _MIPS_SIM == _MIPS_SIM_NABI32
+# define systemd_NR_name_to_handle_at 6303
+# elif _MIPS_SIM == _MIPS_SIM_ABI64
+# define systemd_NR_name_to_handle_at 5298
+# else
+# error "Unknown MIPS ABI"
+# endif
+# elif defined(__powerpc__)
+# define systemd_NR_name_to_handle_at 345
+# elif defined(__s390__)
+# define systemd_NR_name_to_handle_at 335
+# elif defined(__sparc__)
+# define systemd_NR_name_to_handle_at 332
+# elif defined(__x86_64__)
+# if defined(__ILP32__)
+# define systemd_NR_name_to_handle_at (303 | /* __X32_SYSCALL_BIT */ 0x40000000)
+# else
+# define systemd_NR_name_to_handle_at 303
+# endif
+# else
+# warning "name_to_handle_at() syscall number is unknown for your architecture"
+# endif
+
+/* may be (invalid) negative number due to libseccomp, see PR 13319 */
+# if defined __NR_name_to_handle_at && __NR_name_to_handle_at >= 0
+# if defined systemd_NR_name_to_handle_at
+assert_cc(__NR_name_to_handle_at == systemd_NR_name_to_handle_at);
+# endif
+# else
+# if defined __NR_name_to_handle_at
+# undef __NR_name_to_handle_at
+# endif
+# if defined systemd_NR_name_to_handle_at && systemd_NR_name_to_handle_at >= 0
+# define __NR_name_to_handle_at systemd_NR_name_to_handle_at
+# endif
+# endif
+#endif
+
+#ifndef __IGNORE_pidfd_open
+# if defined(__aarch64__)
+# define systemd_NR_pidfd_open 434
+# elif defined(__alpha__)
+# define systemd_NR_pidfd_open 544
+# elif defined(__arc__) || defined(__tilegx__)
+# define systemd_NR_pidfd_open 434
+# elif defined(__arm__)
+# define systemd_NR_pidfd_open 434
+# elif defined(__i386__)
+# define systemd_NR_pidfd_open 434
+# elif defined(__ia64__)
+# define systemd_NR_pidfd_open 1458
+# elif defined(__m68k__)
+# define systemd_NR_pidfd_open 434
+# elif defined(_MIPS_SIM)
+# if _MIPS_SIM == _MIPS_SIM_ABI32
+# define systemd_NR_pidfd_open 4434
+# elif _MIPS_SIM == _MIPS_SIM_NABI32
+# define systemd_NR_pidfd_open 6434
+# elif _MIPS_SIM == _MIPS_SIM_ABI64
+# define systemd_NR_pidfd_open 5434
+# else
+# error "Unknown MIPS ABI"
+# endif
+# elif defined(__powerpc__)
+# define systemd_NR_pidfd_open 434
+# elif defined(__s390__)
+# define systemd_NR_pidfd_open 434
+# elif defined(__sparc__)
+# define systemd_NR_pidfd_open 434
+# elif defined(__x86_64__)
+# if defined(__ILP32__)
+# define systemd_NR_pidfd_open (434 | /* __X32_SYSCALL_BIT */ 0x40000000)
+# else
+# define systemd_NR_pidfd_open 434
+# endif
+# else
+# warning "pidfd_open() syscall number is unknown for your architecture"
+# endif
+
+/* may be (invalid) negative number due to libseccomp, see PR 13319 */
+# if defined __NR_pidfd_open && __NR_pidfd_open >= 0
+# if defined systemd_NR_pidfd_open
+assert_cc(__NR_pidfd_open == systemd_NR_pidfd_open);
+# endif
+# else
+# if defined __NR_pidfd_open
+# undef __NR_pidfd_open
+# endif
+# if defined systemd_NR_pidfd_open && systemd_NR_pidfd_open >= 0
+# define __NR_pidfd_open systemd_NR_pidfd_open
+# endif
+# endif
+#endif
+
+#ifndef __IGNORE_pidfd_send_signal
+# if defined(__aarch64__)
+# define systemd_NR_pidfd_send_signal 424
+# elif defined(__alpha__)
+# define systemd_NR_pidfd_send_signal 534
+# elif defined(__arc__) || defined(__tilegx__)
+# define systemd_NR_pidfd_send_signal 424
+# elif defined(__arm__)
+# define systemd_NR_pidfd_send_signal 424
+# elif defined(__i386__)
+# define systemd_NR_pidfd_send_signal 424
+# elif defined(__ia64__)
+# define systemd_NR_pidfd_send_signal 1448
+# elif defined(__m68k__)
+# define systemd_NR_pidfd_send_signal 424
+# elif defined(_MIPS_SIM)
+# if _MIPS_SIM == _MIPS_SIM_ABI32
+# define systemd_NR_pidfd_send_signal 4424
+# elif _MIPS_SIM == _MIPS_SIM_NABI32
+# define systemd_NR_pidfd_send_signal 6424
+# elif _MIPS_SIM == _MIPS_SIM_ABI64
+# define systemd_NR_pidfd_send_signal 5424
+# else
+# error "Unknown MIPS ABI"
+# endif
+# elif defined(__powerpc__)
+# define systemd_NR_pidfd_send_signal 424
+# elif defined(__s390__)
+# define systemd_NR_pidfd_send_signal 424
+# elif defined(__sparc__)
+# define systemd_NR_pidfd_send_signal 424
+# elif defined(__x86_64__)
+# if defined(__ILP32__)
+# define systemd_NR_pidfd_send_signal (424 | /* __X32_SYSCALL_BIT */ 0x40000000)
+# else
+# define systemd_NR_pidfd_send_signal 424
+# endif
+# else
+# warning "pidfd_send_signal() syscall number is unknown for your architecture"
+# endif
+
+/* may be (invalid) negative number due to libseccomp, see PR 13319 */
+# if defined __NR_pidfd_send_signal && __NR_pidfd_send_signal >= 0
+# if defined systemd_NR_pidfd_send_signal
+assert_cc(__NR_pidfd_send_signal == systemd_NR_pidfd_send_signal);
+# endif
+# else
+# if defined __NR_pidfd_send_signal
+# undef __NR_pidfd_send_signal
+# endif
+# if defined systemd_NR_pidfd_send_signal && systemd_NR_pidfd_send_signal >= 0
+# define __NR_pidfd_send_signal systemd_NR_pidfd_send_signal
+# endif
+# endif
+#endif
+
+#ifndef __IGNORE_pkey_mprotect
+# if defined(__aarch64__)
+# define systemd_NR_pkey_mprotect 288
+# elif defined(__alpha__)
+# define systemd_NR_pkey_mprotect 524
+# elif defined(__arc__) || defined(__tilegx__)
+# define systemd_NR_pkey_mprotect 288
+# elif defined(__arm__)
+# define systemd_NR_pkey_mprotect 394
+# elif defined(__i386__)
+# define systemd_NR_pkey_mprotect 380
+# elif defined(__ia64__)
+# define systemd_NR_pkey_mprotect 1354
+# elif defined(__m68k__)
+# define systemd_NR_pkey_mprotect 381
+# elif defined(_MIPS_SIM)
+# if _MIPS_SIM == _MIPS_SIM_ABI32
+# define systemd_NR_pkey_mprotect 4363
+# elif _MIPS_SIM == _MIPS_SIM_NABI32
+# define systemd_NR_pkey_mprotect 6327
+# elif _MIPS_SIM == _MIPS_SIM_ABI64
+# define systemd_NR_pkey_mprotect 5323
+# else
+# error "Unknown MIPS ABI"
+# endif
+# elif defined(__powerpc__)
+# define systemd_NR_pkey_mprotect 386
+# elif defined(__s390__)
+# define systemd_NR_pkey_mprotect 384
+# elif defined(__sparc__)
+# define systemd_NR_pkey_mprotect 362
+# elif defined(__x86_64__)
+# if defined(__ILP32__)
+# define systemd_NR_pkey_mprotect (329 | /* __X32_SYSCALL_BIT */ 0x40000000)
+# else
+# define systemd_NR_pkey_mprotect 329
+# endif
+# else
+# warning "pkey_mprotect() syscall number is unknown for your architecture"
+# endif
+
+/* may be (invalid) negative number due to libseccomp, see PR 13319 */
+# if defined __NR_pkey_mprotect && __NR_pkey_mprotect >= 0
+# if defined systemd_NR_pkey_mprotect
+assert_cc(__NR_pkey_mprotect == systemd_NR_pkey_mprotect);
+# endif
+# else
+# if defined __NR_pkey_mprotect
+# undef __NR_pkey_mprotect
+# endif
+# if defined systemd_NR_pkey_mprotect && systemd_NR_pkey_mprotect >= 0
+# define __NR_pkey_mprotect systemd_NR_pkey_mprotect
+# endif
+# endif
+#endif
+
+#ifndef __IGNORE_renameat2
+# if defined(__aarch64__)
+# define systemd_NR_renameat2 276
+# elif defined(__alpha__)
+# define systemd_NR_renameat2 510
+# elif defined(__arc__) || defined(__tilegx__)
+# define systemd_NR_renameat2 276
+# elif defined(__arm__)
+# define systemd_NR_renameat2 382
+# elif defined(__i386__)
+# define systemd_NR_renameat2 353
+# elif defined(__ia64__)
+# define systemd_NR_renameat2 1338
+# elif defined(__m68k__)
+# define systemd_NR_renameat2 351
+# elif defined(_MIPS_SIM)
+# if _MIPS_SIM == _MIPS_SIM_ABI32
+# define systemd_NR_renameat2 4351
+# elif _MIPS_SIM == _MIPS_SIM_NABI32
+# define systemd_NR_renameat2 6315
+# elif _MIPS_SIM == _MIPS_SIM_ABI64
+# define systemd_NR_renameat2 5311
+# else
+# error "Unknown MIPS ABI"
+# endif
+# elif defined(__powerpc__)
+# define systemd_NR_renameat2 357
+# elif defined(__s390__)
+# define systemd_NR_renameat2 347
+# elif defined(__sparc__)
+# define systemd_NR_renameat2 345
+# elif defined(__x86_64__)
+# if defined(__ILP32__)
+# define systemd_NR_renameat2 (316 | /* __X32_SYSCALL_BIT */ 0x40000000)
+# else
+# define systemd_NR_renameat2 316
+# endif
+# else
+# warning "renameat2() syscall number is unknown for your architecture"
+# endif
+
+/* may be (invalid) negative number due to libseccomp, see PR 13319 */
+# if defined __NR_renameat2 && __NR_renameat2 >= 0
+# if defined systemd_NR_renameat2
+assert_cc(__NR_renameat2 == systemd_NR_renameat2);
+# endif
+# else
+# if defined __NR_renameat2
+# undef __NR_renameat2
+# endif
+# if defined systemd_NR_renameat2 && systemd_NR_renameat2 >= 0
+# define __NR_renameat2 systemd_NR_renameat2
+# endif
+# endif
+#endif
+
+#ifndef __IGNORE_setns
+# if defined(__aarch64__)
+# define systemd_NR_setns 268
+# elif defined(__alpha__)
+# define systemd_NR_setns 501
+# elif defined(__arc__) || defined(__tilegx__)
+# define systemd_NR_setns 268
+# elif defined(__arm__)
+# define systemd_NR_setns 375
+# elif defined(__i386__)
+# define systemd_NR_setns 346
+# elif defined(__ia64__)
+# define systemd_NR_setns 1330
+# elif defined(__m68k__)
+# define systemd_NR_setns 344
+# elif defined(_MIPS_SIM)
+# if _MIPS_SIM == _MIPS_SIM_ABI32
+# define systemd_NR_setns 4344
+# elif _MIPS_SIM == _MIPS_SIM_NABI32
+# define systemd_NR_setns 6308
+# elif _MIPS_SIM == _MIPS_SIM_ABI64
+# define systemd_NR_setns 5303
+# else
+# error "Unknown MIPS ABI"
+# endif
+# elif defined(__powerpc__)
+# define systemd_NR_setns 350
+# elif defined(__s390__)
+# define systemd_NR_setns 339
+# elif defined(__sparc__)
+# define systemd_NR_setns 337
+# elif defined(__x86_64__)
+# if defined(__ILP32__)
+# define systemd_NR_setns (308 | /* __X32_SYSCALL_BIT */ 0x40000000)
+# else
+# define systemd_NR_setns 308
+# endif
+# else
+# warning "setns() syscall number is unknown for your architecture"
+# endif
+
+/* may be (invalid) negative number due to libseccomp, see PR 13319 */
+# if defined __NR_setns && __NR_setns >= 0
+# if defined systemd_NR_setns
+assert_cc(__NR_setns == systemd_NR_setns);
+# endif
+# else
+# if defined __NR_setns
+# undef __NR_setns
+# endif
+# if defined systemd_NR_setns && systemd_NR_setns >= 0
+# define __NR_setns systemd_NR_setns
+# endif
+# endif
+#endif
+
+#ifndef __IGNORE_statx
+# if defined(__aarch64__)
+# define systemd_NR_statx 291
+# elif defined(__alpha__)
+# define systemd_NR_statx 522
+# elif defined(__arc__) || defined(__tilegx__)
+# define systemd_NR_statx 291
+# elif defined(__arm__)
+# define systemd_NR_statx 397
+# elif defined(__i386__)
+# define systemd_NR_statx 383
+# elif defined(__ia64__)
+# define systemd_NR_statx 1350
+# elif defined(__m68k__)
+# define systemd_NR_statx 379
+# elif defined(_MIPS_SIM)
+# if _MIPS_SIM == _MIPS_SIM_ABI32
+# define systemd_NR_statx 4366
+# elif _MIPS_SIM == _MIPS_SIM_NABI32
+# define systemd_NR_statx 6330
+# elif _MIPS_SIM == _MIPS_SIM_ABI64
+# define systemd_NR_statx 5326
+# else
+# error "Unknown MIPS ABI"
+# endif
+# elif defined(__powerpc__)
+# define systemd_NR_statx 383
+# elif defined(__s390__)
+# define systemd_NR_statx 379
+# elif defined(__sparc__)
+# define systemd_NR_statx 360
+# elif defined(__x86_64__)
+# if defined(__ILP32__)
+# define systemd_NR_statx (332 | /* __X32_SYSCALL_BIT */ 0x40000000)
+# else
+# define systemd_NR_statx 332
+# endif
+# else
+# warning "statx() syscall number is unknown for your architecture"
+# endif
+
+/* may be (invalid) negative number due to libseccomp, see PR 13319 */
+# if defined __NR_statx && __NR_statx >= 0
+# if defined systemd_NR_statx
+assert_cc(__NR_statx == systemd_NR_statx);
+# endif
+# else
+# if defined __NR_statx
+# undef __NR_statx
+# endif
+# if defined systemd_NR_statx && systemd_NR_statx >= 0
+# define __NR_statx systemd_NR_statx
+# endif
+# endif
+#endif
+
--- /dev/null
+#!/usr/bin/env python3
+import sys
+import os
+import functools
+
+# We only generate numbers for a dozen or so syscalls
+SYSCALLS = [
+ 'bpf',
+ 'close_range',
+ 'copy_file_range',
+ 'getrandom',
+ 'memfd_create',
+ 'name_to_handle_at',
+ 'pidfd_open',
+ 'pidfd_send_signal',
+ 'pkey_mprotect',
+ 'renameat2',
+ 'setns',
+ 'statx']
+
+def dictify(f):
+ def wrap(*args, **kwargs):
+ return dict(f(*args, **kwargs))
+ return functools.update_wrapper(wrap, f)
+
+@dictify
+def parse_syscall_table(filename):
+ print(f'Reading {filename}…')
+ for line in open(filename):
+ items = line.split()
+ if len(items) >= 2:
+ yield items[0], int(items[1])
+
+def parse_syscall_tables(filenames):
+ return {filename.split('-')[-1]: parse_syscall_table(filename)
+ for filename in filenames}
+
+DEF_TEMPLATE = '''\
+#ifndef __IGNORE_{syscall}
+# if defined(__aarch64__)
+# define systemd_NR_{syscall} {nr_arm64}
+# elif defined(__alpha__)
+# define systemd_NR_{syscall} {nr_alpha}
+# elif defined(__arc__) || defined(__tilegx__)
+# define systemd_NR_{syscall} {nr_arc}
+# elif defined(__arm__)
+# define systemd_NR_{syscall} {nr_arm}
+# elif defined(__i386__)
+# define systemd_NR_{syscall} {nr_i386}
+# elif defined(__ia64__)
+# define systemd_NR_{syscall} {nr_ia64}
+# elif defined(__m68k__)
+# define systemd_NR_{syscall} {nr_m68k}
+# elif defined(_MIPS_SIM)
+# if _MIPS_SIM == _MIPS_SIM_ABI32
+# define systemd_NR_{syscall} {nr_mipso32}
+# elif _MIPS_SIM == _MIPS_SIM_NABI32
+# define systemd_NR_{syscall} {nr_mips64n32}
+# elif _MIPS_SIM == _MIPS_SIM_ABI64
+# define systemd_NR_{syscall} {nr_mips64}
+# else
+# error "Unknown MIPS ABI"
+# endif
+# elif defined(__powerpc__)
+# define systemd_NR_{syscall} {nr_powerpc}
+# elif defined(__s390__)
+# define systemd_NR_{syscall} {nr_s390}
+# elif defined(__sparc__)
+# define systemd_NR_{syscall} {nr_sparc}
+# elif defined(__x86_64__)
+# if defined(__ILP32__)
+# define systemd_NR_{syscall} ({nr_x86_64} | /* __X32_SYSCALL_BIT */ 0x40000000)
+# else
+# define systemd_NR_{syscall} {nr_x86_64}
+# endif
+# else
+# warning "{syscall}() syscall number is unknown for your architecture"
+# endif
+
+/* may be (invalid) negative number due to libseccomp, see PR 13319 */
+# if defined __NR_{syscall} && __NR_{syscall} >= 0
+# if defined systemd_NR_{syscall}
+assert_cc(__NR_{syscall} == systemd_NR_{syscall});
+# endif
+# else
+# if defined __NR_{syscall}
+# undef __NR_{syscall}
+# endif
+# if defined systemd_NR_{syscall} && systemd_NR_{syscall} >= 0
+# define __NR_{syscall} systemd_NR_{syscall}
+# endif
+# endif
+#endif
+'''
+
+def print_syscall_def(syscall, tables, out):
+ mappings = {f'nr_{arch}':t.get(syscall, -1)
+ for arch, t in tables.items()}
+ print(DEF_TEMPLATE.format(syscall=syscall, **mappings),
+ file=out)
+
+def print_syscall_defs(syscalls, tables, out):
+ print('/* This file is generated. Do not edit! */\n', file=out)
+ for syscall in syscalls:
+ print_syscall_def(syscall, tables, out)
+
+if __name__ == '__main__':
+ output_file = sys.argv[1]
+ arch_files = sys.argv[2:]
+ out = open(output_file, 'wt')
+
+ tables = parse_syscall_tables(arch_files)
+ print_syscall_defs(SYSCALLS, tables, out)
+
+ print(f'Wrote {output_file}')