Issue
Currently, I'm using linux 5.8 on x86.
When I run ausyscall --dump
, the system call is displayed correctly, but the new systemcall such as openat2
that is added from linux v5.6 does not appear in the output.
How does ausyscall
get system calls?
Solution
They are generated from per-arch header files, e.g. lib/x86_64_table.h
. You can see the commit that added openat2
is 8f41f04
:
Update syscall table to the 5.11 kernel
master
v3.0.1
stevegrubb committed on Jan 18
The information in the headers in turn come from syscall table files from kernel sources. See: lib/syscall-update.txt
.
The place where syscall information is gathered is:
arch/arm/tools/syscall.tbl
arch/arm/include/uapi/asm/unistd.h
arch/powerpc/include/uapi/asm/unistd.h
arch/s390/kernel/syscalls/syscall.tbl
arch/x86/entry/syscalls/syscall_32.tbl
arch/x86/entry/syscalls/syscall_64.tbl
include/uapi/asm-generic/unistd.h
(aarch64)
Answered By - mkayaalp