Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mips: syscalls: switch to generic syscalltbl.sh

Many architectures duplicate similar shell scripts.

This commit converts mips to use scripts/syscalltbl.sh. This also
unifies syscall_table_32_o32.h and syscall_table_64_o32.h into
syscall_table_o32.h.

The offset parameters are unneeded here; __SYSCALL(nr, entry) is defined
as 'PTR entry', so the parameter 'nr' is not used in the first place.

With this commit, syscall tables and generated files are straight
mapped, which makes things easier to understand.

syscall_n32.tbl --> syscall_table_n32.h
syscall_n64.tbl --> syscall_table_n64.h
syscall_o32.tbl --> syscall_table_o32.h

Then, the abi parameters are also unneeded.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>

authored by

Masahiro Yamada and committed by
Thomas Bogendoerfer
ecbba30f 45c7e8af

+17 -71
+3 -4
arch/mips/include/asm/Kbuild
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 2 # MIPS headers 3 - generated-y += syscall_table_32_o32.h 4 - generated-y += syscall_table_64_n32.h 5 - generated-y += syscall_table_64_n64.h 6 - generated-y += syscall_table_64_o32.h 3 + generated-y += syscall_table_n32.h 4 + generated-y += syscall_table_n64.h 5 + generated-y += syscall_table_o32.h 7 6 generated-y += unistd_nr_n32.h 8 7 generated-y += unistd_nr_n64.h 9 8 generated-y += unistd_nr_o32.h
+2 -2
arch/mips/kernel/scall32-o32.S
··· 217 217 #define sys_sched_getaffinity mipsmt_sys_sched_getaffinity 218 218 #endif /* CONFIG_MIPS_MT_FPAFF */ 219 219 220 + #define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, native) 220 221 #define __SYSCALL(nr, entry) PTR entry 221 222 .align 2 222 223 .type sys_call_table, @object 223 224 EXPORT(sys_call_table) 224 - #include <asm/syscall_table_32_o32.h> 225 - #undef __SYSCALL 225 + #include <asm/syscall_table_o32.h>
+1 -2
arch/mips/kernel/scall64-n32.S
··· 104 104 #define __SYSCALL(nr, entry) PTR entry 105 105 .type sysn32_call_table, @object 106 106 EXPORT(sysn32_call_table) 107 - #include <asm/syscall_table_64_n32.h> 108 - #undef __SYSCALL 107 + #include <asm/syscall_table_n32.h>
+1 -2
arch/mips/kernel/scall64-n64.S
··· 113 113 .align 3 114 114 .type sys_call_table, @object 115 115 EXPORT(sys_call_table) 116 - #include <asm/syscall_table_64_n64.h> 117 - #undef __SYSCALL 116 + #include <asm/syscall_table_n64.h>
+2 -2
arch/mips/kernel/scall64-o32.S
··· 213 213 jr ra 214 214 END(sys32_syscall) 215 215 216 + #define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, compat) 216 217 #define __SYSCALL(nr, entry) PTR entry 217 218 .align 3 218 219 .type sys32_call_table,@object 219 220 EXPORT(sys32_call_table) 220 - #include <asm/syscall_table_64_o32.h> 221 - #undef __SYSCALL 221 + #include <asm/syscall_table_o32.h>
+8 -23
arch/mips/kernel/syscalls/Makefile
··· 10 10 syscallo32 := $(src)/syscall_o32.tbl 11 11 syshdr := $(srctree)/$(src)/syscallhdr.sh 12 12 sysnr := $(srctree)/$(src)/syscallnr.sh 13 - systbl := $(srctree)/$(src)/syscalltbl.sh 13 + systbl := $(srctree)/scripts/syscalltbl.sh 14 14 15 15 quiet_cmd_syshdr = SYSHDR $@ 16 16 cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@' \ ··· 25 25 '$(sysnr_offset_$(basetarget))' 26 26 27 27 quiet_cmd_systbl = SYSTBL $@ 28 - cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@' \ 29 - '$(systbl_abis_$(basetarget))' \ 30 - '$(systbl_abi_$(basetarget))' \ 31 - '$(systbl_offset_$(basetarget))' 28 + cmd_systbl = $(CONFIG_SHELL) $(systbl) $< $@ 32 29 33 30 syshdr_offset_unistd_n32 := __NR_Linux 34 31 $(uapi)/unistd_n32.h: $(syscalln32) $(syshdr) FORCE ··· 54 57 $(kapi)/unistd_nr_o32.h: $(syscallo32) $(sysnr) FORCE 55 58 $(call if_changed,sysnr) 56 59 57 - systbl_abi_syscall_table_32_o32 := 32_o32 58 - systbl_offset_syscall_table_32_o32 := 4000 59 - $(kapi)/syscall_table_32_o32.h: $(syscallo32) $(systbl) FORCE 60 + $(kapi)/syscall_table_n32.h: $(syscalln32) $(systbl) FORCE 60 61 $(call if_changed,systbl) 61 62 62 - systbl_abi_syscall_table_64_n32 := 64_n32 63 - systbl_offset_syscall_table_64_n32 := 6000 64 - $(kapi)/syscall_table_64_n32.h: $(syscalln32) $(systbl) FORCE 63 + $(kapi)/syscall_table_n64.h: $(syscalln64) $(systbl) FORCE 65 64 $(call if_changed,systbl) 66 65 67 - systbl_abi_syscall_table_64_n64 := 64_n64 68 - systbl_offset_syscall_table_64_n64 := 5000 69 - $(kapi)/syscall_table_64_n64.h: $(syscalln64) $(systbl) FORCE 70 - $(call if_changed,systbl) 71 - 72 - systbl_abi_syscall_table_64_o32 := 64_o32 73 - systbl_offset_syscall_table_64_o32 := 4000 74 - $(kapi)/syscall_table_64_o32.h: $(syscallo32) $(systbl) FORCE 66 + $(kapi)/syscall_table_o32.h: $(syscallo32) $(systbl) FORCE 75 67 $(call if_changed,systbl) 76 68 77 69 uapisyshdr-y += unistd_n32.h \ 78 70 unistd_n64.h \ 79 71 unistd_o32.h 80 - kapisyshdr-y += syscall_table_32_o32.h \ 81 - syscall_table_64_n32.h \ 82 - syscall_table_64_n64.h \ 83 - syscall_table_64_o32.h \ 72 + kapisyshdr-y += syscall_table_n32.h \ 73 + syscall_table_n64.h \ 74 + syscall_table_o32.h \ 84 75 unistd_nr_n32.h \ 85 76 unistd_nr_n64.h \ 86 77 unistd_nr_o32.h
-36
arch/mips/kernel/syscalls/syscalltbl.sh
··· 1 - #!/bin/sh 2 - # SPDX-License-Identifier: GPL-2.0 3 - 4 - in="$1" 5 - out="$2" 6 - my_abis=`echo "($3)" | tr ',' '|'` 7 - my_abi="$4" 8 - offset="$5" 9 - 10 - emit() { 11 - t_nxt="$1" 12 - t_nr="$2" 13 - t_entry="$3" 14 - 15 - while [ $t_nxt -lt $t_nr ]; do 16 - printf "__SYSCALL(%s,sys_ni_syscall)\n" "${t_nxt}" 17 - t_nxt=$((t_nxt+1)) 18 - done 19 - printf "__SYSCALL(%s,%s)\n" "${t_nxt}" "${t_entry}" 20 - } 21 - 22 - grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | ( 23 - nxt=0 24 - if [ -z "$offset" ]; then 25 - offset=0 26 - fi 27 - 28 - while read nr abi name entry compat ; do 29 - if [ "$my_abi" = "64_o32" ] && [ ! -z "$compat" ]; then 30 - emit $((nxt+offset)) $((nr+offset)) $compat 31 - else 32 - emit $((nxt+offset)) $((nr+offset)) $entry 33 - fi 34 - nxt=$((nr+1)) 35 - done 36 - ) > "$out"