#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
#
# Generate system call table for perf. Derived from
# powerpc script.
#
# Copyright IBM Corp. 2017
# Author(s):  Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
# Changed by: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
# Changed by: Kim Phillips <kim.phillips@arm.com>

gcc=$1
hostcc=$2
input=$3

if ! test -r $input; then
	echo "Could not read input file" >&2
	exit 1
fi

create_table_from_c()
{
	local sc nr last_sc

	create_table_exe=`mktemp /tmp/create-table-XXXXXX`

	{

	cat <<-_EoHEADER
		#include <stdio.h>
		#define __ARCH_WANT_RENAMEAT
		#include "$input"
		int main(int argc, char *argv[])
		{
	_EoHEADER

	while read sc nr; do
		printf "%s\n" "	printf(\"\\t[%d] = \\\"$sc\\\",\\n\", __NR_$sc);"
		last_sc=$sc
	done

	printf "%s\n" "	printf(\"#define SYSCALLTBL_ARM64_MAX_ID %d\\n\", __NR_$last_sc);"
	printf "}\n"

	} | $hostcc -o $create_table_exe -x c -

	$create_table_exe

	rm -f $create_table_exe
}

create_table()
{
	echo "static const char *syscalltbl_arm64[] = {"
	create_table_from_c
	echo "};"
}

$gcc -E -dM -x c  $input	       \
	|sed -ne 's/^#define __NR_//p' \
	|sort -t' ' -k2 -nu	       \
	|create_table
