xref: /OK3568_Linux_fs/kernel/tools/perf/arch/s390/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
5*4882a593Smuzhiyun#
6*4882a593Smuzhiyun# Copyright IBM Corp. 2017, 2018
7*4882a593Smuzhiyun# Author(s):  Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
8*4882a593Smuzhiyun#
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunSYSCALL_TBL=$1
11*4882a593Smuzhiyun
12*4882a593Smuzhiyunif ! test -r $SYSCALL_TBL; then
13*4882a593Smuzhiyun	echo "Could not read input file" >&2
14*4882a593Smuzhiyun	exit 1
15*4882a593Smuzhiyunfi
16*4882a593Smuzhiyun
17*4882a593Smuzhiyuncreate_table()
18*4882a593Smuzhiyun{
19*4882a593Smuzhiyun	local max_nr nr abi sc discard
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun	echo 'static const char *syscalltbl_s390_64[] = {'
22*4882a593Smuzhiyun	while read nr abi sc discard; do
23*4882a593Smuzhiyun		printf '\t[%d] = "%s",\n' $nr $sc
24*4882a593Smuzhiyun		max_nr=$nr
25*4882a593Smuzhiyun	done
26*4882a593Smuzhiyun	echo '};'
27*4882a593Smuzhiyun	echo "#define SYSCALLTBL_S390_64_MAX_ID $max_nr"
28*4882a593Smuzhiyun}
29*4882a593Smuzhiyun
30*4882a593Smuzhiyungrep -E "^[[:digit:]]+[[:space:]]+(common|64)" $SYSCALL_TBL	\
31*4882a593Smuzhiyun	|sort -k1 -n					\
32*4882a593Smuzhiyun	|create_table
33