1#!/bin/sh 2# SPDX-License-Identifier: GPL-2.0 3# 4# Generate system call table for perf. Derived from 5# powerpc script. 6# 7# Copyright IBM Corp. 2017 8# Author(s): Hendrik Brueckner <brueckner@linux.vnet.ibm.com> 9# Changed by: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com> 10# Changed by: Kim Phillips <kim.phillips@arm.com> 11 12gcc=$1 13hostcc=$2 14incpath=$3 15input=$4 16 17if ! test -r $input; then 18 echo "Could not read input file" >&2 19 exit 1 20fi 21 22create_table_from_c() 23{ 24 local sc nr last_sc 25 26 create_table_exe=`mktemp ${TMPDIR:-/tmp}/create-table-XXXXXX` 27 28 { 29 30 cat <<-_EoHEADER 31 #include <stdio.h> 32 #include "$input" 33 int main(int argc, char *argv[]) 34 { 35 _EoHEADER 36 37 while read sc nr; do 38 printf "%s\n" " printf(\"\\t[%d] = \\\"$sc\\\",\\n\", __NR_$sc);" 39 last_sc=$sc 40 done 41 42 printf "%s\n" " printf(\"#define SYSCALLTBL_ARM64_MAX_ID %d\\n\", __NR_$last_sc);" 43 printf "}\n" 44 45 } | $hostcc -I $incpath/include/uapi -o $create_table_exe -x c - 46 47 $create_table_exe 48 49 rm -f $create_table_exe 50} 51 52create_table() 53{ 54 echo "static const char *syscalltbl_arm64[] = {" 55 create_table_from_c 56 echo "};" 57} 58 59$gcc -E -dM -x c -I $incpath/include/uapi $input \ 60 |sed -ne 's/^#define __NR_//p' \ 61 |sort -t' ' -k2 -n \ 62 |create_table 63