1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| #! /bin/sh
|
| set -e
|
| shift
|
| awk '
| match($0, /COBALT_SYSCALL\([^,]*,[ \t]*[^,]*/) {
| str=substr($0, RSTART + 15, RLENGTH - 15)
| match(str, /[^, \t]*/)
| syscall=substr(str, RSTART, RLENGTH)
|
| if (syscall == "") {
| print "Failed to find syscall name in line " $0 > "/dev/stderr"
| exit 1
| }
|
| calls = calls " __COBALT_CALL_ENTRY(" syscall ") \\\n"
| modes = modes " __COBALT_MODE(" str ") \\\n"
| next
| }
|
| /COBALT_SYSCALL\(/ {
| print "Failed to parse line " $0 > "/dev/stderr"
| exit 1
| }
|
| END {
| print "#define __COBALT_CALL_ENTRIES \\\n" calls " /* end */"
| print "#define __COBALT_CALL_MODES \\\n" modes " /* end */"
| }
| ' $*
|
|