Commit 0047eb9f authored by Masahiro Yamada's avatar Masahiro Yamada Committed by Russell King
Browse files

ARM: 9068/1: syscalls: switch to generic syscalltbl.sh



Many architectures duplicate similar shell scripts.

This commit converts ARM to use scripts/syscalltbl.sh.

Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
parent 8252ca87
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -344,20 +344,19 @@ ENTRY(\sym)
	.size	\sym, . - \sym
	.endm

#define NATIVE(nr, func) syscall nr, func
#define __SYSCALL_WITH_COMPAT(nr, native, compat)	__SYSCALL(nr, native)
#define __SYSCALL(nr, func) syscall nr, func

/*
 * This is the syscall table declaration for native ABI syscalls.
 * With EABI a couple syscalls are obsolete and defined as sys_ni_syscall.
 */
	syscall_table_start sys_call_table
#define COMPAT(nr, native, compat) syscall nr, native
#ifdef CONFIG_AEABI
#include <calls-eabi.S>
#else
#include <calls-oabi.S>
#endif
#undef COMPAT
	syscall_table_end sys_call_table

/*============================================================================
@@ -455,7 +454,8 @@ ENDPROC(sys_oabi_readahead)
 * using the compatibility syscall entries.
 */
	syscall_table_start sys_oabi_call_table
#define COMPAT(nr, native, compat) syscall nr, compat
#undef __SYSCALL_WITH_COMPAT
#define __SYSCALL_WITH_COMPAT(nr, native, compat)	__SYSCALL(nr, compat)
#include <calls-oabi.S>
	syscall_table_end sys_oabi_call_table

+4 −5
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ kapi := $(gen)/asm
uapi := $(gen)/uapi/asm
syshdr := $(srctree)/$(src)/syscallhdr.sh
sysnr := $(srctree)/$(src)/syscallnr.sh
systbl := $(srctree)/$(src)/syscalltbl.sh
systbl := $(srctree)/scripts/syscalltbl.sh
syscall := $(src)/syscall.tbl

gen-y := $(gen)/calls-oabi.S
@@ -47,8 +47,7 @@ quiet_cmd_syshdr = SYSHDR $@
		   '__NR_SYSCALL_BASE'

quiet_cmd_systbl = SYSTBL  $@
      cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@' \
		   '$(systbl_abi_$(basetarget))'
      cmd_systbl = $(CONFIG_SHELL) $(systbl) --abis $(abis) $< $@

quiet_cmd_sysnr  = SYSNR   $@
      cmd_sysnr  = $(CONFIG_SHELL) '$(sysnr)' '$<' '$@' \
@@ -70,10 +69,10 @@ sysnr_abi_unistd-nr := common,oabi,eabi,compat
$(kapi)/unistd-nr.h: $(syscall) $(sysnr) FORCE
	$(call if_changed,sysnr)

systbl_abi_calls-oabi := common,oabi
$(gen)/calls-oabi.S: abis := common,oabi
$(gen)/calls-oabi.S: $(syscall) $(systbl) FORCE
	$(call if_changed,systbl)

systbl_abi_calls-eabi := common,eabi
$(gen)/calls-eabi.S: abis := common,eabi
$(gen)/calls-eabi.S: $(syscall) $(systbl) FORCE
	$(call if_changed,systbl)

arch/arm/tools/syscalltbl.sh

deleted100644 → 0
+0 −22
Original line number Diff line number Diff line
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
in="$1"
out="$2"
my_abis=`echo "($3)" | tr ',' '|'`

grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
    while read nr abi name entry compat; do
        if [ "$abi" = "eabi" -a -n "$compat" ]; then
            echo "$in: error: a compat entry for an EABI syscall ($name) makes no sense" >&2
            exit 1
        fi

	if [ -n "$entry" ]; then
            if [ -z "$compat" ]; then
                echo "NATIVE($nr, $entry)"
            else
                echo "COMPAT($nr, $entry, $compat)"
            fi
        fi
    done
) > "$out"