#!/bin/sh # SPDX-License-Identifier: GPL-2.0 # # Generate system call table for perf. Derived from # powerpc script. # # Author(s): Ming Wang <wangming01@loongson.cn> # Author(s): Huacai Chen <chenhuacai@loongson.cn> # 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_sc_table() { local sc nr max_nr while read sc nr; do printf "%s\n" " [$nr] = \"$sc\"," max_nr=$nr done echo "#define SYSCALLTBL_LOONGARCH_MAX_ID $max_nr" } create_table() { echo "#include \"$input\"" echo "static const char *const syscalltbl_loongarch[] = {" create_sc_table echo "};" } $gcc -E -dM -x c -I $incpath/include/uapi $input \ |awk '$2 ~ "__NR" && $3 !~ "__NR3264_" { sub("^#define __NR(3264)?_", ""); print | "sort -k2 -n"}' \ |create_table