diff --git a/include/linux/SYSCALLS b/include/linux/SYSCALLS
new file mode 100644
index 00000000..652c20ec
--- /dev/null
+++ b/include/linux/SYSCALLS
@@ -0,0 +1,111 @@
+#+COMMENT: -*- org -*-
+#+TITLE: Linux System Calls
+
+|---------------+----------+-----+--------+-----+---------|
+| name | old | x86 | x86_64 | arm | riscv64 |
+|---------------+----------+-----+--------+-----+---------|
+| libc-mini | | | | | |
+|---------------+----------+-----+--------+-----+---------|
+| exit | | 1 | 60 | 1 | 1 |
+| write | | 4 | 1 | 4 | 4 |
+|---------------+----------+-----+--------+-----+---------|
+| libc | | | | | |
+|---------------+----------+-----+--------+-----+---------|
+| fork | | 2 | 57 | 2 | 2 |
+| read | | 3 | 0 | 3 | 3 |
+| open | | 5 | 2 | 5 | 5 |
+| waitpid | | 7 | | | |
+| wait4 | waitpid | 114 | 61 | 114 | 114 |
+| execve | | 11 | 59 | 11 | 11 |
+| chmod | | 15 | 90 | 15 | 15 |
+| access | | 33 | 21 | 33 | 33 |
+| brk | | 45 | 12 | 45 | 45 |
+| ioctl | | 54 | 16 | 54 | 54 |
+| fsync | | 118 | 74 | 118 | 118 |
+| getcwd | | 183 | 79 | 183 | 183 |
+| dup | | 41 | 32 | 41 | 41 |
+| dup2 | | 63 | 33 | 63 | 63 |
+| unlink | | 10 | 87 | 10 | 10 |
+| gettimeofday | time | 78 | 96 | 78 | 78 |
+| clock_gettime | | 265 | 228 | 263 | 260 |
+| time | | 13 | 201 | 13 | |
+|---------------+----------+-----+--------+-----+---------|
+| libc+tcc | | | | | |
+|---------------+----------+-----+--------+-----+---------|
+| close | | 6 | 3 | 6 | 6 |
+| lseek | | 19 | 8 | 19 | 19 |
+| rmdir | | 40 | 84 | 40 | 40 |
+| stat | | 106 | 4 | 106 | 106 |
+|---------------+----------+-----+--------+-----+---------|
+| libc+GNU | | | | | |
+|---------------+----------+-----+--------+-----+---------|
+| chdir | | 12 | 80 | 12 | 12 |
+| link | | 9 | 86 | 9 | 9 |
+| getpid | | 20 | 39 | 20 | 20 |
+| getuid | | 24 | 102 | 24 | 199 |
+| kill | | 37 | 62 | 37 | 37 |
+| rename | | 38 | 82 | 38 | 38 |
+| mkdir | | 39 | 83 | 39 | 39 |
+| pipe | | 42 | 22 | 42 | 42 |
+| getgid | | 47 | 104 | 47 | 200 |
+| signal | | 48 | | | 48 |
+| sigaction | | 67 | | 67 | 67 |
+| rt_sigaction | | 174 | 13 | 174 | 174 |
+| signal | | 48 | | | 48 |
+| fcntl | | 55 | 72 | 55 | 55 |
+| getrusage | | 77 | 98 | 77 | 77 |
+| lstat | | 107 | 6 | 107 | 107 |
+| setitimer | | 104 | 38 | 104 | 104 |
+| fstat | | 108 | 5 | 108 | 108 |
+| nanosleep | | 162 | 35 | 162 | 162 |
+| getdents | | 141 | 78 | 141 | 141 |
+|---------------+----------+-----+--------+-----+---------|
+| GNU+bash | | | | | |
+|---------------+----------+-----+--------+-----+---------|
+| setuid | | 23 | 105 | 23 | 213 |
+| geteuid | | 49 | 107 | 49 | 201 |
+| getegid | | 50 | 108 | 50 | 202 |
+| setgid | | 46 | 106 | 46 | 214 |
+| getppid | | 64 | 110 | 64 | 64 |
+|---------------+----------+-----+--------+-----+---------|
+| GNU+make | | | | | |
+|---------------+----------+-----+--------+-----+---------|
+| sigprocmask | | 126 | | 126 | 126 |
+|---------------+----------+-----+--------+-----+---------|
+| GNU+tar | | | | | |
+|---------------+----------+-----+--------+-----+---------|
+| symlink | | 83 | 88 | 83 | 83 |
+| readlink | | 85 | 89 | 85 | 85 |
+| mknod | | 14 | 133 | 14 | 14 |
+|---------------+----------+-----+--------+-----+---------|
+| new | | | | | |
+|---------------+----------+-----+--------+-----+---------|
+| clone | fork | 120 | 56 | 120 | 120 |
+| getdents64 | getdents | 220 | 217 | 217 | 220 |
+| openat | open | 295 | 257 | 322 | 288 |
+| mkdirat | mkdir | 296 | 258 | 323 | 289 |
+| mknodat | mknod | 297 | 259 | 324 | 290 |
+| unlinkat | rmdir | 301 | 263 | 328 | 294 |
+| unlinkat | unlink | 301 | 263 | 328 | 294 |
+| renameat | rename | 302 | 264 | 329 | 295 |
+| linkat | link | 303 | 265 | 330 | 296 |
+| symlinkat | symlink | 304 | 266 | 331 | 297 |
+| readlinkat | readlink | 305 | 267 | 332 | 298 |
+| fchmodat | chmod | 306 | 268 | 333 | 299 |
+| faccessat | access | 307 | 269 | 334 | 300 |
+| dup3 | dup2 | 330 | 292 | 358 | 326 |
+| pipe2 | pipe | 331 | 293 | 359 | 325 |
+|---------------+----------+-----+--------+-----+---------|
+
+* Sources
+
+https://github.com/torvalds/linux/blob/v4.19/arch/arm/tools/syscall.tbl
+https://github.com/torvalds/linux/blob/v4.19/arch/x86/entry/syscalls/syscall_32.tbl
+https://github.com/torvalds/linux/blob/v4.19/arch/x86/entry/syscalls/syscall_64.tbl
+
+* Legalese
+Copyright © 2022 Jan (janneke) Nieuwenhuizen <[[mailto:janneke@gnu.org][janneke@gnu.org]]>
+
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved.
diff --git a/include/linux/arm/syscall.h b/include/linux/arm/syscall.h
index d25c78c0..acfc3669 100644
--- a/include/linux/arm/syscall.h
+++ b/include/linux/arm/syscall.h
@@ -18,11 +18,14 @@
* You should have received a copy of the GNU General Public License
* along with GNU Mes. If not, see .
*/
+/* Commentary:
+ * See https://github.com/torvalds/linux/blob/v4.19/arch/arm/tools/syscall.tbl
+ *
+ * Code:
+ */
#ifndef __MES_LINUX_ARM_SYSCALL_H
#define __MES_LINUX_ARM_SYSCALL_H 1
-/* See https://github.com/torvalds/linux/blob/v4.19/arch/arm/tools/syscall.tbl */
-
/* libc-mini */
#ifndef SYS_exit
#define SYS_exit 0x01
diff --git a/include/linux/x86/syscall.h b/include/linux/x86/syscall.h
index abf1759b..aa0308a1 100644
--- a/include/linux/x86/syscall.h
+++ b/include/linux/x86/syscall.h
@@ -17,6 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with GNU Mes. If not, see .
*/
+/* Commentary:
+ * See https://github.com/torvalds/linux/blob/v4.19/arch/x86/entry/syscalls/syscall_32.tbl
+ *
+ * Code:
+ */
#ifndef __MES_LINUX_X86_SYSCALL_H
#define __MES_LINUX_X86_SYSCALL_H 1
diff --git a/include/linux/x86_64/syscall.h b/include/linux/x86_64/syscall.h
index 36ef06bc..06f15c3c 100644
--- a/include/linux/x86_64/syscall.h
+++ b/include/linux/x86_64/syscall.h
@@ -1,6 +1,6 @@
/* -*-comment-start: "//";comment-end:""-*-
* GNU Mes --- Maxwell Equations of Software
- * Copyright © 2018 Jan (janneke) Nieuwenhuizen
+ * Copyright © 2018,2022 Jan (janneke) Nieuwenhuizen
*
* This file is part of GNU Mes.
*
@@ -17,12 +17,21 @@
* You should have received a copy of the GNU General Public License
* along with GNU Mes. If not, see .
*/
+/* Commentary:
+ * See https://github.com/torvalds/linux/blob/v4.19/arch/x86/entry/syscalls/syscall_64.tbl
+ *
+ * Code:
+ */
#ifndef __MES_LINUX_X86_64_SYSCALL_H
#define __MES_LINUX_X86_64_SYSCALL_H 1
// libc-mini
-// #define SYS_write 0x01
-// #define SYS_exit 0x3c
+#ifndef SYS_write
+#define SYS_write 0x01
+#endif
+#ifndef SYS_exit
+#define SYS_exit 0x3c
+#endif
// libc
#define SYS_fork 0x39
@@ -36,16 +45,19 @@
#define SYS_brk 0x0c
#define SYS_ioctl 0x10
#define SYS_fsync 0x4a
+#define SYS_getcwd 0x4f
+#define SYS_dup 0x20
+#define SYS_dup2 0x21
+#define SYS_unlink 0x57
+#define SYS_gettimeofday 0x60
+#define SYS_clock_gettime 0xe4
+#define SYS_time 0xc9
// libc+tcc
#define SYS_close 0x03
-#define SYS_time 0xc9
#define SYS_lseek 0x08
-#define SYS_unlink 0x57
#define SYS_rmdir 0x54
-#define SYS_gettimeofday 0x60
#define SYS_stat 0x04
-#define SYS_getcwd 0x4f
// libc+gnu
#define SYS_chdir 0x50
@@ -55,20 +67,17 @@
#define SYS_kill 0x3e
#define SYS_rename 0x52
#define SYS_mkdir 0x53
-#define SYS_dup 0x20
#define SYS_pipe 0x16
#define SYS_getgid 0x68
#define SYS_rt_sigaction 0x0d
#define SYS_rt_sigreturn 0x0f
#define SYS_fcntl 0x48
-#define SYS_dup2 0x21
#define SYS_getrusage 0x62
#define SYS_lstat 0x06
#define SYS_setitimer 0x26
#define SYS_fstat 0x05
#define SYS_nanosleep 0x33
#define SYS_getdents 0x4e
-#define SYS_clock_gettime 0xe4
// bash
#define SYS_setuid 0x69