Porting software often involves system calls. Usually their numbers differ between architectures. Some calls are missing, some are specific to platform. Normal stuff.

I knew that, you knew that, someone other knew. Or not. But looking into kernel/libc headers each time was boring so I created syscalls table for it. It was small project for personal use.

One day Arnd Bergmann sent me set of patches which rewrote table generation. From few architectures to which I had access (so could run binary) to every arch supported in Linux kernel. Then some architectures got dropped from kernel. But I kept their data in case someone needs (just moved it to the far right side).

Webpage look changed during those years. From ugly HTML table to table using DataTables framework. With plugins adding rows colouring, search option and few other tricks.

And several funny moments happened related to this table. At FOSDEM 2018 I visited Valgrind devroom and was greeted with “Ah, so you are that syscalls guy!” as it turned out that page was a great help. One of my friends was porting his lowlevel software from x86-64 to aarch64 one day and asked me “man, why there is no open() syscall on aarch64?”. Etc. etc.

I do not remember when last time used it for something. Keeping it updated every rc1 kernel release so anyone can see actual state. I know that people use it cause from time to time someone mentions it or gets directed to it.

Three years of system calls table
    

Leave a Reply

Your e-mail address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.