提交 32e9a0d5 编写于 作者: M Masahiro Yamada 提交者: Russell King

ARM: 9067/1: syscalls: switch to generic syscallhdr.sh

Many architectures duplicate similar shell scripts.

This commit converts ARM to use scripts/syscallhdr.sh, and also
collects OABI/OEBI syscalls into unistd-eabi.h/unistd-oabi.h,
removing unistd-common.h.
Signed-off-by: NMasahiro Yamada <masahiroy@kernel.org>
Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
上级 0047eb9f
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
generated-y += unistd-common.h
generated-y += unistd-oabi.h generated-y += unistd-oabi.h
generated-y += unistd-eabi.h generated-y += unistd-eabi.h
generic-y += kvm_para.h generic-y += kvm_para.h
...@@ -24,7 +24,6 @@ ...@@ -24,7 +24,6 @@
#include <asm/unistd-oabi.h> #include <asm/unistd-oabi.h>
#endif #endif
#include <asm/unistd-common.h>
#define __NR_sync_file_range2 __NR_arm_sync_file_range #define __NR_sync_file_range2 __NR_arm_sync_file_range
/* /*
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
gen := arch/$(ARCH)/include/generated gen := arch/$(ARCH)/include/generated
kapi := $(gen)/asm kapi := $(gen)/asm
uapi := $(gen)/uapi/asm uapi := $(gen)/uapi/asm
syshdr := $(srctree)/$(src)/syscallhdr.sh syshdr := $(srctree)/scripts/syscallhdr.sh
sysnr := $(srctree)/$(src)/syscallnr.sh sysnr := $(srctree)/$(src)/syscallnr.sh
systbl := $(srctree)/scripts/syscalltbl.sh systbl := $(srctree)/scripts/syscalltbl.sh
syscall := $(src)/syscall.tbl syscall := $(src)/syscall.tbl
...@@ -17,7 +17,6 @@ gen-y := $(gen)/calls-oabi.S ...@@ -17,7 +17,6 @@ gen-y := $(gen)/calls-oabi.S
gen-y += $(gen)/calls-eabi.S gen-y += $(gen)/calls-eabi.S
kapi-hdrs-y := $(kapi)/unistd-nr.h kapi-hdrs-y := $(kapi)/unistd-nr.h
kapi-hdrs-y += $(kapi)/mach-types.h kapi-hdrs-y += $(kapi)/mach-types.h
uapi-hdrs-y := $(uapi)/unistd-common.h
uapi-hdrs-y += $(uapi)/unistd-oabi.h uapi-hdrs-y += $(uapi)/unistd-oabi.h
uapi-hdrs-y += $(uapi)/unistd-eabi.h uapi-hdrs-y += $(uapi)/unistd-eabi.h
...@@ -41,10 +40,8 @@ $(kapi)/mach-types.h: $(src)/gen-mach-types $(src)/mach-types FORCE ...@@ -41,10 +40,8 @@ $(kapi)/mach-types.h: $(src)/gen-mach-types $(src)/mach-types FORCE
$(call if_changed,gen_mach) $(call if_changed,gen_mach)
quiet_cmd_syshdr = SYSHDR $@ quiet_cmd_syshdr = SYSHDR $@
cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@' \ cmd_syshdr = $(CONFIG_SHELL) $(syshdr) --abis $(abis) \
'$(syshdr_abi_$(basetarget))' \ --offset __NR_SYSCALL_BASE $< $@
'$(syshdr_pfx_$(basetarget))' \
'__NR_SYSCALL_BASE'
quiet_cmd_systbl = SYSTBL $@ quiet_cmd_systbl = SYSTBL $@
cmd_systbl = $(CONFIG_SHELL) $(systbl) --abis $(abis) $< $@ cmd_systbl = $(CONFIG_SHELL) $(systbl) --abis $(abis) $< $@
...@@ -53,15 +50,11 @@ quiet_cmd_sysnr = SYSNR $@ ...@@ -53,15 +50,11 @@ quiet_cmd_sysnr = SYSNR $@
cmd_sysnr = $(CONFIG_SHELL) '$(sysnr)' '$<' '$@' \ cmd_sysnr = $(CONFIG_SHELL) '$(sysnr)' '$<' '$@' \
'$(syshdr_abi_$(basetarget))' '$(syshdr_abi_$(basetarget))'
syshdr_abi_unistd-common := common $(uapi)/unistd-oabi.h: abis := common,oabi
$(uapi)/unistd-common.h: $(syscall) $(syshdr) FORCE
$(call if_changed,syshdr)
syshdr_abi_unistd-oabi := oabi
$(uapi)/unistd-oabi.h: $(syscall) $(syshdr) FORCE $(uapi)/unistd-oabi.h: $(syscall) $(syshdr) FORCE
$(call if_changed,syshdr) $(call if_changed,syshdr)
syshdr_abi_unistd-eabi := eabi $(uapi)/unistd-eabi.h: abis := common,eabi
$(uapi)/unistd-eabi.h: $(syscall) $(syshdr) FORCE $(uapi)/unistd-eabi.h: $(syscall) $(syshdr) FORCE
$(call if_changed,syshdr) $(call if_changed,syshdr)
......
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
in="$1"
out="$2"
my_abis=`echo "($3)" | tr ',' '|'`
prefix="$4"
offset="$5"
fileguard=_ASM_ARM_`basename "$out" | sed \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
-e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'`
if echo $out | grep -q uapi; then
fileguard="_UAPI$fileguard"
fi
grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
echo "#ifndef ${fileguard}"
echo "#define ${fileguard} 1"
echo ""
while read nr abi name entry ; do
if [ -z "$offset" ]; then
echo "#define __NR_${prefix}${name} $nr"
else
echo "#define __NR_${prefix}${name} ($offset + $nr)"
fi
done
echo ""
echo "#endif /* ${fileguard} */"
) > "$out"
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册