Skip to contentSkip to conversation

mips: syscalls: define syscall offsets directly in <asm/unistd.h>

PATCH Applied Masahiro Yamada 3 participants 5 messages May 28, 2021 – Jun 1, 2021 MIPS

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 mips: syscalls: define syscall offsets directly in <asm/unistd.h>

There is no good reason to generate the syscall offset macros by scripting since they are not derived from the syscall tables.

Define __NR_*_Linux macros directly in arch/mips/include/asm/unistd.h, and clean up the Makefile and the shell script.

---

 arch/mips/include/asm/unistd.h         | 4 ++++
 arch/mips/kernel/syscalls/Makefile     | 6 +-----
 arch/mips/kernel/syscalls/syscallnr.sh | 2 --
 3 files changed, 5 insertions(+), 7 deletions(-)
arch/mips/include/asm/unistd.h +4 -0
index 5d70babfc9ee..c2196b1b6604 100644
@@ -17,6 +17,10 @@
 #include <asm/unistd_nr_n64.h>
 #include <asm/unistd_nr_o32.h>
 
+#define __NR_N32_Linux	6000
+#define __NR_64_Linux	5000
+#define __NR_O32_Linux	4000
+
 #ifdef CONFIG_MIPS32_N32
 #define NR_syscalls  (__NR_N32_Linux + __NR_N32_Linux_syscalls)
 #elif defined(CONFIG_64BIT)
arch/mips/kernel/syscalls/Makefile +1 -5
index 904452992992..6eee6a3b85df 100644
@@ -18,8 +18,7 @@ quiet_cmd_syshdr = SYSHDR  $@
 quiet_cmd_sysnr = SYSNR   $@
       cmd_sysnr = $(CONFIG_SHELL) '$(sysnr)' '$<' '$@'		\
 		  '$(sysnr_abis_$(basetarget))'			\
-		  '$(sysnr_pfx_$(basetarget))'			\
-		  '$(sysnr_offset_$(basetarget))'
+		  '$(sysnr_pfx_$(basetarget))'
 
 quiet_cmd_systbl = SYSTBL  $@
       cmd_systbl = $(CONFIG_SHELL) $(systbl) $< $@
@@ -34,17 +33,14 @@ $(uapi)/unistd_o32.h: $(syscallo32) $(syshdr) FORCE
 	$(call if_changed,syshdr)
 
 sysnr_pfx_unistd_nr_n32 := N32
-sysnr_offset_unistd_nr_n32 := 6000
 $(kapi)/unistd_nr_n32.h: $(syscalln32) $(sysnr) FORCE
 	$(call if_changed,sysnr)
 
 sysnr_pfx_unistd_nr_n64 := 64
-sysnr_offset_unistd_nr_n64 := 5000
 $(kapi)/unistd_nr_n64.h: $(syscalln64) $(sysnr) FORCE
 	$(call if_changed,sysnr)
 
 sysnr_pfx_unistd_nr_o32 := O32
-sysnr_offset_unistd_nr_o32 := 4000
 $(kapi)/unistd_nr_o32.h: $(syscallo32) $(sysnr) FORCE
 	$(call if_changed,sysnr)
 
arch/mips/kernel/syscalls/syscallnr.sh +0 -2
index 60bbdb3fe03a..c190bbefbfc2 100644
@@ -5,7 +5,6 @@ in="$1"
 out="$2"
 my_abis=`echo "($3)" | tr ',' '|'`
 prefix="$4"
