diff options
author | Tom de Vries <tdevries@suse.de> | 2025-03-13 07:41:51 +0100 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2025-03-13 07:41:51 +0100 |
commit | fbfb29b304ef7d3270a918b5fc60c22b0909367e (patch) | |
tree | 7a81e2c874fd0dcec142f24ec28f7894e6ba45ed | |
parent | 0d1d25671598eed4fdeab09d0ef987c12afce21c (diff) | |
download | binutils-fbfb29b304ef7d3270a918b5fc60c22b0909367e.zip binutils-fbfb29b304ef7d3270a918b5fc60c22b0909367e.tar.gz binutils-fbfb29b304ef7d3270a918b5fc60c22b0909367e.tar.bz2 |
[gdb/tdep] Rewrite i386_canonicalize_syscall
On openSUSE Tumbleweed x86_64, with target board unix/-m32 and test-case
gdb.reverse/recvmsg-reverse.exp, I run into:
...
(gdb) continue^M
Continuing.^M
Process record and replay target doesn't support syscall number 360^M
Process record: failed to record execution log.^M
^M
Program stopped.^M
0xf7fc5575 in __kernel_vsyscall ()^M
(gdb) FAIL: $exp: continue to breakpoint: marker2
...
The syscall number 360 in i386 is for syscall socketpair, as we can see in
arch/x86/entry/syscalls/syscall_32.tbl:
...
<number> <abi> <name> <entry point>
360 i386 socketpair sys_socketpair
...
Function i386_canonicalize_syscall assumes that any syscall below 500 maps to
an identically valued enum in enum gdb_syscall:
...
static enum gdb_syscall
i386_canonicalize_syscall (int syscall)
{
enum { i386_syscall_max = 499 };
if (syscall <= i386_syscall_max)
return (enum gdb_syscall) syscall;
else
return gdb_sys_no_syscall;
}
...
However, that's not the case. The value of gdb_sys_socketpair is not 360,
but 512:
...
enum gdb_syscall {
...
gdb_sys_getrandom = 355,
gdb_sys_statx = 383,
...
gdb_sys_socketpair = 512,
...
Consequently, when record_linux_system_call is called with
syscall == i386_canonicalize_syscall (360), we hit the default case here:
....
switch (syscall)
{
...
default:
gdb_printf (gdb_stderr,
_("Process record and replay target doesn't "
"support syscall number %d\n"), syscall);
return -1;
break;
}
...
rather than hitting the case for gdb_sys_socketpair.
I initially wrote a trivial fix for this, changing the value of
gdb_sys_socketpair to 360. However, Andreas Schwab pointed out that there are
other functions (ppc_canonicalize_syscall and s390_canonicalize_syscall) that
make assumptions about specific values of enum gdb_syscall, and fixing this
for i386 may break things for ppc or s390.
So instead, I decided to rewrite i386_canonicalize_syscall to match the
approach taken in aarch64_canonicalize_syscall, which allows
gdb_sys_socketpair to keep the same value.
So, fix this by:
- adding a new table file gdb/i386-syscalls.def, using a SYSCALL entry for
each syscall, generated from arch/x86/entry/syscalls/syscall_32.tbl,
- using gdb/i386-syscalls.def to define enum i386_syscall, and
- using macros SYSCALL_MAP, SYSCALL_MAP_RENAME and UNSUPPORTED_SYSCALL_MAP to
define the mapping from enum i386_syscall to enum gdb_syscall in
i386_canonicalize_syscall.
I've created the mapping as follows:
- I used arch/x86/entry/syscalls/syscall_32.tbl to generate an initial mapping
using SYSCALL_MAP for each syscall,
- I attempted to compile this and used the compilation errors about
non-existing gdb_sys_ values to change those entries to
UNSUPPORTED_SYSCALL_MAP, which got me a compiling version,
- I reviewed the UNSUPPORTED_SYSCALL_MAP entries, changing to
SYSCALL_MAP_RENAME where necessary,
- I then reviewed syscalls below 500 that mapped to a gdb_syscall value below
500, but not the same, and fixed those using SYSCALL_MAP_RENAME, and
- reviewed the mapping for gdb_syscall entries >= 500.
On the resulting mapping, I was able to do the following sanity check:
...
for (int i = 0; i < 500; ++i)
{
int res = i386_canonicalize_syscall (i);
if (res == i)
continue;
if (res == -1)
continue;
if (res >= 500)
continue;
gdb_assert_not_reached ("");
}
}
...
to make sure that any syscall below 500 either:
- maps to the same number,
- is unsupported, or
- maps to a number >= 500.
Coming back to our original problem, the socket pair syscall is addressed by
an entry:
...
SYSCALL_MAP (socketpair);
...
which maps i386_sys_socketpair (360) to gdb_sys_socketpair (512).
Tested on x86_64-linux with target board unix/-m32.
Approved-By: Guinevere Larsen <guinevere@redhat.com>
PR tdep/32770
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=32770
-rw-r--r-- | gdb/i386-linux-tdep.c | 496 | ||||
-rw-r--r-- | gdb/i386-syscalls.def | 479 |
2 files changed, 969 insertions, 6 deletions
diff --git a/gdb/i386-linux-tdep.c b/gdb/i386-linux-tdep.c index 9dec83a..374a603 100644 --- a/gdb/i386-linux-tdep.c +++ b/gdb/i386-linux-tdep.c @@ -370,6 +370,16 @@ i386_all_but_ip_registers_record (struct regcache *regcache) return 0; } +enum i386_syscall +{ +#define SYSCALL(NUMBER,NAME) \ + i386_sys_ ## NAME = NUMBER, + +#include "gdb/i386-syscalls.def" + +#undef SYSCALL +}; + /* i386_canonicalize_syscall maps from the native i386 Linux set of syscall ids into a canonical set of syscall ids used by process record (a mostly trivial mapping, since the canonical @@ -378,12 +388,486 @@ i386_all_but_ip_registers_record (struct regcache *regcache) static enum gdb_syscall i386_canonicalize_syscall (int syscall) { - enum { i386_syscall_max = 499 }; - - if (syscall <= i386_syscall_max) - return (enum gdb_syscall) syscall; - else - return gdb_sys_no_syscall; + switch ((enum i386_syscall) syscall) + { +#define SYSCALL_MAP(SYSCALL) \ + case i386_sys_ ## SYSCALL: \ + return gdb_sys_ ## SYSCALL + +#define SYSCALL_MAP_RENAME(SYSCALL,GDB_SYSCALL) \ + case i386_sys_##SYSCALL: \ + return GDB_SYSCALL; + +#define UNSUPPORTED_SYSCALL_MAP(SYSCALL) \ + case i386_sys_ ## SYSCALL: \ + return gdb_sys_no_syscall; + + SYSCALL_MAP (restart_syscall); + SYSCALL_MAP (exit); + SYSCALL_MAP (fork); + SYSCALL_MAP (read); + SYSCALL_MAP (write); + SYSCALL_MAP (open); + SYSCALL_MAP (close); + SYSCALL_MAP (waitpid); + SYSCALL_MAP (creat); + SYSCALL_MAP (link); + SYSCALL_MAP (unlink); + SYSCALL_MAP (execve); + SYSCALL_MAP (chdir); + SYSCALL_MAP (time); + SYSCALL_MAP (mknod); + SYSCALL_MAP (chmod); + SYSCALL_MAP_RENAME (lchown, gdb_sys_lchown16); + SYSCALL_MAP_RENAME (break, gdb_sys_ni_syscall17); + SYSCALL_MAP_RENAME (oldstat, gdb_sys_stat); + SYSCALL_MAP (lseek); + SYSCALL_MAP (getpid); + SYSCALL_MAP (mount); + SYSCALL_MAP_RENAME (umount, gdb_sys_oldumount); + SYSCALL_MAP_RENAME (setuid, gdb_sys_setuid16); + SYSCALL_MAP_RENAME (getuid, gdb_sys_getuid16); + SYSCALL_MAP (stime); + SYSCALL_MAP (ptrace); + SYSCALL_MAP (alarm); + SYSCALL_MAP_RENAME (oldfstat, gdb_sys_fstat); + SYSCALL_MAP (pause); + SYSCALL_MAP (utime); + SYSCALL_MAP_RENAME (stty, gdb_sys_ni_syscall31); + SYSCALL_MAP_RENAME (gtty, gdb_sys_ni_syscall32); + SYSCALL_MAP (access); + SYSCALL_MAP (nice); + SYSCALL_MAP_RENAME (ftime, gdb_sys_ni_syscall35); + SYSCALL_MAP (sync); + SYSCALL_MAP (kill); + SYSCALL_MAP (rename); + SYSCALL_MAP (mkdir); + SYSCALL_MAP (rmdir); + SYSCALL_MAP (dup); + SYSCALL_MAP (pipe); + SYSCALL_MAP (times); + SYSCALL_MAP_RENAME (prof, gdb_sys_ni_syscall44); + SYSCALL_MAP (brk); + SYSCALL_MAP_RENAME (setgid, gdb_sys_setgid16); + SYSCALL_MAP_RENAME (getgid, gdb_sys_getgid16); + SYSCALL_MAP (signal); + SYSCALL_MAP_RENAME (geteuid, gdb_sys_geteuid16); + SYSCALL_MAP_RENAME (getegid, gdb_sys_getegid16); + SYSCALL_MAP (acct); + SYSCALL_MAP_RENAME (umount2, gdb_sys_umount); + SYSCALL_MAP_RENAME (lock, gdb_sys_ni_syscall53); + SYSCALL_MAP (ioctl); + SYSCALL_MAP (fcntl); + SYSCALL_MAP_RENAME (mpx, gdb_sys_ni_syscall56); + SYSCALL_MAP (setpgid); + SYSCALL_MAP_RENAME (ulimit, gdb_sys_ni_syscall58); + SYSCALL_MAP_RENAME (oldolduname, gdb_sys_olduname); + SYSCALL_MAP (umask); + SYSCALL_MAP (chroot); + SYSCALL_MAP (ustat); + SYSCALL_MAP (dup2); + SYSCALL_MAP (getppid); + SYSCALL_MAP (getpgrp); + SYSCALL_MAP (setsid); + SYSCALL_MAP (sigaction); + SYSCALL_MAP (sgetmask); + SYSCALL_MAP (ssetmask); + SYSCALL_MAP_RENAME (setreuid, gdb_sys_setreuid16); + SYSCALL_MAP_RENAME (setregid, gdb_sys_setregid16); + SYSCALL_MAP (sigsuspend); + SYSCALL_MAP (sigpending); + SYSCALL_MAP (sethostname); + SYSCALL_MAP (setrlimit); + SYSCALL_MAP_RENAME (getrlimit, gdb_sys_old_getrlimit); + SYSCALL_MAP (getrusage); + SYSCALL_MAP (gettimeofday); + SYSCALL_MAP (settimeofday); + SYSCALL_MAP_RENAME (getgroups, gdb_sys_getgroups16); + SYSCALL_MAP_RENAME (setgroups, gdb_sys_setgroups16); + SYSCALL_MAP_RENAME (select, gdb_old_select); + SYSCALL_MAP (symlink); + SYSCALL_MAP_RENAME (oldlstat, gdb_sys_lstat); + SYSCALL_MAP (readlink); + SYSCALL_MAP (uselib); + SYSCALL_MAP (swapon); + SYSCALL_MAP (reboot); + SYSCALL_MAP_RENAME (readdir, gdb_old_readdir); + SYSCALL_MAP_RENAME (mmap, gdb_old_mmap); + SYSCALL_MAP (munmap); + SYSCALL_MAP (truncate); + SYSCALL_MAP (ftruncate); + SYSCALL_MAP (fchmod); + SYSCALL_MAP_RENAME (fchown, gdb_sys_fchown16); + SYSCALL_MAP (getpriority); + SYSCALL_MAP (setpriority); + SYSCALL_MAP_RENAME (profil, gdb_sys_ni_syscall98); + SYSCALL_MAP (statfs); + SYSCALL_MAP (fstatfs); + SYSCALL_MAP (ioperm); + SYSCALL_MAP (socketcall); + SYSCALL_MAP (syslog); + SYSCALL_MAP (setitimer); + SYSCALL_MAP (getitimer); + SYSCALL_MAP_RENAME (stat, gdb_sys_newstat); + SYSCALL_MAP_RENAME (lstat, gdb_sys_newlstat); + SYSCALL_MAP_RENAME (fstat, gdb_sys_newfstat); + SYSCALL_MAP_RENAME (olduname, gdb_sys_uname); + SYSCALL_MAP (iopl); + SYSCALL_MAP (vhangup); + SYSCALL_MAP_RENAME (idle, gdb_sys_ni_syscall112); + SYSCALL_MAP (vm86old); + SYSCALL_MAP (wait4); + SYSCALL_MAP (swapoff); + SYSCALL_MAP (sysinfo); + SYSCALL_MAP (ipc); + SYSCALL_MAP (fsync); + SYSCALL_MAP (sigreturn); + SYSCALL_MAP (clone); + SYSCALL_MAP (setdomainname); + SYSCALL_MAP_RENAME (uname, gdb_sys_newuname); + SYSCALL_MAP (modify_ldt); + SYSCALL_MAP (adjtimex); + SYSCALL_MAP (mprotect); + SYSCALL_MAP (sigprocmask); + SYSCALL_MAP_RENAME (create_module, gdb_sys_ni_syscall127); + SYSCALL_MAP (init_module); + SYSCALL_MAP (delete_module); + SYSCALL_MAP_RENAME (get_kernel_syms, gdb_sys_ni_syscall130); + SYSCALL_MAP (quotactl); + SYSCALL_MAP (getpgid); + SYSCALL_MAP (fchdir); + SYSCALL_MAP (bdflush); + SYSCALL_MAP (sysfs); + SYSCALL_MAP (personality); + SYSCALL_MAP_RENAME (afs_syscall, gdb_sys_ni_syscall137); + SYSCALL_MAP_RENAME (setfsuid, gdb_sys_setfsuid16); + SYSCALL_MAP_RENAME (setfsgid, gdb_sys_setfsgid16); + SYSCALL_MAP_RENAME (_llseek, gdb_sys_llseek); + SYSCALL_MAP (getdents); + SYSCALL_MAP_RENAME (_newselect, gdb_sys_select); + SYSCALL_MAP (flock); + SYSCALL_MAP (msync); + SYSCALL_MAP (readv); + SYSCALL_MAP (writev); + SYSCALL_MAP (getsid); + SYSCALL_MAP (fdatasync); + SYSCALL_MAP_RENAME (_sysctl, gdb_sys_sysctl); + SYSCALL_MAP (mlock); + SYSCALL_MAP (munlock); + SYSCALL_MAP (mlockall); + SYSCALL_MAP (munlockall); + SYSCALL_MAP (sched_setparam); + SYSCALL_MAP (sched_getparam); + SYSCALL_MAP (sched_setscheduler); + SYSCALL_MAP (sched_getscheduler); + SYSCALL_MAP (sched_yield); + SYSCALL_MAP (sched_get_priority_max); + SYSCALL_MAP (sched_get_priority_min); + SYSCALL_MAP (sched_rr_get_interval); + SYSCALL_MAP (nanosleep); + SYSCALL_MAP (mremap); + SYSCALL_MAP_RENAME (setresuid, gdb_sys_setresuid16); + SYSCALL_MAP_RENAME (getresuid, gdb_sys_getresuid16); + SYSCALL_MAP (vm86); + SYSCALL_MAP_RENAME (query_module, gdb_sys_ni_syscall167); + SYSCALL_MAP (poll); + SYSCALL_MAP (nfsservctl); + SYSCALL_MAP_RENAME (setresgid, gdb_sys_setresgid16); + SYSCALL_MAP_RENAME (getresgid, gdb_sys_getresgid16); + SYSCALL_MAP (prctl); + SYSCALL_MAP (rt_sigreturn); + SYSCALL_MAP (rt_sigaction); + SYSCALL_MAP (rt_sigprocmask); + SYSCALL_MAP (rt_sigpending); + SYSCALL_MAP (rt_sigtimedwait); + SYSCALL_MAP (rt_sigqueueinfo); + SYSCALL_MAP (rt_sigsuspend); + SYSCALL_MAP (pread64); + SYSCALL_MAP (pwrite64); + SYSCALL_MAP_RENAME (chown, gdb_sys_chown16); + SYSCALL_MAP (getcwd); + SYSCALL_MAP (capget); + SYSCALL_MAP (capset); + SYSCALL_MAP (sigaltstack); + SYSCALL_MAP (sendfile); + SYSCALL_MAP_RENAME (getpmsg, gdb_sys_ni_syscall188); + SYSCALL_MAP_RENAME (putpmsg, gdb_sys_ni_syscall189); + SYSCALL_MAP (vfork); + SYSCALL_MAP_RENAME (ugetrlimit, gdb_sys_getrlimit); + SYSCALL_MAP (mmap2); + SYSCALL_MAP (truncate64); + SYSCALL_MAP (ftruncate64); + SYSCALL_MAP (stat64); + SYSCALL_MAP (lstat64); + SYSCALL_MAP (fstat64); + + SYSCALL_MAP_RENAME (lchown32, gdb_sys_lchown); + SYSCALL_MAP_RENAME (getuid32, gdb_sys_getuid); + SYSCALL_MAP_RENAME (getgid32, gdb_sys_getgid); + SYSCALL_MAP_RENAME (geteuid32, gdb_sys_geteuid); + SYSCALL_MAP_RENAME (getegid32, gdb_sys_getegid); + SYSCALL_MAP_RENAME (setreuid32, gdb_sys_setreuid); + SYSCALL_MAP_RENAME (setregid32, gdb_sys_setregid); + SYSCALL_MAP_RENAME (getgroups32, gdb_sys_getgroups); + SYSCALL_MAP_RENAME (setgroups32, gdb_sys_setgroups); + SYSCALL_MAP_RENAME (fchown32, gdb_sys_fchown); + SYSCALL_MAP_RENAME (setresuid32, gdb_sys_setresuid); + SYSCALL_MAP_RENAME (getresuid32, gdb_sys_getresuid); + SYSCALL_MAP_RENAME (setresgid32, gdb_sys_setresgid); + SYSCALL_MAP_RENAME (getresgid32, gdb_sys_getresgid); + SYSCALL_MAP_RENAME (chown32, gdb_sys_chown); + SYSCALL_MAP_RENAME (setuid32, gdb_sys_setuid); + SYSCALL_MAP_RENAME (setgid32, gdb_sys_setgid); + SYSCALL_MAP_RENAME (setfsuid32, gdb_sys_setfsuid); + SYSCALL_MAP_RENAME (setfsgid32, gdb_sys_setfsgid); + + SYSCALL_MAP (pivot_root); + SYSCALL_MAP (mincore); + SYSCALL_MAP (madvise); + SYSCALL_MAP (getdents64); + SYSCALL_MAP (fcntl64); + SYSCALL_MAP (gettid); + SYSCALL_MAP (readahead); + SYSCALL_MAP (setxattr); + SYSCALL_MAP (lsetxattr); + SYSCALL_MAP (fsetxattr); + SYSCALL_MAP (getxattr); + SYSCALL_MAP (lgetxattr); + SYSCALL_MAP (fgetxattr); + SYSCALL_MAP (listxattr); + SYSCALL_MAP (llistxattr); + SYSCALL_MAP (flistxattr); + SYSCALL_MAP (removexattr); + SYSCALL_MAP (lremovexattr); + SYSCALL_MAP (fremovexattr); + SYSCALL_MAP (tkill); + SYSCALL_MAP (sendfile64); + SYSCALL_MAP (futex); + SYSCALL_MAP (sched_setaffinity); + SYSCALL_MAP (sched_getaffinity); + SYSCALL_MAP (set_thread_area); + SYSCALL_MAP (get_thread_area); + SYSCALL_MAP (io_setup); + SYSCALL_MAP (io_destroy); + SYSCALL_MAP (io_getevents); + SYSCALL_MAP (io_submit); + SYSCALL_MAP (io_cancel); + SYSCALL_MAP (fadvise64); + SYSCALL_MAP (exit_group); + SYSCALL_MAP (lookup_dcookie); + SYSCALL_MAP (epoll_create); + SYSCALL_MAP (epoll_ctl); + SYSCALL_MAP (epoll_wait); + SYSCALL_MAP (remap_file_pages); + SYSCALL_MAP (set_tid_address); + SYSCALL_MAP (timer_create); + SYSCALL_MAP (timer_settime); + SYSCALL_MAP (timer_gettime); + SYSCALL_MAP (timer_getoverrun); + SYSCALL_MAP (timer_delete); + SYSCALL_MAP (clock_settime); + SYSCALL_MAP (clock_gettime); + SYSCALL_MAP (clock_getres); + SYSCALL_MAP (clock_nanosleep); + SYSCALL_MAP (statfs64); + SYSCALL_MAP (fstatfs64); + SYSCALL_MAP (tgkill); + SYSCALL_MAP (utimes); + SYSCALL_MAP (fadvise64_64); + SYSCALL_MAP_RENAME (vserver, gdb_sys_ni_syscall273); + SYSCALL_MAP (mbind); + SYSCALL_MAP (get_mempolicy); + SYSCALL_MAP (set_mempolicy); + SYSCALL_MAP (mq_open); + SYSCALL_MAP (mq_unlink); + SYSCALL_MAP (mq_timedsend); + SYSCALL_MAP (mq_timedreceive); + SYSCALL_MAP (mq_notify); + SYSCALL_MAP (mq_getsetattr); + SYSCALL_MAP (kexec_load); + SYSCALL_MAP (waitid); + SYSCALL_MAP (add_key); + SYSCALL_MAP (request_key); + SYSCALL_MAP (keyctl); + SYSCALL_MAP (ioprio_set); + SYSCALL_MAP (ioprio_get); + SYSCALL_MAP (inotify_init); + SYSCALL_MAP (inotify_add_watch); + SYSCALL_MAP (inotify_rm_watch); + SYSCALL_MAP (migrate_pages); + SYSCALL_MAP (openat); + SYSCALL_MAP (mkdirat); + SYSCALL_MAP (mknodat); + SYSCALL_MAP (fchownat); + SYSCALL_MAP (futimesat); + SYSCALL_MAP (fstatat64); + SYSCALL_MAP (unlinkat); + SYSCALL_MAP (renameat); + SYSCALL_MAP (linkat); + SYSCALL_MAP (symlinkat); + SYSCALL_MAP (readlinkat); + SYSCALL_MAP (fchmodat); + SYSCALL_MAP (faccessat); + SYSCALL_MAP (pselect6); + SYSCALL_MAP (ppoll); + SYSCALL_MAP (unshare); + SYSCALL_MAP (set_robust_list); + SYSCALL_MAP (get_robust_list); + SYSCALL_MAP (splice); + SYSCALL_MAP (sync_file_range); + SYSCALL_MAP (tee); + SYSCALL_MAP (vmsplice); + SYSCALL_MAP (move_pages); + SYSCALL_MAP (getcpu); + SYSCALL_MAP (epoll_pwait); + UNSUPPORTED_SYSCALL_MAP (utimensat); + UNSUPPORTED_SYSCALL_MAP (signalfd); + UNSUPPORTED_SYSCALL_MAP (timerfd_create); + UNSUPPORTED_SYSCALL_MAP (eventfd); + SYSCALL_MAP (fallocate); + UNSUPPORTED_SYSCALL_MAP (timerfd_settime); + UNSUPPORTED_SYSCALL_MAP (timerfd_gettime); + UNSUPPORTED_SYSCALL_MAP (signalfd4); + SYSCALL_MAP (eventfd2); + SYSCALL_MAP (epoll_create1); + SYSCALL_MAP (dup3); + SYSCALL_MAP (pipe2); + SYSCALL_MAP (inotify_init1); + UNSUPPORTED_SYSCALL_MAP (preadv); + UNSUPPORTED_SYSCALL_MAP (pwritev); + UNSUPPORTED_SYSCALL_MAP (rt_tgsigqueueinfo); + UNSUPPORTED_SYSCALL_MAP (perf_event_open); + UNSUPPORTED_SYSCALL_MAP (recvmmsg); + UNSUPPORTED_SYSCALL_MAP (fanotify_init); + UNSUPPORTED_SYSCALL_MAP (fanotify_mark); + UNSUPPORTED_SYSCALL_MAP (prlimit64); + UNSUPPORTED_SYSCALL_MAP (name_to_handle_at); + UNSUPPORTED_SYSCALL_MAP (open_by_handle_at); + UNSUPPORTED_SYSCALL_MAP (clock_adjtime); + UNSUPPORTED_SYSCALL_MAP (syncfs); + UNSUPPORTED_SYSCALL_MAP (sendmmsg); + UNSUPPORTED_SYSCALL_MAP (setns); + UNSUPPORTED_SYSCALL_MAP (process_vm_readv); + UNSUPPORTED_SYSCALL_MAP (process_vm_writev); + UNSUPPORTED_SYSCALL_MAP (kcmp); + UNSUPPORTED_SYSCALL_MAP (finit_module); + UNSUPPORTED_SYSCALL_MAP (sched_setattr); + UNSUPPORTED_SYSCALL_MAP (sched_getattr); + UNSUPPORTED_SYSCALL_MAP (renameat2); + UNSUPPORTED_SYSCALL_MAP (seccomp); + SYSCALL_MAP (getrandom); + UNSUPPORTED_SYSCALL_MAP (memfd_create); + UNSUPPORTED_SYSCALL_MAP (bpf); + UNSUPPORTED_SYSCALL_MAP (execveat); + SYSCALL_MAP (socket); + SYSCALL_MAP (socketpair); + SYSCALL_MAP (bind); + SYSCALL_MAP (connect); + SYSCALL_MAP (listen); + UNSUPPORTED_SYSCALL_MAP (accept4); + SYSCALL_MAP (getsockopt); + SYSCALL_MAP (setsockopt); + SYSCALL_MAP (getsockname); + SYSCALL_MAP (getpeername); + SYSCALL_MAP (sendto); + SYSCALL_MAP (sendmsg); + SYSCALL_MAP (recvfrom); + SYSCALL_MAP (recvmsg); + SYSCALL_MAP (shutdown); + UNSUPPORTED_SYSCALL_MAP (userfaultfd); + UNSUPPORTED_SYSCALL_MAP (membarrier); + UNSUPPORTED_SYSCALL_MAP (mlock2); + UNSUPPORTED_SYSCALL_MAP (copy_file_range); + UNSUPPORTED_SYSCALL_MAP (preadv2); + UNSUPPORTED_SYSCALL_MAP (pwritev2); + UNSUPPORTED_SYSCALL_MAP (pkey_mprotect); + UNSUPPORTED_SYSCALL_MAP (pkey_alloc); + UNSUPPORTED_SYSCALL_MAP (pkey_free); + SYSCALL_MAP (statx); + UNSUPPORTED_SYSCALL_MAP (arch_prctl); + UNSUPPORTED_SYSCALL_MAP (io_pgetevents); + UNSUPPORTED_SYSCALL_MAP (rseq); + SYSCALL_MAP (semget); + SYSCALL_MAP (semctl); + SYSCALL_MAP (shmget); + SYSCALL_MAP (shmctl); + SYSCALL_MAP (shmat); + SYSCALL_MAP (shmdt); + SYSCALL_MAP (msgget); + SYSCALL_MAP (msgsnd); + SYSCALL_MAP (msgrcv); + SYSCALL_MAP (msgctl); + SYSCALL_MAP (clock_gettime64); + UNSUPPORTED_SYSCALL_MAP (clock_settime64); + UNSUPPORTED_SYSCALL_MAP (clock_adjtime64); + UNSUPPORTED_SYSCALL_MAP (clock_getres_time64); + UNSUPPORTED_SYSCALL_MAP (clock_nanosleep_time64); + UNSUPPORTED_SYSCALL_MAP (timer_gettime64); + UNSUPPORTED_SYSCALL_MAP (timer_settime64); + UNSUPPORTED_SYSCALL_MAP (timerfd_gettime64); + UNSUPPORTED_SYSCALL_MAP (timerfd_settime64); + UNSUPPORTED_SYSCALL_MAP (utimensat_time64); + UNSUPPORTED_SYSCALL_MAP (pselect6_time64); + UNSUPPORTED_SYSCALL_MAP (ppoll_time64); + UNSUPPORTED_SYSCALL_MAP (io_pgetevents_time64); + UNSUPPORTED_SYSCALL_MAP (recvmmsg_time64); + UNSUPPORTED_SYSCALL_MAP (mq_timedsend_time64); + UNSUPPORTED_SYSCALL_MAP (mq_timedreceive_time64); + SYSCALL_MAP_RENAME (semtimedop_time64, gdb_sys_semtimedop); + UNSUPPORTED_SYSCALL_MAP (rt_sigtimedwait_time64); + UNSUPPORTED_SYSCALL_MAP (futex_time64); + UNSUPPORTED_SYSCALL_MAP (sched_rr_get_interval_time64); + UNSUPPORTED_SYSCALL_MAP (pidfd_send_signal); + UNSUPPORTED_SYSCALL_MAP (io_uring_setup); + UNSUPPORTED_SYSCALL_MAP (io_uring_enter); + UNSUPPORTED_SYSCALL_MAP (io_uring_register); + UNSUPPORTED_SYSCALL_MAP (open_tree); + UNSUPPORTED_SYSCALL_MAP (move_mount); + UNSUPPORTED_SYSCALL_MAP (fsopen); + UNSUPPORTED_SYSCALL_MAP (fsconfig); + UNSUPPORTED_SYSCALL_MAP (fsmount); + UNSUPPORTED_SYSCALL_MAP (fspick); + UNSUPPORTED_SYSCALL_MAP (pidfd_open); + UNSUPPORTED_SYSCALL_MAP (clone3); + UNSUPPORTED_SYSCALL_MAP (close_range); + UNSUPPORTED_SYSCALL_MAP (openat2); + UNSUPPORTED_SYSCALL_MAP (pidfd_getfd); + UNSUPPORTED_SYSCALL_MAP (faccessat2); + UNSUPPORTED_SYSCALL_MAP (process_madvise); + UNSUPPORTED_SYSCALL_MAP (epoll_pwait2); + UNSUPPORTED_SYSCALL_MAP (mount_setattr); + UNSUPPORTED_SYSCALL_MAP (quotactl_fd); + UNSUPPORTED_SYSCALL_MAP (landlock_create_ruleset); + UNSUPPORTED_SYSCALL_MAP (landlock_add_rule); + UNSUPPORTED_SYSCALL_MAP (landlock_restrict_self); + UNSUPPORTED_SYSCALL_MAP (memfd_secret); + UNSUPPORTED_SYSCALL_MAP (process_mrelease); + UNSUPPORTED_SYSCALL_MAP (futex_waitv); + UNSUPPORTED_SYSCALL_MAP (set_mempolicy_home_node); + UNSUPPORTED_SYSCALL_MAP (cachestat); + UNSUPPORTED_SYSCALL_MAP (fchmodat2); + UNSUPPORTED_SYSCALL_MAP (map_shadow_stack); + UNSUPPORTED_SYSCALL_MAP (futex_wake); + UNSUPPORTED_SYSCALL_MAP (futex_wait); + UNSUPPORTED_SYSCALL_MAP (futex_requeue); + UNSUPPORTED_SYSCALL_MAP (statmount); + UNSUPPORTED_SYSCALL_MAP (listmount); + UNSUPPORTED_SYSCALL_MAP (lsm_get_self_attr); + UNSUPPORTED_SYSCALL_MAP (lsm_set_self_attr); + UNSUPPORTED_SYSCALL_MAP (lsm_list_modules); + UNSUPPORTED_SYSCALL_MAP (mseal); + UNSUPPORTED_SYSCALL_MAP (setxattrat); + UNSUPPORTED_SYSCALL_MAP (getxattrat); + UNSUPPORTED_SYSCALL_MAP (listxattrat); + UNSUPPORTED_SYSCALL_MAP (removexattrat); + +#undef SYSCALL_MAP +#undef SYSCALL_MAP_RENAME +#undef UNSUPPORTED_SYSCALL_MAP + + default: + return gdb_sys_no_syscall; + } } /* Value of the sigcode in case of a boundary fault. */ diff --git a/gdb/i386-syscalls.def b/gdb/i386-syscalls.def new file mode 100644 index 0000000..5ba384a --- /dev/null +++ b/gdb/i386-syscalls.def @@ -0,0 +1,479 @@ +/* Copyright (C) 2025 Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + + Generated using linux v6.13 and command: + + $ egrep -v "^#.*" ./arch/x86/entry/syscalls/syscall_32.tbl \ + | awk '{printf "SYSCALL (%s, %s)\n", $1, $3}' +*/ + +SYSCALL (0, restart_syscall) +SYSCALL (1, exit) +SYSCALL (2, fork) +SYSCALL (3, read) +SYSCALL (4, write) +SYSCALL (5, open) +SYSCALL (6, close) +SYSCALL (7, waitpid) +SYSCALL (8, creat) +SYSCALL (9, link) +SYSCALL (10, unlink) +SYSCALL (11, execve) +SYSCALL (12, chdir) +SYSCALL (13, time) +SYSCALL (14, mknod) +SYSCALL (15, chmod) +SYSCALL (16, lchown) +SYSCALL (17, break) +SYSCALL (18, oldstat) +SYSCALL (19, lseek) +SYSCALL (20, getpid) +SYSCALL (21, mount) +SYSCALL (22, umount) +SYSCALL (23, setuid) +SYSCALL (24, getuid) +SYSCALL (25, stime) +SYSCALL (26, ptrace) +SYSCALL (27, alarm) +SYSCALL (28, oldfstat) +SYSCALL (29, pause) +SYSCALL (30, utime) +SYSCALL (31, stty) +SYSCALL (32, gtty) +SYSCALL (33, access) +SYSCALL (34, nice) +SYSCALL (35, ftime) +SYSCALL (36, sync) +SYSCALL (37, kill) +SYSCALL (38, rename) +SYSCALL (39, mkdir) +SYSCALL (40, rmdir) +SYSCALL (41, dup) +SYSCALL (42, pipe) +SYSCALL (43, times) +SYSCALL (44, prof) +SYSCALL (45, brk) +SYSCALL (46, setgid) +SYSCALL (47, getgid) +SYSCALL (48, signal) +SYSCALL (49, geteuid) +SYSCALL (50, getegid) +SYSCALL (51, acct) +SYSCALL (52, umount2) +SYSCALL (53, lock) +SYSCALL (54, ioctl) +SYSCALL (55, fcntl) +SYSCALL (56, mpx) +SYSCALL (57, setpgid) +SYSCALL (58, ulimit) +SYSCALL (59, oldolduname) +SYSCALL (60, umask) +SYSCALL (61, chroot) +SYSCALL (62, ustat) +SYSCALL (63, dup2) +SYSCALL (64, getppid) +SYSCALL (65, getpgrp) +SYSCALL (66, setsid) +SYSCALL (67, sigaction) +SYSCALL (68, sgetmask) +SYSCALL (69, ssetmask) +SYSCALL (70, setreuid) +SYSCALL (71, setregid) +SYSCALL (72, sigsuspend) +SYSCALL (73, sigpending) +SYSCALL (74, sethostname) +SYSCALL (75, setrlimit) +SYSCALL (76, getrlimit) +SYSCALL (77, getrusage) +SYSCALL (78, gettimeofday) +SYSCALL (79, settimeofday) +SYSCALL (80, getgroups) +SYSCALL (81, setgroups) +SYSCALL (82, select) +SYSCALL (83, symlink) +SYSCALL (84, oldlstat) +SYSCALL (85, readlink) +SYSCALL (86, uselib) +SYSCALL (87, swapon) +SYSCALL (88, reboot) +SYSCALL (89, readdir) +SYSCALL (90, mmap) +SYSCALL (91, munmap) +SYSCALL (92, truncate) +SYSCALL (93, ftruncate) +SYSCALL (94, fchmod) +SYSCALL (95, fchown) +SYSCALL (96, getpriority) +SYSCALL (97, setpriority) +SYSCALL (98, profil) +SYSCALL (99, statfs) +SYSCALL (100, fstatfs) +SYSCALL (101, ioperm) +SYSCALL (102, socketcall) +SYSCALL (103, syslog) +SYSCALL (104, setitimer) +SYSCALL (105, getitimer) +SYSCALL (106, stat) +SYSCALL (107, lstat) +SYSCALL (108, fstat) +SYSCALL (109, olduname) +SYSCALL (110, iopl) +SYSCALL (111, vhangup) +SYSCALL (112, idle) +SYSCALL (113, vm86old) +SYSCALL (114, wait4) +SYSCALL (115, swapoff) +SYSCALL (116, sysinfo) +SYSCALL (117, ipc) +SYSCALL (118, fsync) +SYSCALL (119, sigreturn) +SYSCALL (120, clone) +SYSCALL (121, setdomainname) +SYSCALL (122, uname) +SYSCALL (123, modify_ldt) +SYSCALL (124, adjtimex) +SYSCALL (125, mprotect) +SYSCALL (126, sigprocmask) +SYSCALL (127, create_module) +SYSCALL (128, init_module) +SYSCALL (129, delete_module) +SYSCALL (130, get_kernel_syms) +SYSCALL (131, quotactl) +SYSCALL (132, getpgid) +SYSCALL (133, fchdir) +SYSCALL (134, bdflush) +SYSCALL (135, sysfs) +SYSCALL (136, personality) +SYSCALL (137, afs_syscall) +SYSCALL (138, setfsuid) +SYSCALL (139, setfsgid) +SYSCALL (140, _llseek) +SYSCALL (141, getdents) +SYSCALL (142, _newselect) +SYSCALL (143, flock) +SYSCALL (144, msync) +SYSCALL (145, readv) +SYSCALL (146, writev) +SYSCALL (147, getsid) +SYSCALL (148, fdatasync) +SYSCALL (149, _sysctl) +SYSCALL (150, mlock) +SYSCALL (151, munlock) +SYSCALL (152, mlockall) +SYSCALL (153, munlockall) +SYSCALL (154, sched_setparam) +SYSCALL (155, sched_getparam) +SYSCALL (156, sched_setscheduler) +SYSCALL (157, sched_getscheduler) +SYSCALL (158, sched_yield) +SYSCALL (159, sched_get_priority_max) +SYSCALL (160, sched_get_priority_min) +SYSCALL (161, sched_rr_get_interval) +SYSCALL (162, nanosleep) +SYSCALL (163, mremap) +SYSCALL (164, setresuid) +SYSCALL (165, getresuid) +SYSCALL (166, vm86) +SYSCALL (167, query_module) +SYSCALL (168, poll) +SYSCALL (169, nfsservctl) +SYSCALL (170, setresgid) +SYSCALL (171, getresgid) +SYSCALL (172, prctl) +SYSCALL (173, rt_sigreturn) +SYSCALL (174, rt_sigaction) +SYSCALL (175, rt_sigprocmask) +SYSCALL (176, rt_sigpending) +SYSCALL (177, rt_sigtimedwait) +SYSCALL (178, rt_sigqueueinfo) +SYSCALL (179, rt_sigsuspend) +SYSCALL (180, pread64) +SYSCALL (181, pwrite64) +SYSCALL (182, chown) +SYSCALL (183, getcwd) +SYSCALL (184, capget) +SYSCALL (185, capset) +SYSCALL (186, sigaltstack) +SYSCALL (187, sendfile) +SYSCALL (188, getpmsg) +SYSCALL (189, putpmsg) +SYSCALL (190, vfork) +SYSCALL (191, ugetrlimit) +SYSCALL (192, mmap2) +SYSCALL (193, truncate64) +SYSCALL (194, ftruncate64) +SYSCALL (195, stat64) +SYSCALL (196, lstat64) +SYSCALL (197, fstat64) +SYSCALL (198, lchown32) +SYSCALL (199, getuid32) +SYSCALL (200, getgid32) +SYSCALL (201, geteuid32) +SYSCALL (202, getegid32) +SYSCALL (203, setreuid32) +SYSCALL (204, setregid32) +SYSCALL (205, getgroups32) +SYSCALL (206, setgroups32) +SYSCALL (207, fchown32) +SYSCALL (208, setresuid32) +SYSCALL (209, getresuid32) +SYSCALL (210, setresgid32) +SYSCALL (211, getresgid32) +SYSCALL (212, chown32) +SYSCALL (213, setuid32) +SYSCALL (214, setgid32) +SYSCALL (215, setfsuid32) +SYSCALL (216, setfsgid32) +SYSCALL (217, pivot_root) +SYSCALL (218, mincore) +SYSCALL (219, madvise) +SYSCALL (220, getdents64) +SYSCALL (221, fcntl64) +SYSCALL (224, gettid) +SYSCALL (225, readahead) +SYSCALL (226, setxattr) +SYSCALL (227, lsetxattr) +SYSCALL (228, fsetxattr) +SYSCALL (229, getxattr) +SYSCALL (230, lgetxattr) +SYSCALL (231, fgetxattr) +SYSCALL (232, listxattr) +SYSCALL (233, llistxattr) +SYSCALL (234, flistxattr) +SYSCALL (235, removexattr) +SYSCALL (236, lremovexattr) +SYSCALL (237, fremovexattr) +SYSCALL (238, tkill) +SYSCALL (239, sendfile64) +SYSCALL (240, futex) +SYSCALL (241, sched_setaffinity) +SYSCALL (242, sched_getaffinity) +SYSCALL (243, set_thread_area) +SYSCALL (244, get_thread_area) +SYSCALL (245, io_setup) +SYSCALL (246, io_destroy) +SYSCALL (247, io_getevents) +SYSCALL (248, io_submit) +SYSCALL (249, io_cancel) +SYSCALL (250, fadvise64) +SYSCALL (252, exit_group) +SYSCALL (253, lookup_dcookie) +SYSCALL (254, epoll_create) +SYSCALL (255, epoll_ctl) +SYSCALL (256, epoll_wait) +SYSCALL (257, remap_file_pages) +SYSCALL (258, set_tid_address) +SYSCALL (259, timer_create) +SYSCALL (260, timer_settime) +SYSCALL (261, timer_gettime) +SYSCALL (262, timer_getoverrun) +SYSCALL (263, timer_delete) +SYSCALL (264, clock_settime) +SYSCALL (265, clock_gettime) +SYSCALL (266, clock_getres) +SYSCALL (267, clock_nanosleep) +SYSCALL (268, statfs64) +SYSCALL (269, fstatfs64) +SYSCALL (270, tgkill) +SYSCALL (271, utimes) +SYSCALL (272, fadvise64_64) +SYSCALL (273, vserver) +SYSCALL (274, mbind) +SYSCALL (275, get_mempolicy) +SYSCALL (276, set_mempolicy) +SYSCALL (277, mq_open) +SYSCALL (278, mq_unlink) +SYSCALL (279, mq_timedsend) +SYSCALL (280, mq_timedreceive) +SYSCALL (281, mq_notify) +SYSCALL (282, mq_getsetattr) +SYSCALL (283, kexec_load) +SYSCALL (284, waitid) +SYSCALL (286, add_key) +SYSCALL (287, request_key) +SYSCALL (288, keyctl) +SYSCALL (289, ioprio_set) +SYSCALL (290, ioprio_get) +SYSCALL (291, inotify_init) +SYSCALL (292, inotify_add_watch) +SYSCALL (293, inotify_rm_watch) +SYSCALL (294, migrate_pages) +SYSCALL (295, openat) +SYSCALL (296, mkdirat) +SYSCALL (297, mknodat) +SYSCALL (298, fchownat) +SYSCALL (299, futimesat) +SYSCALL (300, fstatat64) +SYSCALL (301, unlinkat) +SYSCALL (302, renameat) +SYSCALL (303, linkat) +SYSCALL (304, symlinkat) +SYSCALL (305, readlinkat) +SYSCALL (306, fchmodat) +SYSCALL (307, faccessat) +SYSCALL (308, pselect6) +SYSCALL (309, ppoll) +SYSCALL (310, unshare) +SYSCALL (311, set_robust_list) +SYSCALL (312, get_robust_list) +SYSCALL (313, splice) +SYSCALL (314, sync_file_range) +SYSCALL (315, tee) +SYSCALL (316, vmsplice) +SYSCALL (317, move_pages) +SYSCALL (318, getcpu) +SYSCALL (319, epoll_pwait) +SYSCALL (320, utimensat) +SYSCALL (321, signalfd) +SYSCALL (322, timerfd_create) +SYSCALL (323, eventfd) +SYSCALL (324, fallocate) +SYSCALL (325, timerfd_settime) +SYSCALL (326, timerfd_gettime) +SYSCALL (327, signalfd4) +SYSCALL (328, eventfd2) +SYSCALL (329, epoll_create1) +SYSCALL (330, dup3) +SYSCALL (331, pipe2) +SYSCALL (332, inotify_init1) +SYSCALL (333, preadv) +SYSCALL (334, pwritev) +SYSCALL (335, rt_tgsigqueueinfo) +SYSCALL (336, perf_event_open) +SYSCALL (337, recvmmsg) +SYSCALL (338, fanotify_init) +SYSCALL (339, fanotify_mark) +SYSCALL (340, prlimit64) +SYSCALL (341, name_to_handle_at) +SYSCALL (342, open_by_handle_at) +SYSCALL (343, clock_adjtime) +SYSCALL (344, syncfs) +SYSCALL (345, sendmmsg) +SYSCALL (346, setns) +SYSCALL (347, process_vm_readv) +SYSCALL (348, process_vm_writev) +SYSCALL (349, kcmp) +SYSCALL (350, finit_module) +SYSCALL (351, sched_setattr) +SYSCALL (352, sched_getattr) +SYSCALL (353, renameat2) +SYSCALL (354, seccomp) +SYSCALL (355, getrandom) +SYSCALL (356, memfd_create) +SYSCALL (357, bpf) +SYSCALL (358, execveat) +SYSCALL (359, socket) +SYSCALL (360, socketpair) +SYSCALL (361, bind) +SYSCALL (362, connect) +SYSCALL (363, listen) +SYSCALL (364, accept4) +SYSCALL (365, getsockopt) +SYSCALL (366, setsockopt) +SYSCALL (367, getsockname) +SYSCALL (368, getpeername) +SYSCALL (369, sendto) +SYSCALL (370, sendmsg) +SYSCALL (371, recvfrom) +SYSCALL (372, recvmsg) +SYSCALL (373, shutdown) +SYSCALL (374, userfaultfd) +SYSCALL (375, membarrier) +SYSCALL (376, mlock2) +SYSCALL (377, copy_file_range) +SYSCALL (378, preadv2) +SYSCALL (379, pwritev2) +SYSCALL (380, pkey_mprotect) +SYSCALL (381, pkey_alloc) +SYSCALL (382, pkey_free) +SYSCALL (383, statx) +SYSCALL (384, arch_prctl) +SYSCALL (385, io_pgetevents) +SYSCALL (386, rseq) +SYSCALL (393, semget) +SYSCALL (394, semctl) +SYSCALL (395, shmget) +SYSCALL (396, shmctl) +SYSCALL (397, shmat) +SYSCALL (398, shmdt) +SYSCALL (399, msgget) +SYSCALL (400, msgsnd) +SYSCALL (401, msgrcv) +SYSCALL (402, msgctl) +SYSCALL (403, clock_gettime64) +SYSCALL (404, clock_settime64) +SYSCALL (405, clock_adjtime64) +SYSCALL (406, clock_getres_time64) +SYSCALL (407, clock_nanosleep_time64) +SYSCALL (408, timer_gettime64) +SYSCALL (409, timer_settime64) +SYSCALL (410, timerfd_gettime64) +SYSCALL (411, timerfd_settime64) +SYSCALL (412, utimensat_time64) +SYSCALL (413, pselect6_time64) +SYSCALL (414, ppoll_time64) +SYSCALL (416, io_pgetevents_time64) +SYSCALL (417, recvmmsg_time64) +SYSCALL (418, mq_timedsend_time64) +SYSCALL (419, mq_timedreceive_time64) +SYSCALL (420, semtimedop_time64) +SYSCALL (421, rt_sigtimedwait_time64) +SYSCALL (422, futex_time64) +SYSCALL (423, sched_rr_get_interval_time64) +SYSCALL (424, pidfd_send_signal) +SYSCALL (425, io_uring_setup) +SYSCALL (426, io_uring_enter) +SYSCALL (427, io_uring_register) +SYSCALL (428, open_tree) +SYSCALL (429, move_mount) +SYSCALL (430, fsopen) +SYSCALL (431, fsconfig) +SYSCALL (432, fsmount) +SYSCALL (433, fspick) +SYSCALL (434, pidfd_open) +SYSCALL (435, clone3) +SYSCALL (436, close_range) +SYSCALL (437, openat2) +SYSCALL (438, pidfd_getfd) +SYSCALL (439, faccessat2) +SYSCALL (440, process_madvise) +SYSCALL (441, epoll_pwait2) +SYSCALL (442, mount_setattr) +SYSCALL (443, quotactl_fd) +SYSCALL (444, landlock_create_ruleset) +SYSCALL (445, landlock_add_rule) +SYSCALL (446, landlock_restrict_self) +SYSCALL (447, memfd_secret) +SYSCALL (448, process_mrelease) +SYSCALL (449, futex_waitv) +SYSCALL (450, set_mempolicy_home_node) +SYSCALL (451, cachestat) +SYSCALL (452, fchmodat2) +SYSCALL (453, map_shadow_stack) +SYSCALL (454, futex_wake) +SYSCALL (455, futex_wait) +SYSCALL (456, futex_requeue) +SYSCALL (457, statmount) +SYSCALL (458, listmount) +SYSCALL (459, lsm_get_self_attr) +SYSCALL (460, lsm_set_self_attr) +SYSCALL (461, lsm_list_modules) +SYSCALL (462, mseal) +SYSCALL (463, setxattrat) +SYSCALL (464, getxattrat) +SYSCALL (465, listxattrat) +SYSCALL (466, removexattrat) |