GNU Linux-libre 4.9.317-gnu1
[releases.git] / tools / perf / arch / x86 / entry / syscalls / syscalltbl.sh
1 #!/bin/sh
2
3 in="$1"
4 arch="$2"
5
6 syscall_macro() {
7     nr="$1"
8     name="$2"
9
10     echo "      [$nr] = \"$name\","
11 }
12
13 emit() {
14     nr="$1"
15     entry="$2"
16
17     syscall_macro "$nr" "$entry"
18 }
19
20 echo "static const char *syscalltbl_${arch}[] = {"
21
22 sorted_table=$(mktemp /tmp/syscalltbl.XXXXXX)
23 grep '^[0-9]' "$in" | sort -n > $sorted_table
24
25 max_nr=0
26 while read nr abi name entry compat; do
27     if [ $nr -ge 512 ] ; then # discard compat sycalls
28         break
29     fi
30
31     emit "$nr" "$name"
32     max_nr=$nr
33 done < $sorted_table
34
35 rm -f $sorted_table
36
37 echo "};"
38
39 echo "#define SYSCALLTBL_${arch}_MAX_ID ${max_nr}"