18c2ecf20Sopenharmony_ci#!/bin/sh 28c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 38c2ecf20Sopenharmony_ci# 48c2ecf20Sopenharmony_ci# Generate system call table for perf. Derived from 58c2ecf20Sopenharmony_ci# s390 script. 68c2ecf20Sopenharmony_ci# 78c2ecf20Sopenharmony_ci# Copyright IBM Corp. 2017 88c2ecf20Sopenharmony_ci# Author(s): Hendrik Brueckner <brueckner@linux.vnet.ibm.com> 98c2ecf20Sopenharmony_ci# Changed by: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com> 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ciwordsize=$1 128c2ecf20Sopenharmony_ciSYSCALL_TBL=$2 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ciif ! test -r $SYSCALL_TBL; then 158c2ecf20Sopenharmony_ci echo "Could not read input file" >&2 168c2ecf20Sopenharmony_ci exit 1 178c2ecf20Sopenharmony_cifi 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_cicreate_table() 208c2ecf20Sopenharmony_ci{ 218c2ecf20Sopenharmony_ci local wordsize=$1 228c2ecf20Sopenharmony_ci local max_nr nr abi sc discard 238c2ecf20Sopenharmony_ci max_nr=-1 248c2ecf20Sopenharmony_ci nr=0 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci echo "static const char *syscalltbl_powerpc_${wordsize}[] = {" 278c2ecf20Sopenharmony_ci while read nr abi sc discard; do 288c2ecf20Sopenharmony_ci if [ "$max_nr" -lt "$nr" ]; then 298c2ecf20Sopenharmony_ci printf '\t[%d] = "%s",\n' $nr $sc 308c2ecf20Sopenharmony_ci max_nr=$nr 318c2ecf20Sopenharmony_ci fi 328c2ecf20Sopenharmony_ci done 338c2ecf20Sopenharmony_ci echo '};' 348c2ecf20Sopenharmony_ci echo "#define SYSCALLTBL_POWERPC_${wordsize}_MAX_ID $max_nr" 358c2ecf20Sopenharmony_ci} 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_cigrep -E "^[[:digit:]]+[[:space:]]+(common|spu|nospu|${wordsize})" $SYSCALL_TBL \ 388c2ecf20Sopenharmony_ci |sort -k1 -n \ 398c2ecf20Sopenharmony_ci |create_table ${wordsize} 40