18c2ecf20Sopenharmony_ci#!/bin/sh 28c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ciin="$1" 58c2ecf20Sopenharmony_ciarch="$2" 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cisyscall_macro() { 88c2ecf20Sopenharmony_ci nr="$1" 98c2ecf20Sopenharmony_ci name="$2" 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci echo " [$nr] = \"$name\"," 128c2ecf20Sopenharmony_ci} 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ciemit() { 158c2ecf20Sopenharmony_ci nr="$1" 168c2ecf20Sopenharmony_ci entry="$2" 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci syscall_macro "$nr" "$entry" 198c2ecf20Sopenharmony_ci} 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ciecho "static const char *syscalltbl_${arch}[] = {" 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_cisorted_table=$(mktemp /tmp/syscalltbl.XXXXXX) 248c2ecf20Sopenharmony_cigrep '^[0-9]' "$in" | sort -n > $sorted_table 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_cimax_nr=0 278c2ecf20Sopenharmony_ciwhile read nr abi name entry compat; do 288c2ecf20Sopenharmony_ci if [ $nr -ge 512 ] ; then # discard compat sycalls 298c2ecf20Sopenharmony_ci break 308c2ecf20Sopenharmony_ci fi 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci emit "$nr" "$name" 338c2ecf20Sopenharmony_ci max_nr=$nr 348c2ecf20Sopenharmony_cidone < $sorted_table 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_cirm -f $sorted_table 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ciecho "};" 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ciecho "#define SYSCALLTBL_${arch}_MAX_ID ${max_nr}" 41