From a diary of AArch64 porter — system calls

This post is part 7 of the "From a diary of AArch64 porter" series:

  1. From a diary of AArch64 porter — autoconf
  2. From a diary of AArch64 porter — rpm packaging
  3. From a diary of AArch64 porter — testsuites
  4. From a diary of AArch64 porter — POSIX.1 functionality
  5. From a diary of AArch64 porter — PAGE_SIZE
  6. From a diary of AArch64 porter — vfp precision
  7. From a diary of AArch64 porter — system calls
  8. From a diary of AArch64 porter — parallel builds
  9. From a diary of AArch64 porter — firefighting
  10. From a diary of AArch64 porter — drive-by coding
  11. From a diary of AArch64 porter — manylinux2014
  12. From a diary of AArch64 porter — handling big patches
  13. From a diary of AArch64 porter — Arm CPU features table

When userspace want to talk to kernel it can use system calls. Applications usually do it via wrappers in libc to not have to deal with different numbers on different architectures.

There are over four hundred system calls in Linux kernel. Many of them have “legacy” status and as such are not available on many new architectures. Riku Voipio from Linaro has nice slides about it.

So to make things easier for developers I worked on creating a table showing all system calls and their number/status on different architectures. But this table was generated partially by hand…

I changed code to keep a list of all syscalls in place, wrote generator of C code and added makefile on top. And then pushed it into a new git repo called syscalls-table. Code is MIT licensed.

Please go, check the code, run it on any architecture and send me pull requests. The only requirements for generating list of architecture specific syscalls list are bash and C compiler. Table generation requires Python but does not have to be run on target platform.

aarch64 arm syscalls