diff --git a/src/arch-syscall-validate b/src/arch-syscall-validate index b74ac2c5..5c442013 100755 --- a/src/arch-syscall-validate +++ b/src/arch-syscall-validate @@ -162,6 +162,19 @@ function mangle_lib_syscall() { sed $sed_filter | sed '/,-[0-9]\+$/d' } +# +# Get the syscall ABIs enabled by the given Makefile.syscalls file +# +# Arguments: +# 1 path to the arch//kernel/Makefile.syscalls file +# 2 the ABI bitness (32 or 64) +# +# Print the additional syscall.tbl tags enabled for the architecture. +# +function syscall_abis() { + sed -n "s/^syscall_abis_$2[[:space:]]*+=//p" "$1" +} + # # Dump syscalls matching specified tags from the given syscall.tbl file # @@ -289,8 +302,8 @@ function dump_lib_arm() { function dump_sys_aarch64() { local syscall_tbl_file="$1/arch/arm64/tools/syscall_64.tbl" if [[ -e $syscall_tbl_file ]]; then - dump_from_syscall_tbl "$syscall_tbl_file" \ - 64 renameat rlimit memfd_secret + dump_from_syscall_tbl "$syscall_tbl_file" 64 \ + $(syscall_abis "$1/arch/arm64/kernel/Makefile.syscalls" 64) return fi @@ -339,8 +352,10 @@ function dump_lib_aarch64() { # Dump the architecture's syscall table to stdout. # function dump_sys_loongarch64() { - if [[ -e $1/arch/loongarch/kernel/Makefile.syscalls ]]; then - dump_from_syscall_tbl "$1/scripts/syscall.tbl" 64 + local makefile_syscalls="$1/arch/loongarch/kernel/Makefile.syscalls" + if [[ -e $makefile_syscalls ]]; then + dump_from_syscall_tbl "$1/scripts/syscall.tbl" 64 \ + $(syscall_abis "$makefile_syscalls" 64) return fi @@ -555,9 +570,10 @@ function dump_lib_ppc64() { # Dump the architecture's syscall table to stdout. # function dump_sys_riscv64() { - if [[ -e $1/arch/riscv/kernel/Makefile.syscalls ]]; then - dump_from_syscall_tbl "$1/scripts/syscall.tbl" \ - 64 riscv rlimit memfd_secret + local makefile_syscalls="$1/arch/riscv/kernel/Makefile.syscalls" + if [[ -e $makefile_syscalls ]]; then + dump_from_syscall_tbl "$1/scripts/syscall.tbl" 64 \ + $(syscall_abis "$makefile_syscalls" 64) return fi diff --git a/src/syscalls.csv b/src/syscalls.csv index bf544a24..09b690bb 100644 --- a/src/syscalls.csv +++ b/src/syscalls.csv @@ -1,4 +1,4 @@ -#syscall (v7.1.0-rc4 2026-05-19),x86,x86_kver,x86_64,x86_64_kver,x32,x32_kver,arm,arm_kver,aarch64,aarch64_kver,loongarch64,loongarch64_kver,m68k,m68k_kver,mips,mips_kver,mips64,mips64_kver,mips64n32,mips64n32_kver,parisc,parisc_kver,parisc64,parisc64_kver,ppc,ppc_kver,ppc64,ppc64_kver,riscv64,riscv64_kver,s390,s390_kver,s390x,s390x_kver,sh,sh_kver +#syscall (v7.1.0-rc4 2026-10-07),x86,x86_kver,x86_64,x86_64_kver,x32,x32_kver,arm,arm_kver,aarch64,aarch64_kver,loongarch64,loongarch64_kver,m68k,m68k_kver,mips,mips_kver,mips64,mips64_kver,mips64n32,mips64n32_kver,parisc,parisc_kver,parisc64,parisc64_kver,ppc,ppc_kver,ppc64,ppc64_kver,riscv64,riscv64_kver,s390,s390_kver,s390x,s390x_kver,sh,sh_kver accept,PNR,SCMP_KV_UNDEF,43,SCMP_KV_UNDEF,43,SCMP_KV_UNDEF,285,SCMP_KV_UNDEF,202,SCMP_KV_UNDEF,202,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,168,SCMP_KV_UNDEF,42,SCMP_KV_UNDEF,42,SCMP_KV_UNDEF,35,SCMP_KV_UNDEF,35,SCMP_KV_UNDEF,330,SCMP_KV_UNDEF,330,SCMP_KV_UNDEF,202,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,344,SCMP_KV_UNDEF accept4,364,SCMP_KV_UNDEF,288,SCMP_KV_UNDEF,288,SCMP_KV_UNDEF,366,SCMP_KV_UNDEF,242,SCMP_KV_UNDEF,242,SCMP_KV_UNDEF,361,SCMP_KV_UNDEF,334,SCMP_KV_UNDEF,293,SCMP_KV_UNDEF,297,SCMP_KV_UNDEF,320,SCMP_KV_UNDEF,320,SCMP_KV_UNDEF,344,SCMP_KV_UNDEF,344,SCMP_KV_UNDEF,242,SCMP_KV_UNDEF,364,SCMP_KV_UNDEF,364,SCMP_KV_UNDEF,358,SCMP_KV_UNDEF access,33,SCMP_KV_UNDEF,21,SCMP_KV_UNDEF,21,SCMP_KV_UNDEF,33,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,33,SCMP_KV_UNDEF,33,SCMP_KV_UNDEF,20,SCMP_KV_UNDEF,20,SCMP_KV_UNDEF,33,SCMP_KV_UNDEF,33,SCMP_KV_UNDEF,33,SCMP_KV_UNDEF,33,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,33,SCMP_KV_UNDEF,33,SCMP_KV_UNDEF,33,SCMP_KV_UNDEF @@ -210,7 +210,7 @@ map_shadow_stack,453,SCMP_KV_UNDEF,453,SCMP_KV_UNDEF,453,SCMP_KV_UNDEF,453,SCMP_ mbind,274,SCMP_KV_UNDEF,237,SCMP_KV_UNDEF,237,SCMP_KV_UNDEF,319,SCMP_KV_UNDEF,235,SCMP_KV_UNDEF,235,SCMP_KV_UNDEF,268,SCMP_KV_UNDEF,268,SCMP_KV_UNDEF,227,SCMP_KV_UNDEF,231,SCMP_KV_UNDEF,260,SCMP_KV_UNDEF,260,SCMP_KV_UNDEF,259,SCMP_KV_UNDEF,259,SCMP_KV_UNDEF,235,SCMP_KV_UNDEF,268,SCMP_KV_UNDEF,268,SCMP_KV_UNDEF,274,SCMP_KV_UNDEF membarrier,375,SCMP_KV_UNDEF,324,SCMP_KV_UNDEF,324,SCMP_KV_UNDEF,389,SCMP_KV_UNDEF,283,SCMP_KV_UNDEF,283,SCMP_KV_UNDEF,374,SCMP_KV_UNDEF,358,SCMP_KV_UNDEF,318,SCMP_KV_UNDEF,322,SCMP_KV_UNDEF,343,SCMP_KV_UNDEF,343,SCMP_KV_UNDEF,365,SCMP_KV_UNDEF,365,SCMP_KV_UNDEF,283,SCMP_KV_UNDEF,356,SCMP_KV_UNDEF,356,SCMP_KV_UNDEF,378,SCMP_KV_UNDEF memfd_create,356,SCMP_KV_UNDEF,319,SCMP_KV_UNDEF,319,SCMP_KV_UNDEF,385,SCMP_KV_UNDEF,279,SCMP_KV_UNDEF,279,SCMP_KV_UNDEF,353,SCMP_KV_UNDEF,354,SCMP_KV_UNDEF,314,SCMP_KV_UNDEF,318,SCMP_KV_UNDEF,340,SCMP_KV_UNDEF,340,SCMP_KV_UNDEF,360,SCMP_KV_UNDEF,360,SCMP_KV_UNDEF,279,SCMP_KV_UNDEF,350,SCMP_KV_UNDEF,350,SCMP_KV_UNDEF,374,SCMP_KV_UNDEF -memfd_secret,447,SCMP_KV_UNDEF,447,SCMP_KV_UNDEF,447,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,447,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,447,SCMP_KV_UNDEF,447,SCMP_KV_UNDEF,447,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF +memfd_secret,447,SCMP_KV_UNDEF,447,SCMP_KV_UNDEF,447,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,447,SCMP_KV_UNDEF,447,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,447,SCMP_KV_UNDEF,447,SCMP_KV_UNDEF,447,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF migrate_pages,294,SCMP_KV_UNDEF,256,SCMP_KV_UNDEF,256,SCMP_KV_UNDEF,400,SCMP_KV_UNDEF,238,SCMP_KV_UNDEF,238,SCMP_KV_UNDEF,287,SCMP_KV_UNDEF,287,SCMP_KV_UNDEF,246,SCMP_KV_UNDEF,250,SCMP_KV_UNDEF,272,SCMP_KV_UNDEF,272,SCMP_KV_UNDEF,258,SCMP_KV_UNDEF,258,SCMP_KV_UNDEF,238,SCMP_KV_UNDEF,287,SCMP_KV_UNDEF,287,SCMP_KV_UNDEF,294,SCMP_KV_UNDEF mincore,218,SCMP_KV_UNDEF,27,SCMP_KV_UNDEF,27,SCMP_KV_UNDEF,219,SCMP_KV_UNDEF,232,SCMP_KV_UNDEF,232,SCMP_KV_UNDEF,237,SCMP_KV_UNDEF,217,SCMP_KV_UNDEF,26,SCMP_KV_UNDEF,26,SCMP_KV_UNDEF,72,SCMP_KV_UNDEF,72,SCMP_KV_UNDEF,206,SCMP_KV_UNDEF,206,SCMP_KV_UNDEF,232,SCMP_KV_UNDEF,218,SCMP_KV_UNDEF,218,SCMP_KV_UNDEF,218,SCMP_KV_UNDEF mkdir,39,SCMP_KV_UNDEF,83,SCMP_KV_UNDEF,83,SCMP_KV_UNDEF,39,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,39,SCMP_KV_UNDEF,39,SCMP_KV_UNDEF,81,SCMP_KV_UNDEF,81,SCMP_KV_UNDEF,39,SCMP_KV_UNDEF,39,SCMP_KV_UNDEF,39,SCMP_KV_UNDEF,39,SCMP_KV_UNDEF,PNR,SCMP_KV_UNDEF,39,SCMP_KV_UNDEF,39,SCMP_KV_UNDEF,39,SCMP_KV_UNDEF