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