syscalltbl.sh 596 B

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