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# powerpc 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# Changed by: Kim Phillips <kim.phillips@arm.com> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_cigcc=$1 138c2ecf20Sopenharmony_cihostcc=$2 148c2ecf20Sopenharmony_ciincpath=$3 158c2ecf20Sopenharmony_ciinput=$4 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ciif ! test -r $input; then 188c2ecf20Sopenharmony_ci echo "Could not read input file" >&2 198c2ecf20Sopenharmony_ci exit 1 208c2ecf20Sopenharmony_cifi 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_cicreate_table_from_c() 238c2ecf20Sopenharmony_ci{ 248c2ecf20Sopenharmony_ci local sc nr last_sc 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci create_table_exe=`mktemp ${TMPDIR:-/tmp}/create-table-XXXXXX` 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci { 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci cat <<-_EoHEADER 318c2ecf20Sopenharmony_ci #include <stdio.h> 328c2ecf20Sopenharmony_ci #include "$input" 338c2ecf20Sopenharmony_ci int main(int argc, char *argv[]) 348c2ecf20Sopenharmony_ci { 358c2ecf20Sopenharmony_ci _EoHEADER 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci while read sc nr; do 388c2ecf20Sopenharmony_ci printf "%s\n" " printf(\"\\t[%d] = \\\"$sc\\\",\\n\", __NR_$sc);" 398c2ecf20Sopenharmony_ci last_sc=$sc 408c2ecf20Sopenharmony_ci done 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci printf "%s\n" " printf(\"#define SYSCALLTBL_ARM64_MAX_ID %d\\n\", __NR_$last_sc);" 438c2ecf20Sopenharmony_ci printf "}\n" 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci } | $hostcc -I $incpath/include/uapi -o $create_table_exe -x c - 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci $create_table_exe 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ci rm -f $create_table_exe 508c2ecf20Sopenharmony_ci} 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_cicreate_table() 538c2ecf20Sopenharmony_ci{ 548c2ecf20Sopenharmony_ci echo "static const char *syscalltbl_arm64[] = {" 558c2ecf20Sopenharmony_ci create_table_from_c 568c2ecf20Sopenharmony_ci echo "};" 578c2ecf20Sopenharmony_ci} 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci$gcc -E -dM -x c -I $incpath/include/uapi $input \ 608c2ecf20Sopenharmony_ci |sed -ne 's/^#define __NR_//p' \ 618c2ecf20Sopenharmony_ci |sort -t' ' -k2 -nu \ 628c2ecf20Sopenharmony_ci |create_table 63