xref: /plan9/sys/src/9/port/mksystab (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
1#!/bin/rc
2
3file=/sys/src/libc/9syscall/sys.h
4
5cat <<'!'
6#include "/sys/src/libc/9syscall/sys.h"
7
8typedef long Syscall(ulong*);
9
10!
11
12sed 's/#define[ 	]*([A-Z0-9_][A-Z0-9_]*).*/SYS\1/; s/SYSSYSR1/SYSR1/' $file |
13	tr A-Z a-z |
14	sed 's/.*/Syscall &;/'
15
16cat <<'!'
17Syscall	sysdeath;
18
19Syscall *systab[]={
20!
21sam -d $file >[2] /dev/null <<'!'
22,s/#define.([A-Z0-9_]+).*/	[\1]	SYS\1,/g
23,x/SYS[A-Z0-9_]+,/ | tr A-Z a-z
24,x/syssysr1/c/sysr1
25,x/sys_x[0-9]*/c/sysdeath
26,x v/\[......+\]/ s/\]/]
27,p
28!
29
30cat <<'!'
31};
32
33char *sysctab[]={
34!
35
36sam -d $file >[2] /dev/null <<'!'
37,s/#define.([A-Z0-9_]+).*/	[\1]	"\1",/g
38,x/"[A-Z0-9_]+",/ y/"[A-Z]/ | tr A-Z a-z
39,x/_"/c/"
40,x/Sysr1/c/Running
41,x/Rendezvous/c/Rendez
42,x v/\[......+\]/ s/\]/]
43,p
44!
45
46cat <<'!'
47};
48
49int nsyscall = (sizeof systab/sizeof systab[0]);
50!
51