++ adding more folks I closely worked with :)
On Wed, 2 Jan 2019 at 19:59, Firoz Khan firoz.khan@linaro.org wrote:
System call table generation support is provided for alpha, ia64, m68k, microblaze, mips, parisc, powerpc, sh, sparc and xtensa architectures. The implementat- ions are almost similar across all the above archte- ctures.
In order to reduce the source code across all the above architectures, create common ".sh" files and keep it in the common directory, script/.
This will be a generic scripts which can use for all the above architectures.
Signed-off-by: Firoz Khan firoz.khan@linaro.org
scripts/syscallhdr.sh | 37 +++++++++++++++++++++++++++++++++++++ scripts/syscallnr.sh | 32 ++++++++++++++++++++++++++++++++ scripts/syscalltbl.sh | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 106 insertions(+) create mode 100644 scripts/syscallhdr.sh create mode 100644 scripts/syscallnr.sh create mode 100644 scripts/syscalltbl.sh
diff --git a/scripts/syscallhdr.sh b/scripts/syscallhdr.sh new file mode 100644 index 0000000..d03fe3d --- /dev/null +++ b/scripts/syscallhdr.sh @@ -0,0 +1,37 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0
+in="$1" +out="$2" +my_abis=`echo "($3)" | tr ',' '|'` +prefix="$4" +offset="$5"
+fileguard=_UAPI_ASM_`basename "$out" | sed \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \-e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'`+grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
printf "#ifndef %s\n" "${fileguard}"printf "#define %s\n" "${fileguard}"printf "\n"nxt=0while read nr abi name entry compat ; doif [ -z "$offset" ]; thenprintf "#define __NR_%s%s\t%s\n" \"${prefix}" "${name}" "${nr}"elseprintf "#define __NR_%s%s\t(%s + %s)\n" \"${prefix}" "${name}" "${offset}" "${nr}"finxt=$((nr+1))doneprintf "\n"printf "#ifdef __KERNEL__\n"printf "#define __NR_syscalls\t%s\n" "${nxt}"printf "#endif\n"printf "\n"printf "#endif /* %s */" "${fileguard}"printf "\n"+) > "$out" diff --git a/scripts/syscallnr.sh b/scripts/syscallnr.sh new file mode 100644 index 0000000..8cf33fa --- /dev/null +++ b/scripts/syscallnr.sh @@ -0,0 +1,32 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0
+in="$1" +out="$2" +my_abis=`echo "($3)" | tr ',' '|'` +prefix="$4" +offset="$5"
+fileguard=_UAPI_ASM_`basename "$out" | sed \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \-e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'`+grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
printf "#ifndef %s\n" "${fileguard}"printf "#define %s\n" "${fileguard}"printf "\n"nxt=0while read nr abi name entry compat ; donxt=$((nr+1))doneif [ ! -z "$prefix" ]; thenprintf "#define __NR_%s_Linux_syscalls\t%s\n" "${prefix}" "${nxt}"if [ ! -z "$offset" ]; thenprintf "#define __NR_%s_Linux\t%s\n" "${prefix}" "${offset}"fifiprintf "\n"printf "#endif /* %s */" "${fileguard}"printf "\n"+) > "$out" diff --git a/scripts/syscalltbl.sh b/scripts/syscalltbl.sh new file mode 100644 index 0000000..f60f762 --- /dev/null +++ b/scripts/syscalltbl.sh @@ -0,0 +1,37 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0
+in="$1" +out="$2" +my_abis=`echo "($3)" | tr ',' '|'` +my_abi="$4" +offset="$5"
+emit() {
t_nxt="$1"t_nr="$2"t_entry="$3"while [ $t_nxt -lt $t_nr ]; doprintf "__SYSCALL(%s,sys_ni_syscall)\n" "${t_nxt}"t_nxt=$((t_nxt+1))doneprintf "__SYSCALL(%s,%s)\n" "${t_nxt}" "${t_entry}"+}
+grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
nxt=0if [ -z "$offset" ]; thenoffset=0fiwhile read nr abi name entry compat ; doif [ "$my_abi" = "c32" -o "$my_abi" = "64_o32" ] &&[ ! -z "$compat" ]; thenemit $((nxt+offset)) $((nr+offset)) $compatelseemit $((nxt+offset)) $((nr+offset)) $entryfinxt=$((nr+1))done+) > "$out"
1.9.1