123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #!/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
- 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 /tmp/create-table-XXXXXX`
- {
- cat <<-_EoHEADER
- #include <stdio.h>
- #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 -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_arm64[] = {"
- create_table_from_c
- echo "};"
- }
- $gcc -E -dM -x c $input \
- |sed -ne 's/^#define __NR_//p' \
- |sort -t' ' -k2 -nu \
- |create_table
|