aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2025-03-13 07:41:51 +0100
committerTom de Vries <tdevries@suse.de>2025-03-13 07:41:51 +0100
commitfbfb29b304ef7d3270a918b5fc60c22b0909367e (patch)
tree7a81e2c874fd0dcec142f24ec28f7894e6ba45ed
parent0d1d25671598eed4fdeab09d0ef987c12afce21c (diff)
downloadbinutils-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.c496
-rw-r--r--gdb/i386-syscalls.def479
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)