-offset="$5"
 
 fileguard=_UAPI_ASM_MIPS_`basename "$out" | sed \
 	-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
@@ -20,7 +19,6 @@ grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
 		nxt=$((nr+1))
 	done
 
-	printf "#define __NR_%s_Linux\t%s\n" "${prefix}" "${offset}"
 	printf "#define __NR_%s_Linux_syscalls\t%s\n" "${prefix}" "${nxt}"
 	printf "\n"
 	printf "#endif /* %s */" "${fileguard}"
Signature · 1 line
2.27.0
#1 lore raw

PATCH 2/2 mips: syscalls: use pattern rules to generate syscall headers

Use pattern rules to unify similar build rules among n32, n64, and o32.

---

 arch/mips/kernel/syscalls/Makefile | 28 ++++------------------------
 1 file changed, 4 insertions(+), 24 deletions(-)
arch/mips/kernel/syscalls/Makefile +4 -24
index 6eee6a3b85df..10bf90dc02c0 100644
@@ -5,9 +5,6 @@ uapi := arch/$(SRCARCH)/include/generated/uapi/asm
 _dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)')	\
 	  $(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)')
 
-syscalln32 := $(src)/syscall_n32.tbl
-syscalln64 := $(src)/syscall_n64.tbl
-syscallo32 := $(src)/syscall_o32.tbl
 syshdr := $(srctree)/scripts/syscallhdr.sh
 sysnr := $(srctree)/$(src)/syscallnr.sh
 systbl := $(srctree)/scripts/syscalltbl.sh
@@ -23,34 +20,17 @@ quiet_cmd_sysnr = SYSNR   $@
 quiet_cmd_systbl = SYSTBL  $@
       cmd_systbl = $(CONFIG_SHELL) $(systbl) $< $@
 
-$(uapi)/unistd_n32.h: $(syscalln32) $(syshdr) FORCE
-	$(call if_changed,syshdr)
-
-$(uapi)/unistd_n64.h: $(syscalln64) $(syshdr) FORCE
-	$(call if_changed,syshdr)
-
-$(uapi)/unistd_o32.h: $(syscallo32) $(syshdr) FORCE
+$(uapi)/unistd_%.h: $(src)/syscall_%.tbl $(syshdr) FORCE
 	$(call if_changed,syshdr)
 
 sysnr_pfx_unistd_nr_n32 := N32
-$(kapi)/unistd_nr_n32.h: $(syscalln32) $(sysnr) FORCE
-	$(call if_changed,sysnr)
-
 sysnr_pfx_unistd_nr_n64 := 64
-$(kapi)/unistd_nr_n64.h: $(syscalln64) $(sysnr) FORCE
-	$(call if_changed,sysnr)
-
 sysnr_pfx_unistd_nr_o32 := O32
-$(kapi)/unistd_nr_o32.h: $(syscallo32) $(sysnr) FORCE
-	$(call if_changed,sysnr)
-
-$(kapi)/syscall_table_n32.h: $(syscalln32) $(systbl) FORCE
-	$(call if_changed,systbl)
 
-$(kapi)/syscall_table_n64.h: $(syscalln64) $(systbl) FORCE
-	$(call if_changed,systbl)
+$(kapi)/unistd_nr_%.h: $(src)/syscall_%.tbl $(sysnr) FORCE
+	$(call if_changed,sysnr)
 
-$(kapi)/syscall_table_o32.h: $(syscallo32) $(systbl) FORCE
+$(kapi)/syscall_table_%.h: $(src)/syscall_%.tbl $(systbl) FORCE
 	$(call if_changed,systbl)
 
 uapisyshdr-y		+= unistd_n32.h			\
Signature · 1 line
2.27.0
maintainer Applied
#2 lore raw

Re: [PATCH 2/2] mips: syscalls: use pattern rules to generate syscall headers

Quoted 7 lines · Masahiro Yamada

Use pattern rules to unify similar build rules among n32, n64, and o32.

---

 arch/mips/kernel/syscalls/Makefile | 28 ++++------------------------
 1 file changed, 4 insertions(+), 24 deletions(-)

applied to mips-next.

Thomas.

Signature · 2 lines
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea.                                                [ RFC1925, 2.3 ]
Reviewed-by on v1 1/2
#3 lore raw
In reply to Masahiro Yamada
Quoted 7 lines · Masahiro Yamada

There is no good reason to generate the syscall offset macros by scripting since they are not derived from the syscall tables.

Define __NR_*_Linux macros directly in arch/mips/include/asm/unistd.h, and clean up the Makefile and the shell script.

Quoted 7 lines

---

 arch/mips/include/asm/unistd.h         | 4 ++++
 arch/mips/kernel/syscalls/Makefile     | 6 +-----
 arch/mips/kernel/syscalls/syscallnr.sh | 2 --
 3 files changed, 5 insertions(+), 7 deletions(-)
maintainer Applied
#4 lore raw
In reply to Masahiro Yamada
Quoted 6 lines · Masahiro Yamada

There is no good reason to generate the syscall offset macros by scripting since they are not derived from the syscall tables.

Define __NR_*_Linux macros directly in arch/mips/include/asm/unistd.h, and clean up the Makefile and the shell script.

Quoted 7 lines

---

 arch/mips/include/asm/unistd.h         | 4 ++++
 arch/mips/kernel/syscalls/Makefile     | 6 +-----
 arch/mips/kernel/syscalls/syscallnr.sh | 2 --
 3 files changed, 5 insertions(+), 7 deletions(-)

applied to mips-next.

Thomas.

Signature · 2 lines
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea.                                                [ RFC1925, 2.3 ]