162306a36Sopenharmony_ci#!/bin/sh 262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 362306a36Sopenharmony_ci 462306a36Sopenharmony_ciin="$1" 562306a36Sopenharmony_ciarch="$2" 662306a36Sopenharmony_ci 762306a36Sopenharmony_cisyscall_macro() { 862306a36Sopenharmony_ci nr="$1" 962306a36Sopenharmony_ci name="$2" 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci echo " [$nr] = \"$name\"," 1262306a36Sopenharmony_ci} 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ciemit() { 1562306a36Sopenharmony_ci nr="$1" 1662306a36Sopenharmony_ci entry="$2" 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci syscall_macro "$nr" "$entry" 1962306a36Sopenharmony_ci} 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ciecho "static const char *const syscalltbl_${arch}[] = {" 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_cisorted_table=$(mktemp /tmp/syscalltbl.XXXXXX) 2462306a36Sopenharmony_cigrep '^[0-9]' "$in" | sort -n > $sorted_table 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_cimax_nr=0 2762306a36Sopenharmony_ciwhile read nr _abi name entry _compat; do 2862306a36Sopenharmony_ci if [ $nr -ge 512 ] ; then # discard compat sycalls 2962306a36Sopenharmony_ci break 3062306a36Sopenharmony_ci fi 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci emit "$nr" "$name" 3362306a36Sopenharmony_ci max_nr=$nr 3462306a36Sopenharmony_cidone < $sorted_table 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_cirm -f $sorted_table 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ciecho "};" 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ciecho "#define SYSCALLTBL_${arch}_MAX_ID ${max_nr}" 41