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# Author(s): Ming Wang <wangming01@loongson.cn> 862306a36Sopenharmony_ci# Author(s): Huacai Chen <chenhuacai@loongson.cn> 962306a36Sopenharmony_ci# Copyright (C) 2020-2023 Loongson Technology Corporation Limited 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_cigcc=$1 1262306a36Sopenharmony_cihostcc=$2 1362306a36Sopenharmony_ciincpath=$3 1462306a36Sopenharmony_ciinput=$4 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ciif ! test -r $input; then 1762306a36Sopenharmony_ci echo "Could not read input file" >&2 1862306a36Sopenharmony_ci exit 1 1962306a36Sopenharmony_cifi 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_cicreate_sc_table() 2262306a36Sopenharmony_ci{ 2362306a36Sopenharmony_ci local sc nr max_nr 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci while read sc nr; do 2662306a36Sopenharmony_ci printf "%s\n" " [$nr] = \"$sc\"," 2762306a36Sopenharmony_ci max_nr=$nr 2862306a36Sopenharmony_ci done 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci echo "#define SYSCALLTBL_LOONGARCH_MAX_ID $max_nr" 3162306a36Sopenharmony_ci} 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_cicreate_table() 3462306a36Sopenharmony_ci{ 3562306a36Sopenharmony_ci echo "#include \"$input\"" 3662306a36Sopenharmony_ci echo "static const char *const syscalltbl_loongarch[] = {" 3762306a36Sopenharmony_ci create_sc_table 3862306a36Sopenharmony_ci echo "};" 3962306a36Sopenharmony_ci} 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci$gcc -E -dM -x c -I $incpath/include/uapi $input \ 4262306a36Sopenharmony_ci |awk '$2 ~ "__NR" && $3 !~ "__NR3264_" { 4362306a36Sopenharmony_ci sub("^#define __NR(3264)?_", ""); 4462306a36Sopenharmony_ci print | "sort -k2 -n"}' \ 4562306a36Sopenharmony_ci |create_table 46