| #!/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}" |