Hi Firoz, > On Fri, 16 Nov 2018 at 01:01, Helge Deller <deller@xxxxxx> wrote: > > > > On 14.11.2018 07:34, Firoz Khan wrote: > > > The purpose of this patch series is, we can easily > > > add/modify/delete system call table support by cha- > > > nging entry in syscall.tbl file instead of manually > > > changing many files. The other goal is to unify the > > > system call table generation support implementation > > > across all the architectures. > > > > > > The system call tables are in different format in > > > all architecture. It will be difficult to manually > > > add, modify or delete the system calls in the resp- > > > ective files manually. To make it easy by keeping a > > > script and which'll generate uapi header file and > > > syscall table file. > > > > > > syscall.tbl contains the list of available system > > > calls along with system call number and correspond- > > > ing entry point. Add a new system call in this arch- > > > itecture will be possible by adding new entry in the > > > syscall.tbl file. > > > > > > Adding a new table entry consisting of: > > > - System call number. > > > - ABI. > > > - System call name. > > > - Entry point name. > > > > > > .... > > > Firoz Khan (5): > > > parisc: move __IGNORE* entries to non uapi header > > > parisc: add __NR_syscalls along with __NR_Linux_syscalls > > > parisc: add system call table generation support > > > parisc: generate uapi header and system call table files > > > parisc: syscalls: ignore nfsservctl for other architectures > > > > Firoz, you may add > > Acked-by: Helge Deller <deller@xxxxxx> > > to the whole parisc series. > > Sure, will do. > I'm on a vacation right now. will send mid next week. That's ok, there is no urgency. Actually, I noticed that the generated files unistd_32.h and unistd_64.h do have the same contents, since on parisc we keep the syscall numbers the same for 32- and 64-bit. With that in mind, we can simply generate on unistd.h file for both variants. Additionally, in the past we had __NR_Linux defined (as 0) because we initially wanted to support HP-UX syscalls as well, with NR_Linux being an offset. The idea to support HP-UX is long gone, so there is no need to keep that define. My patch below is on top of your series and cleans up both items mentioned above. I suggest you fold it into your patch series before sending the next version. Thanks, Helge > > > arch/parisc/Makefile | 3 + > > > arch/parisc/include/asm/Kbuild | 3 + > > > arch/parisc/include/asm/unistd.h | 8 + > > > arch/parisc/include/uapi/asm/Kbuild | 2 + > > > arch/parisc/include/uapi/asm/unistd.h | 382 +------------------------ > > > arch/parisc/kernel/syscall.S | 11 +- > > > arch/parisc/kernel/syscall_table.S | 459 ------------------------------ > > > arch/parisc/kernel/syscalls/Makefile | 57 ++++ > > > arch/parisc/kernel/syscalls/syscall.tbl | 369 ++++++++++++++++++++++++ > > > arch/parisc/kernel/syscalls/syscallhdr.sh | 36 +++ > > > arch/parisc/kernel/syscalls/syscalltbl.sh | 36 +++ > > > scripts/checksyscalls.sh | 1 + > > > 12 files changed, 531 insertions(+), 836 deletions(-) diff --git a/arch/parisc/include/uapi/asm/Kbuild b/arch/parisc/include/uapi/asm/Kbuild index d31b4261cafc..8fdc63ea83ee 100644 --- a/arch/parisc/include/uapi/asm/Kbuild +++ b/arch/parisc/include/uapi/asm/Kbuild @@ -1,8 +1,7 @@ # UAPI Header export list include include/uapi/asm-generic/Kbuild.asm -generated-y += unistd_32.h -generated-y += unistd_64.h +generated-y += unistd.h generic-y += auxvec.h generic-y += bpf_perf_event.h generic-y += kvm_para.h diff --git a/arch/parisc/include/uapi/asm/unistd.h b/arch/parisc/include/uapi/asm/unistd.h deleted file mode 100644 index 6e31f58ad6b5..000000000000 --- a/arch/parisc/include/uapi/asm/unistd.h +++ /dev/null @@ -1,14 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -#ifndef _UAPI_ASM_PARISC_UNISTD_H_ -#define _UAPI_ASM_PARISC_UNISTD_H_ - -#define __NR_Linux 0 -#ifdef __LP64__ -#include <asm/unistd_64.h> -#else -#include <asm/unistd_32.h> -#endif - -#define LINUX_GATEWAY_ADDR 0x100 - -#endif /* _UAPI_ASM_PARISC_UNISTD_H_ */ diff --git a/arch/parisc/kernel/syscalls/Makefile b/arch/parisc/kernel/syscalls/Makefile index defa8878f6d2..f938acd26145 100644 --- a/arch/parisc/kernel/syscalls/Makefile +++ b/arch/parisc/kernel/syscalls/Makefile @@ -12,23 +12,15 @@ systbl := $(srctree)/$(src)/syscalltbl.sh quiet_cmd_syshdr = SYSHDR $@ cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@' \ '$(syshdr_abis_$(basetarget))' \ - '$(syshdr_pfx_$(basetarget))' \ - '$(syshdr_offset_$(basetarget))' + '$(syshdr_pfx_$(basetarget))' quiet_cmd_systbl = SYSTBL $@ cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@' \ '$(systbl_abis_$(basetarget))' \ - '$(systbl_abi_$(basetarget))' \ - '$(systbl_offset_$(basetarget))' + '$(systbl_abi_$(basetarget))' syshdr_abis_unistd_32 := common,32 -syshdr_offset_unistd_32 := __NR_Linux -$(uapi)/unistd_32.h: $(syscall) $(syshdr) - $(call if_changed,syshdr) - -syshdr_abis_unistd_64 := common,64 -syshdr_offset_unistd_64 := __NR_Linux -$(uapi)/unistd_64.h: $(syscall) $(syshdr) +$(uapi)/unistd.h: $(syscall) $(syshdr) $(call if_changed,syshdr) systbl_abis_syscall_table_32 := common,32 @@ -44,7 +36,7 @@ systbl_abi_syscall_table_c32 := c32 $(kapi)/syscall_table_c32.h: $(syscall) $(systbl) $(call if_changed,systbl) -uapisyshdr-y += unistd_32.h unistd_64.h +uapisyshdr-y += unistd.h kapisyshdr-y += syscall_table_32.h \ syscall_table_64.h \ syscall_table_c32.h diff --git a/arch/parisc/kernel/syscalls/syscallhdr.sh b/arch/parisc/kernel/syscalls/syscallhdr.sh index 50242b747d7c..2305707898aa 100644 --- a/arch/parisc/kernel/syscalls/syscallhdr.sh +++ b/arch/parisc/kernel/syscalls/syscallhdr.sh @@ -5,7 +5,6 @@ in="$1" out="$2" my_abis=`echo "($3)" | tr ',' '|'` prefix="$4" -offset="$5" fileguard=_UAPI_ASM_PARISC_`basename "$out" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ @@ -17,13 +16,8 @@ grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | ( nxt=0 while read nr abi name entry compat ; do - if [ -z "$offset" ]; then - printf "#define __NR_%s%s\t%s\n" \ - "${prefix}" "${name}" "${nr}" - else - printf "#define __NR_%s%s\t(%s + %s)\n" \ - "${prefix}" "${name}" "${offset}" "${nr}" - fi + printf "#define __NR_%s%s\t%s\n" \ + "${prefix}" "${name}" "${nr}" nxt=$((nr+1)) done @@ -32,5 +26,7 @@ grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | ( printf "#define __NR_syscalls\t%s\n" "${nxt}" printf "#endif\n" printf "\n" + printf "#define LINUX_GATEWAY_ADDR\t0x100\n" + printf "\n" printf "#endif /* %s */" "${fileguard}" ) > "$out" diff --git a/arch/parisc/kernel/syscalls/syscalltbl.sh b/arch/parisc/kernel/syscalls/syscalltbl.sh index 45b5bae26240..7627f2d77f61 100644 --- a/arch/parisc/kernel/syscalls/syscalltbl.sh +++ b/arch/parisc/kernel/syscalls/syscalltbl.sh @@ -5,7 +5,7 @@ in="$1" out="$2" my_abis=`echo "($3)" | tr ',' '|'` my_abi="$4" -offset="$5" +offset="" emit() { t_nxt="$1"