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# powerpc 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# Changed by: Kim Phillips <kim.phillips@arm.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cigcc=$1
1362306a36Sopenharmony_cihostcc=$2
1462306a36Sopenharmony_ciincpath=$3
1562306a36Sopenharmony_ciinput=$4
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciif ! test -r $input; then
1862306a36Sopenharmony_ci	echo "Could not read input file" >&2
1962306a36Sopenharmony_ci	exit 1
2062306a36Sopenharmony_cifi
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_cicreate_sc_table()
2362306a36Sopenharmony_ci{
2462306a36Sopenharmony_ci	local sc nr max_nr
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci	while read sc nr; do
2762306a36Sopenharmony_ci		printf "%s\n" "	[$nr] = \"$sc\","
2862306a36Sopenharmony_ci		max_nr=$nr
2962306a36Sopenharmony_ci	done
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci	echo "#define SYSCALLTBL_ARM64_MAX_ID $max_nr"
3262306a36Sopenharmony_ci}
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_cicreate_table()
3562306a36Sopenharmony_ci{
3662306a36Sopenharmony_ci	echo "#include \"$input\""
3762306a36Sopenharmony_ci	echo "static const char *const syscalltbl_arm64[] = {"
3862306a36Sopenharmony_ci	create_sc_table
3962306a36Sopenharmony_ci	echo "};"
4062306a36Sopenharmony_ci}
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci$gcc -E -dM -x c -I $incpath/include/uapi $input \
4362306a36Sopenharmony_ci	|awk '$2 ~ "__NR" && $3 !~ "__NR3264_" {
4462306a36Sopenharmony_ci		sub("^#define __NR(3264)?_", "");
4562306a36Sopenharmony_ci		print | "sort -k2 -n"}' \
4662306a36Sopenharmony_ci	|create_table
47