40 lines
596 B
Bash
Executable File
40 lines
596 B
Bash
Executable File
#!/bin/sh
|
|
|
|
in="$1"
|
|
arch="$2"
|
|
|
|
syscall_macro() {
|
|
nr="$1"
|
|
name="$2"
|
|
|
|
echo " [$nr] = \"$name\","
|
|
}
|
|
|
|
emit() {
|
|
nr="$1"
|
|
entry="$2"
|
|
|
|
syscall_macro "$nr" "$entry"
|
|
}
|
|
|
|
echo "static const char *syscalltbl_${arch}[] = {"
|
|
|
|
sorted_table=$(mktemp /tmp/syscalltbl.XXXXXX)
|
|
grep '^[0-9]' "$in" | sort -n > $sorted_table
|
|
|
|
max_nr=0
|
|
while read nr abi name entry compat; do
|
|
if [ $nr -ge 512 ] ; then # discard compat sycalls
|
|
break
|
|
fi
|
|
|
|
emit "$nr" "$name"
|
|
max_nr=$nr
|
|
done < $sorted_table
|
|
|
|
rm -f $sorted_table
|
|
|
|
echo "};"
|
|
|
|
echo "#define SYSCALLTBL_${arch}_MAX_ID ${max_nr}"
|