Back to home page

OSCL-LXR

 
 

    


0001 #!/bin/sh
0002 # SPDX-License-Identifier: GPL-2.0
0003 
0004 in="$1"
0005 arch="$2"
0006 
0007 syscall_macro() {
0008     nr="$1"
0009     name="$2"
0010 
0011     echo "      [$nr] = \"$name\","
0012 }
0013 
0014 emit() {
0015     nr="$1"
0016     entry="$2"
0017 
0018     syscall_macro "$nr" "$entry"
0019 }
0020 
0021 echo "static const char *syscalltbl_${arch}[] = {"
0022 
0023 sorted_table=$(mktemp /tmp/syscalltbl.XXXXXX)
0024 grep '^[0-9]' "$in" | sort -n > $sorted_table
0025 
0026 max_nr=0
0027 while read nr abi name entry compat; do
0028     if [ $nr -ge 512 ] ; then # discard compat sycalls
0029         break
0030     fi
0031 
0032     emit "$nr" "$name"
0033     max_nr=$nr
0034 done < $sorted_table
0035 
0036 rm -f $sorted_table
0037 
0038 echo "};"
0039 
0040 echo "#define SYSCALLTBL_${arch}_MAX_ID ${max_nr}"