syscalltbl.sh 631 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #!/bin/sh
  2. # SPDX-License-Identifier: GPL-2.0
  3. in="$1"
  4. arch="$2"
  5. syscall_macro() {
  6. nr="$1"
  7. name="$2"
  8. echo " [$nr] = \"$name\","
  9. }
  10. emit() {
  11. nr="$1"
  12. entry="$2"
  13. syscall_macro "$nr" "$entry"
  14. }
  15. echo "static const char *syscalltbl_${arch}[] = {"
  16. sorted_table=$(mktemp /tmp/syscalltbl.XXXXXX)
  17. grep '^[0-9]' "$in" | sort -n > $sorted_table
  18. max_nr=0
  19. while read nr abi name entry compat; do
  20. if [ $nr -ge 512 ] ; then # discard compat sycalls
  21. break
  22. fi
  23. emit "$nr" "$name"
  24. max_nr=$nr
  25. done < $sorted_table
  26. rm -f $sorted_table
  27. echo "};"
  28. echo "#define SYSCALLTBL_${arch}_MAX_ID ${max_nr}"