Re: [PATCH v7 0/5] parisc: system call table generation support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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"




[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux