#!/bin/sh # SPDX-License-Identifier: GPL-2.0 # # Generate system call table for perf. Derived from # powerpc script. # # Author(s): Ming Wang # Author(s): Huacai Chen # Copyright (C) 2020-2023 Loongson Technology Corporation Limited gcc=$1 hostcc=$2 incpath=$3 input=$4 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 ${TMPDIR:-/tmp}/create-table-XXXXXX` { cat <<-_EoHEADER #include #include "$input" int main(int argc, char *argv[]) { _EoHEADER while read sc nr; do printf "%s\n" " printf(\"\\t[%d] = \\\"$sc\\\",\\n\", $nr);" last_sc=$nr done printf "%s\n" " printf(\"#define SYSCALLTBL_LOONGARCH_MAX_ID %d\\n\", $last_sc);" printf "}\n" } | $hostcc -I $incpath/include/uapi -o $create_table_exe -x c - $create_table_exe rm -f $create_table_exe } create_table() { echo "static const char *syscalltbl_loongarch[] = {" create_table_from_c echo "};" } $gcc -E -dM -x c -I $incpath/include/uapi $input \ |sed -ne 's/^#define __NR_//p' \ |sort -t' ' -k2 -n \ |create_table