xref: /OK3568_Linux_fs/kernel/tools/perf/arch/powerpc/entry/syscalls/mksyscalltbl (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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