1*4882a593Smuzhiyun#!/bin/sh 2*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 3*4882a593Smuzhiyun 4*4882a593Smuzhiyunin="$1" 5*4882a593Smuzhiyunarch="$2" 6*4882a593Smuzhiyun 7*4882a593Smuzhiyunsyscall_macro() { 8*4882a593Smuzhiyun nr="$1" 9*4882a593Smuzhiyun name="$2" 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun echo " [$nr] = \"$name\"," 12*4882a593Smuzhiyun} 13*4882a593Smuzhiyun 14*4882a593Smuzhiyunemit() { 15*4882a593Smuzhiyun nr="$1" 16*4882a593Smuzhiyun entry="$2" 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun syscall_macro "$nr" "$entry" 19*4882a593Smuzhiyun} 20*4882a593Smuzhiyun 21*4882a593Smuzhiyunecho "static const char *syscalltbl_${arch}[] = {" 22*4882a593Smuzhiyun 23*4882a593Smuzhiyunsorted_table=$(mktemp /tmp/syscalltbl.XXXXXX) 24*4882a593Smuzhiyungrep '^[0-9]' "$in" | sort -n > $sorted_table 25*4882a593Smuzhiyun 26*4882a593Smuzhiyunmax_nr=0 27*4882a593Smuzhiyunwhile read nr abi name entry compat; do 28*4882a593Smuzhiyun if [ $nr -ge 512 ] ; then # discard compat sycalls 29*4882a593Smuzhiyun break 30*4882a593Smuzhiyun fi 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun emit "$nr" "$name" 33*4882a593Smuzhiyun max_nr=$nr 34*4882a593Smuzhiyundone < $sorted_table 35*4882a593Smuzhiyun 36*4882a593Smuzhiyunrm -f $sorted_table 37*4882a593Smuzhiyun 38*4882a593Smuzhiyunecho "};" 39*4882a593Smuzhiyun 40*4882a593Smuzhiyunecho "#define SYSCALLTBL_${arch}_MAX_ID ${max_nr}" 41