1*4882a593Smuzhiyun#!/bin/sh 2*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 3*4882a593Smuzhiyun# 4*4882a593Smuzhiyun# Generate system call table for perf. Derived from 5*4882a593Smuzhiyun# s390 script. 6*4882a593Smuzhiyun# 7*4882a593Smuzhiyun# Copyright IBM Corp. 2017 8*4882a593Smuzhiyun# Author(s): Hendrik Brueckner <brueckner@linux.vnet.ibm.com> 9*4882a593Smuzhiyun# Changed by: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com> 10*4882a593Smuzhiyun 11*4882a593Smuzhiyunwordsize=$1 12*4882a593SmuzhiyunSYSCALL_TBL=$2 13*4882a593Smuzhiyun 14*4882a593Smuzhiyunif ! test -r $SYSCALL_TBL; then 15*4882a593Smuzhiyun echo "Could not read input file" >&2 16*4882a593Smuzhiyun exit 1 17*4882a593Smuzhiyunfi 18*4882a593Smuzhiyun 19*4882a593Smuzhiyuncreate_table() 20*4882a593Smuzhiyun{ 21*4882a593Smuzhiyun local wordsize=$1 22*4882a593Smuzhiyun local max_nr nr abi sc discard 23*4882a593Smuzhiyun max_nr=-1 24*4882a593Smuzhiyun nr=0 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun echo "static const char *syscalltbl_powerpc_${wordsize}[] = {" 27*4882a593Smuzhiyun while read nr abi sc discard; do 28*4882a593Smuzhiyun if [ "$max_nr" -lt "$nr" ]; then 29*4882a593Smuzhiyun printf '\t[%d] = "%s",\n' $nr $sc 30*4882a593Smuzhiyun max_nr=$nr 31*4882a593Smuzhiyun fi 32*4882a593Smuzhiyun done 33*4882a593Smuzhiyun echo '};' 34*4882a593Smuzhiyun echo "#define SYSCALLTBL_POWERPC_${wordsize}_MAX_ID $max_nr" 35*4882a593Smuzhiyun} 36*4882a593Smuzhiyun 37*4882a593Smuzhiyungrep -E "^[[:digit:]]+[[:space:]]+(common|spu|nospu|${wordsize})" $SYSCALL_TBL \ 38*4882a593Smuzhiyun |sort -k1 -n \ 39*4882a593Smuzhiyun |create_table ${wordsize} 40