System calls project updates

My system calls project has received some updates recently. I have decided to write something more about it than just a post on Mastodon.

32-bit Arm private system calls

Quentin Minster Picavet has pointed out (in issue #128) that my project does not list private system calls present only on 32-bit Arm architectures:

He provided needed code in PR #129 and I have merged it.

Reverse syscall lookup (number -> name)

Quentin also submitted PR #127, in which he added a way to retrieve a syscall name by its number (in the Python code):

>>> import system_calls
>>> syscalls = system_calls.syscalls()
>>> print(syscalls[56])
openat
>>> print(syscalls['openat'])
56

I have merged it as well.

Smaller memory usage

The system calls Python package used to load tables for all architectures into memory on each import. Nowadays, it only loads tables for the requested architectures.

The first kernel version for a system call

A few months ago, Tom Hromatka posted Request for Enhancement (RFE) for the “seccomp” project, to add support for the maximum supported kernel version. I left some comments and, since then, I have had an idea of adding information about the kernel version when a system call first appeared.

Release plans

Merged changes will be released in 6.17.0 version — a few days after Linux 6.17 release.

development python syscalls