1*d9fd5a71STiezhu Yang#!/bin/sh
2*d9fd5a71STiezhu Yang# SPDX-License-Identifier: GPL-2.0
3*d9fd5a71STiezhu Yang#
4*d9fd5a71STiezhu Yang# Generate system call table for perf. Derived from
5*d9fd5a71STiezhu Yang# s390 script.
6*d9fd5a71STiezhu Yang#
7*d9fd5a71STiezhu Yang# Author(s):  Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
8*d9fd5a71STiezhu Yang# Changed by: Tiezhu Yang <yangtiezhu@loongson.cn>
9*d9fd5a71STiezhu Yang
10*d9fd5a71STiezhu YangSYSCALL_TBL=$1
11*d9fd5a71STiezhu Yang
12*d9fd5a71STiezhu Yangif ! test -r $SYSCALL_TBL; then
13*d9fd5a71STiezhu Yang	echo "Could not read input file" >&2
14*d9fd5a71STiezhu Yang	exit 1
15*d9fd5a71STiezhu Yangfi
16*d9fd5a71STiezhu Yang
17*d9fd5a71STiezhu Yangcreate_table()
18*d9fd5a71STiezhu Yang{
19*d9fd5a71STiezhu Yang	local max_nr nr abi sc discard
20*d9fd5a71STiezhu Yang
21*d9fd5a71STiezhu Yang	echo 'static const char *syscalltbl_mips_n64[] = {'
22*d9fd5a71STiezhu Yang	while read nr abi sc discard; do
23*d9fd5a71STiezhu Yang		printf '\t[%d] = "%s",\n' $nr $sc
24*d9fd5a71STiezhu Yang		max_nr=$nr
25*d9fd5a71STiezhu Yang	done
26*d9fd5a71STiezhu Yang	echo '};'
27*d9fd5a71STiezhu Yang	echo "#define SYSCALLTBL_MIPS_N64_MAX_ID $max_nr"
28*d9fd5a71STiezhu Yang}
29*d9fd5a71STiezhu Yang
30*d9fd5a71STiezhu Yanggrep -E "^[[:digit:]]+[[:space:]]+(n64)" $SYSCALL_TBL	\
31*d9fd5a71STiezhu Yang	|sort -k1 -n					\
32*d9fd5a71STiezhu Yang	|create_table
33