162306a36Sopenharmony_ci#!/bin/sh 262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 362306a36Sopenharmony_ci# 462306a36Sopenharmony_ci# Generate system call table for perf. Derived from 562306a36Sopenharmony_ci# s390 script. 662306a36Sopenharmony_ci# 762306a36Sopenharmony_ci# Copyright IBM Corp. 2017 862306a36Sopenharmony_ci# Author(s): Hendrik Brueckner <brueckner@linux.vnet.ibm.com> 962306a36Sopenharmony_ci# Changed by: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com> 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ciwordsize=$1 1262306a36Sopenharmony_ciSYSCALL_TBL=$2 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ciif ! test -r $SYSCALL_TBL; then 1562306a36Sopenharmony_ci echo "Could not read input file" >&2 1662306a36Sopenharmony_ci exit 1 1762306a36Sopenharmony_cifi 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_cicreate_table() 2062306a36Sopenharmony_ci{ 2162306a36Sopenharmony_ci local wordsize=$1 2262306a36Sopenharmony_ci local max_nr nr abi sc discard 2362306a36Sopenharmony_ci max_nr=-1 2462306a36Sopenharmony_ci nr=0 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci echo "static const char *const syscalltbl_powerpc_${wordsize}[] = {" 2762306a36Sopenharmony_ci while read nr abi sc discard; do 2862306a36Sopenharmony_ci if [ "$max_nr" -lt "$nr" ]; then 2962306a36Sopenharmony_ci printf '\t[%d] = "%s",\n' $nr $sc 3062306a36Sopenharmony_ci max_nr=$nr 3162306a36Sopenharmony_ci fi 3262306a36Sopenharmony_ci done 3362306a36Sopenharmony_ci echo '};' 3462306a36Sopenharmony_ci echo "#define SYSCALLTBL_POWERPC_${wordsize}_MAX_ID $max_nr" 3562306a36Sopenharmony_ci} 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_cigrep -E "^[[:digit:]]+[[:space:]]+(common|spu|nospu|${wordsize})" $SYSCALL_TBL \ 3862306a36Sopenharmony_ci |sort -k1 -n \ 3962306a36Sopenharmony_ci |create_table ${wordsize} 40