linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] System call table generation support
@ 2018-08-09  5:27 Firoz Khan
  2018-08-09  5:27 ` Firoz Khan
                   ` (3 more replies)
  0 siblings, 4 replies; 26+ messages in thread
From: Firoz Khan @ 2018-08-09  5:27 UTC (permalink / raw)
  To: Michal Simek, Greg Kroah-Hartman, Philippe Ombredanne,
	Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel,
	marcin.juszkiewicz, firoz.khan

The purpose of this patch series is:
1. We can easily add/modify/delete system call by changing entry 
in syscall.tbl file. No need to manually edit many files.

2. It is easy to unify the system call implementation across all 
the architectures. 

The system call tables are in different format in all architecture 
and it will be difficult to manually add or modify the system calls
manually in the respective files. To make it easy by keeping a script 
and which'll generate the header file and syscall table file so this 
change will unify the implementation across all architectures.

syscall.tbl contains the list of available system calls along with 
system call number and corresponding entry point. Add a new system 
call in this architecture 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.

ARM, s390 and x86 architecuture does exist the similar support. I 
leverage their implementation to come up with a generic solution.

I have done the same support for work for alpha, ia64,m68k, mips,
parisc, powerpc, sh, sparc, and xtensa. But I started sending 
the patch for one architecuture for review. Below mentioned git
repository contains more details.
Git repo:- https://github.com/frzkhn/system_call_table_generator/

Finally, this is the ground work for solving the Y2038 issue. We 
need to add/change two dozen of system calls to solve Y2038 issue. 
So this patch series will help to easily modify from existing 
system call to Y2038 compatible system calls.

I started working system call table generation on 4.17-rc1. I used 
marcin's script - https://github.com/hrw/syscalls-table to generate 
the syscall.tbl file. And this will be the input to the system call 
table generation script. But there are couple system call got add 
in the latest rc release. If run Marcin's script on latest release,
it will generate a different syscall.tbl. But I still use the old 
file - syscall.tbl and once all review got over I'll update 
syscall.tbl alone w.r.to the tip of the kernel. The impact of this
is, few of the system call won't work.

Firoz Khan (3):
  microblaze: Replace NR_syscalls macro from asm/unistd.h
  microblaze: Added system call table generation support
  microblaze: uapi header and system call table file generation

 arch/microblaze/Makefile                      |   3 +
 arch/microblaze/include/asm/Kbuild            |   2 +
 arch/microblaze/include/asm/unistd.h          |   2 -
 arch/microblaze/include/uapi/asm/Kbuild       |   2 +
 arch/microblaze/include/uapi/asm/unistd.h     | 407 +-------------------------
 arch/microblaze/kernel/syscall_table.S        | 406 +------------------------
 arch/microblaze/kernel/syscalls/Makefile      |  37 +++
 arch/microblaze/kernel/syscalls/syscall.tbl   | 404 +++++++++++++++++++++++++
 arch/microblaze/kernel/syscalls/syscallhdr.sh |  33 +++
 arch/microblaze/kernel/syscalls/syscalltbl.sh |  28 ++
 10 files changed, 514 insertions(+), 810 deletions(-)
 create mode 100644 arch/microblaze/kernel/syscalls/Makefile
 create mode 100644 arch/microblaze/kernel/syscalls/syscall.tbl
 create mode 100644 arch/microblaze/kernel/syscalls/syscallhdr.sh
 create mode 100644 arch/microblaze/kernel/syscalls/syscalltbl.sh

-- 
1.9.1

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 0/3] System call table generation support
  2018-08-09  5:27 [PATCH 0/3] System call table generation support Firoz Khan
@ 2018-08-09  5:27 ` Firoz Khan
  2018-08-09  5:27 ` [PATCH 1/3] microblaze: Replace NR_syscalls macro from asm/unistd.h Firoz Khan
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 26+ messages in thread
From: Firoz Khan @ 2018-08-09  5:27 UTC (permalink / raw)
  To: Michal Simek, Greg Kroah-Hartman, Philippe Ombredanne,
	Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel,
	marcin.juszkiewicz, firoz.khan

The purpose of this patch series is:
1. We can easily add/modify/delete system call by changing entry 
in syscall.tbl file. No need to manually edit many files.

2. It is easy to unify the system call implementation across all 
the architectures. 

The system call tables are in different format in all architecture 
and it will be difficult to manually add or modify the system calls
manually in the respective files. To make it easy by keeping a script 
and which'll generate the header file and syscall table file so this 
change will unify the implementation across all architectures.

syscall.tbl contains the list of available system calls along with 
system call number and corresponding entry point. Add a new system 
call in this architecture 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.

ARM, s390 and x86 architecuture does exist the similar support. I 
leverage their implementation to come up with a generic solution.

I have done the same support for work for alpha, ia64,m68k, mips,
parisc, powerpc, sh, sparc, and xtensa. But I started sending 
the patch for one architecuture for review. Below mentioned git
repository contains more details.
Git repo:- https://github.com/frzkhn/system_call_table_generator/

Finally, this is the ground work for solving the Y2038 issue. We 
need to add/change two dozen of system calls to solve Y2038 issue. 
So this patch series will help to easily modify from existing 
system call to Y2038 compatible system calls.

I started working system call table generation on 4.17-rc1. I used 
marcin's script - https://github.com/hrw/syscalls-table to generate 
the syscall.tbl file. And this will be the input to the system call 
table generation script. But there are couple system call got add 
in the latest rc release. If run Marcin's script on latest release,
it will generate a different syscall.tbl. But I still use the old 
file - syscall.tbl and once all review got over I'll update 
syscall.tbl alone w.r.to the tip of the kernel. The impact of this
is, few of the system call won't work.

Firoz Khan (3):
  microblaze: Replace NR_syscalls macro from asm/unistd.h
  microblaze: Added system call table generation support
  microblaze: uapi header and system call table file generation

 arch/microblaze/Makefile                      |   3 +
 arch/microblaze/include/asm/Kbuild            |   2 +
 arch/microblaze/include/asm/unistd.h          |   2 -
 arch/microblaze/include/uapi/asm/Kbuild       |   2 +
 arch/microblaze/include/uapi/asm/unistd.h     | 407 +-------------------------
 arch/microblaze/kernel/syscall_table.S        | 406 +------------------------
 arch/microblaze/kernel/syscalls/Makefile      |  37 +++
 arch/microblaze/kernel/syscalls/syscall.tbl   | 404 +++++++++++++++++++++++++
 arch/microblaze/kernel/syscalls/syscallhdr.sh |  33 +++
 arch/microblaze/kernel/syscalls/syscalltbl.sh |  28 ++
 10 files changed, 514 insertions(+), 810 deletions(-)
 create mode 100644 arch/microblaze/kernel/syscalls/Makefile
 create mode 100644 arch/microblaze/kernel/syscalls/syscall.tbl
 create mode 100644 arch/microblaze/kernel/syscalls/syscallhdr.sh
 create mode 100644 arch/microblaze/kernel/syscalls/syscalltbl.sh

-- 
1.9.1

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 1/3] microblaze: Replace NR_syscalls macro from asm/unistd.h
  2018-08-09  5:27 [PATCH 0/3] System call table generation support Firoz Khan
  2018-08-09  5:27 ` Firoz Khan
@ 2018-08-09  5:27 ` Firoz Khan
  2018-08-09  5:27   ` Firoz Khan
  2018-08-09  6:48   ` Michal Simek
  2018-08-09  5:27 ` [PATCH 2/3] microblaze: Added system call table generation support Firoz Khan
  2018-08-09  5:27 ` [PATCH 3/3] microblaze: uapi header and system call table file generation Firoz Khan
  3 siblings, 2 replies; 26+ messages in thread
From: Firoz Khan @ 2018-08-09  5:27 UTC (permalink / raw)
  To: Michal Simek, Greg Kroah-Hartman, Philippe Ombredanne,
	Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel,
	marcin.juszkiewicz, firoz.khan

__NR_syscalls macro holds the number of system call exist in this
architecture. This macro is currently the part of asm/unistd.h file.
We have change the value of __NR_syscalls, if we add or delete a
system call.

One of the patch in this patch series has a script which will
generate a uapi header based on syscall.tbl file. The syscall.tbl
file contains the number of system call information. So we have
two option to update __NR_syscalls value.

1. Update __NR_syscalls in asm/unistd.h manually by counting the
   no.of system calls. No need to update __NR_syscalls untill
   we either add a new system call or delete an existing system
   call.

2. We can keep this feature it above mentioned script, that'll
   count the number of syscalls and keep it in a generated file.
   In this case we don't need to explicitly update __NR_syscalls
   in asm/unistd.h file.

The 2nd option will be the recommended one. For that, I moved the
NR_syscalls macro from asm/unistd.h to uapi/asm/unistd.h. The macro
name also changed form NR_syscalls to __NR_syscalls for making the
name convention same across all architecture. While __NR_syscalls
isn't strictly part of the uapi, having it as part of the generated
header to simplifies the implementation.

Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
---
 arch/microblaze/include/asm/unistd.h      | 2 --
 arch/microblaze/include/uapi/asm/unistd.h | 2 ++
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/microblaze/include/asm/unistd.h b/arch/microblaze/include/asm/unistd.h
index a62d094..e19550f 100644
--- a/arch/microblaze/include/asm/unistd.h
+++ b/arch/microblaze/include/asm/unistd.h
@@ -38,6 +38,4 @@
 
 #endif /* __ASSEMBLY__ */
 
-#define __NR_syscalls         401
-
 #endif /* _ASM_MICROBLAZE_UNISTD_H */
diff --git a/arch/microblaze/include/uapi/asm/unistd.h b/arch/microblaze/include/uapi/asm/unistd.h
index 7a9f16a..bde6b38 100644
--- a/arch/microblaze/include/uapi/asm/unistd.h
+++ b/arch/microblaze/include/uapi/asm/unistd.h
@@ -418,4 +418,6 @@
 #define __NR_io_pgetevents	399
 #define __NR_rseq		400
 
+#define __NR_syscalls         401
+
 #endif /* _UAPI_ASM_MICROBLAZE_UNISTD_H */
-- 
1.9.1

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 1/3] microblaze: Replace NR_syscalls macro from asm/unistd.h
  2018-08-09  5:27 ` [PATCH 1/3] microblaze: Replace NR_syscalls macro from asm/unistd.h Firoz Khan
@ 2018-08-09  5:27   ` Firoz Khan
  2018-08-09  6:48   ` Michal Simek
  1 sibling, 0 replies; 26+ messages in thread
From: Firoz Khan @ 2018-08-09  5:27 UTC (permalink / raw)
  To: Michal Simek, Greg Kroah-Hartman, Philippe Ombredanne,
	Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel,
	marcin.juszkiewicz, firoz.khan

__NR_syscalls macro holds the number of system call exist in this
architecture. This macro is currently the part of asm/unistd.h file.
We have change the value of __NR_syscalls, if we add or delete a
system call.

One of the patch in this patch series has a script which will
generate a uapi header based on syscall.tbl file. The syscall.tbl
file contains the number of system call information. So we have
two option to update __NR_syscalls value.

1. Update __NR_syscalls in asm/unistd.h manually by counting the
   no.of system calls. No need to update __NR_syscalls untill
   we either add a new system call or delete an existing system
   call.

2. We can keep this feature it above mentioned script, that'll
   count the number of syscalls and keep it in a generated file.
   In this case we don't need to explicitly update __NR_syscalls
   in asm/unistd.h file.

The 2nd option will be the recommended one. For that, I moved the
NR_syscalls macro from asm/unistd.h to uapi/asm/unistd.h. The macro
name also changed form NR_syscalls to __NR_syscalls for making the
name convention same across all architecture. While __NR_syscalls
isn't strictly part of the uapi, having it as part of the generated
header to simplifies the implementation.

Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
---
 arch/microblaze/include/asm/unistd.h      | 2 --
 arch/microblaze/include/uapi/asm/unistd.h | 2 ++
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/microblaze/include/asm/unistd.h b/arch/microblaze/include/asm/unistd.h
index a62d094..e19550f 100644
--- a/arch/microblaze/include/asm/unistd.h
+++ b/arch/microblaze/include/asm/unistd.h
@@ -38,6 +38,4 @@
 
 #endif /* __ASSEMBLY__ */
 
-#define __NR_syscalls         401
-
 #endif /* _ASM_MICROBLAZE_UNISTD_H */
diff --git a/arch/microblaze/include/uapi/asm/unistd.h b/arch/microblaze/include/uapi/asm/unistd.h
index 7a9f16a..bde6b38 100644
--- a/arch/microblaze/include/uapi/asm/unistd.h
+++ b/arch/microblaze/include/uapi/asm/unistd.h
@@ -418,4 +418,6 @@
 #define __NR_io_pgetevents	399
 #define __NR_rseq		400
 
+#define __NR_syscalls         401
+
 #endif /* _UAPI_ASM_MICROBLAZE_UNISTD_H */
-- 
1.9.1

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 2/3] microblaze: Added system call table generation support
  2018-08-09  5:27 [PATCH 0/3] System call table generation support Firoz Khan
  2018-08-09  5:27 ` Firoz Khan
  2018-08-09  5:27 ` [PATCH 1/3] microblaze: Replace NR_syscalls macro from asm/unistd.h Firoz Khan
@ 2018-08-09  5:27 ` Firoz Khan
  2018-08-09  5:27   ` Firoz Khan
  2018-08-09  7:05   ` Michal Simek
  2018-08-09  5:27 ` [PATCH 3/3] microblaze: uapi header and system call table file generation Firoz Khan
  3 siblings, 2 replies; 26+ messages in thread
From: Firoz Khan @ 2018-08-09  5:27 UTC (permalink / raw)
  To: Michal Simek, Greg Kroah-Hartman, Philippe Ombredanne,
	Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel,
	marcin.juszkiewicz, firoz.khan

The system call tables are in different format in all
architecture and it will be difficult to manually add or
modify the system calls in the respective files. To make
it easy by keeping a script and which'll generate the
header file and syscall table file so this change will
unify them across all architectures.

The system call table generation script is added in
syscalls directory which contain the script to generate
both uapi header file system call table generation file
and syscall.tbl file which'll be the input for the scripts.

syscall.tbl contains the list of available system calls
along with system call number and corresponding entry point.
Add a new system call in this architecture 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.

syscallhdr.sh and syscalltbl.sh will generate uapi header-
unistd.h and syscall_table.h files respectively. File
syscall_table.h is included by syscall.S - the real system
call table. Both .sh files will parse the content syscall.tbl
to generate the header and table files.

ARM, s390 and x86 architecuture does have the similar support.
I leverage their implementation to come up with a generic
solution. And this is the ground work for y2038 issue. We need
to change 52 system call implementation and this work will
reduce the effort by simply modify 52 entries in syscall.tbl.

Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
---
 arch/microblaze/kernel/syscalls/Makefile      |  37 +++
 arch/microblaze/kernel/syscalls/syscall.tbl   | 404 ++++++++++++++++++++++++++
 arch/microblaze/kernel/syscalls/syscallhdr.sh |  33 +++
 arch/microblaze/kernel/syscalls/syscalltbl.sh |  28 ++
 4 files changed, 502 insertions(+)
 create mode 100644 arch/microblaze/kernel/syscalls/Makefile
 create mode 100644 arch/microblaze/kernel/syscalls/syscall.tbl
 create mode 100644 arch/microblaze/kernel/syscalls/syscallhdr.sh
 create mode 100644 arch/microblaze/kernel/syscalls/syscalltbl.sh

diff --git a/arch/microblaze/kernel/syscalls/Makefile b/arch/microblaze/kernel/syscalls/Makefile
new file mode 100644
index 0000000..7624044
--- /dev/null
+++ b/arch/microblaze/kernel/syscalls/Makefile
@@ -0,0 +1,37 @@
+# SPDX-License-Identifier: GPL-2.0
+out := arch/$(SRCARCH)/include/generated/asm
+uapi := arch/$(SRCARCH)/include/generated/uapi/asm
+
+_dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') \
+	  $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
+
+syscall := $(srctree)/$(src)/syscall.tbl
+
+syshdr := $(srctree)/$(src)/syscallhdr.sh
+systbl := $(srctree)/$(src)/syscalltbl.sh
+
+quiet_cmd_syshdr = SYSHDR  $@
+      cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@'  \
+		   '$(syshdr_abi_$(basetarget))'          \
+		   '$(syshdr_pfx_$(basetarget))'          \
+		   '$(syshdr_offset_$(basetarget))'
+
+quiet_cmd_systbl = SYSTBL  $@
+      cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@'  \
+		   '$(systbl_abi_$(basetarget))'
+
+$(uapi)/unistd_32.h: $(syscall) $(syshdr)
+	$(call if_changed,syshdr)
+
+$(out)/syscall_table.h: $(syscall) $(systbl)
+	$(call if_changed,systbl)
+
+uapisyshdr-y			+= unistd_32.h
+syshdr-y			+= syscall_table.h
+
+targets	+= $(uapisyshdr-y) $(syshdr-y)
+
+PHONY += all
+all: $(addprefix $(uapi)/,$(uapisyshdr-y))
+all: $(addprefix $(out)/,$(syshdr-y))
+	@:
diff --git a/arch/microblaze/kernel/syscalls/syscall.tbl b/arch/microblaze/kernel/syscalls/syscall.tbl
new file mode 100644
index 0000000..219d940
--- /dev/null
+++ b/arch/microblaze/kernel/syscalls/syscall.tbl
@@ -0,0 +1,404 @@
+#
+# Linux system call numbers and entry vectors
+#
+# The format is:
+# <number> <abi> <name> <entry point>
+#
+# The abi is always common for this file.
+#
+0       common  restart_syscall                 sys_restart_syscall
+1       common  exit                            sys_exit
+2       common  fork                            sys_fork
+3       common  read                            sys_read
+4       common  write                           sys_write
+5       common  open                            sys_open
+6       common  close                           sys_close
+7       common  waitpid                         sys_waitpid
+8       common  creat                           sys_creat
+9       common  link                            sys_link
+10      common  unlink                          sys_unlink
+11      common  execve                          sys_execve
+12      common  chdir                           sys_chdir
+13      common  time                            sys_time
+14      common  mknod                           sys_mknod
+15      common  chmod                           sys_chmod
+16      common  lchown                          sys_lchown
+17      common  break                           sys_ni_syscall
+18      common  oldstat                         sys_ni_syscall
+19      common  lseek                           sys_lseek
+20      common  getpid                          sys_getpid
+21      common  mount                           sys_mount
+22      common  umount                          sys_oldumount
+23      common  setuid                          sys_setuid
+24      common  getuid                          sys_getuid
+25      common  stime                           sys_stime
+26      common  ptrace                          sys_ptrace
+27      common  alarm                           sys_alarm
+28      common  oldfstat                        sys_ni_syscall
+29      common  pause                           sys_pause
+30      common  utime                           sys_utime
+31      common  stty                            sys_ni_syscall
+32      common  gtty                            sys_ni_syscall
+33      common  access                          sys_access
+34      common  nice                            sys_nice
+35      common  ftime                           sys_ni_syscall
+36      common  sync                            sys_sync
+37      common  kill                            sys_kill
+38      common  rename                          sys_rename
+39      common  mkdir                           sys_mkdir
+40      common  rmdir                           sys_rmdir
+41      common  dup                             sys_dup
+42      common  pipe                            sys_pipe
+43      common  times                           sys_times
+44      common  prof                            sys_ni_syscall
+45      common  brk                             sys_brk
+46      common  setgid                          sys_setgid
+47      common  getgid                          sys_getgid
+48      common  signal                          sys_signal
+49      common  geteuid                         sys_geteuid
+50      common  getegid                         sys_getegid
+51      common  acct                            sys_acct
+52      common  umount2                         sys_umount
+53      common  lock                            sys_ni_syscall
+54      common  ioctl                           sys_ioctl
+55      common  fcntl                           sys_fcntl
+56      common  mpx                             sys_ni_syscall
+57      common  setpgid                         sys_setpgid
+58      common  ulimit                          sys_ni_syscall
+59      common  oldolduname                     sys_ni_syscall
+60      common  umask                           sys_umask
+61      common  chroot                          sys_chroot
+62      common  ustat                           sys_ustat
+63      common  dup2                            sys_dup2
+64      common  getppid                         sys_getppid
+65      common  getpgrp                         sys_getpgrp
+66      common  setsid                          sys_setsid
+67      common  sigaction                       sys_ni_syscall
+68      common  sgetmask                        sys_sgetmask
+69      common  ssetmask                        sys_ssetmask
+70      common  setreuid                        sys_setreuid
+71      common  setregid                        sys_setregid
+72      common  sigsuspend                      sys_ni_syscall
+73      common  sigpending                      sys_sigpending
+74      common  sethostname                     sys_sethostname
+75      common  setrlimit                       sys_setrlimit
+76      common  getrlimit                       sys_ni_syscall
+77      common  getrusage                       sys_getrusage
+78      common  gettimeofday                    sys_gettimeofday
+79      common  settimeofday                    sys_settimeofday
+80      common  getgroups                       sys_getgroups
+81      common  setgroups                       sys_setgroups
+82      common  select                          sys_ni_syscall
+83      common  symlink                         sys_symlink
+84      common  oldlstat                        sys_ni_syscall
+85      common  readlink                        sys_readlink
+86      common  uselib                          sys_uselib
+87      common  swapon                          sys_swapon
+88      common  reboot                          sys_reboot
+89      common  readdir                         sys_ni_syscall
+90      common  mmap                            sys_mmap
+91      common  munmap                          sys_munmap
+92      common  truncate                        sys_truncate
+93      common  ftruncate                       sys_ftruncate
+94      common  fchmod                          sys_fchmod
+95      common  fchown                          sys_fchown
+96      common  getpriority                     sys_getpriority
+97      common  setpriority                     sys_setpriority
+98      common  profil                          sys_ni_syscall
+99      common  statfs                          sys_statfs
+100     common  fstatfs                         sys_fstatfs
+101     common  ioperm                          sys_ni_syscall
+102     common  socketcall                      sys_socketcall
+103     common  syslog                          sys_syslog
+104     common  setitimer                       sys_setitimer
+105     common  getitimer                       sys_getitimer
+106     common  stat                            sys_newstat
+107     common  lstat                           sys_newlstat
+108     common  fstat                           sys_newfstat
+109     common  olduname                        sys_ni_syscall
+110     common  iopl                            sys_ni_syscall
+111     common  vhangup                         sys_vhangup
+112     common  idle                            sys_ni_syscall
+113     common  vm86old                         sys_ni_syscall
+114     common  wait4                           sys_wait4
+115     common  swapoff                         sys_swapoff
+116     common  sysinfo                         sys_sysinfo
+117     common  ipc                             sys_ni_syscall
+118     common  fsync                           sys_fsync
+119     common  sigreturn                       sys_ni_syscall
+120     common  clone                           sys_clone
+121     common  setdomainname                   sys_setdomainname
+122     common  uname                           sys_newuname
+123     common  modify_ldt                      sys_ni_syscall
+124     common  adjtimex                        sys_adjtimex
+125     common  mprotect                        sys_mprotect
+126     common  sigprocmask                     sys_sigprocmask
+127     common  create_module                   sys_ni_syscall
+128     common  init_module                     sys_init_module
+129     common  delete_module                   sys_delete_module
+130     common  get_kernel_syms                 sys_ni_syscall
+131     common  quotactl                        sys_quotactl
+132     common  getpgid                         sys_getpgid
+133     common  fchdir                          sys_fchdir
+134     common  bdflush                         sys_bdflush
+135     common  sysfs                           sys_sysfs
+136     common  personality                     sys_personality
+137     common  afs_syscall                     sys_ni_syscall
+138     common  setfsuid                        sys_setfsuid
+139     common  setfsgid                        sys_setfsgid
+140     common  _llseek                         sys_llseek
+141     common  getdents                        sys_getdents
+142     common  _newselect                      sys_select
+143     common  flock                           sys_flock
+144     common  msync                           sys_msync
+145     common  readv                           sys_readv
+146     common  writev                          sys_writev
+147     common  getsid                          sys_getsid
+148     common  fdatasync                       sys_fdatasync
+149     common  _sysctl                         sys_sysctl
+150     common  mlock                           sys_mlock
+151     common  munlock                         sys_munlock
+152     common  mlockall                        sys_mlockall
+153     common  munlockall                      sys_munlockall
+154     common  sched_setparam                  sys_sched_setparam
+155     common  sched_getparam                  sys_sched_getparam
+156     common  sched_setscheduler              sys_sched_setscheduler
+157     common  sched_getscheduler              sys_sched_getscheduler
+158     common  sched_yield                     sys_sched_yield
+159     common  sched_get_priority_max          sys_sched_get_priority_max
+160     common  sched_get_priority_min          sys_sched_get_priority_min
+161     common  sched_rr_get_interval           sys_sched_rr_get_interval
+162     common  nanosleep                       sys_nanosleep
+163     common  mremap                          sys_mremap
+164     common  setresuid                       sys_setresuid
+165     common  getresuid                       sys_getresuid
+166     common  vm86                            sys_ni_syscall
+167     common  query_module                    sys_ni_syscall
+168     common  poll                            sys_poll
+169     common  nfsservctl                      sys_ni_syscall
+170     common  setresgid                       sys_setresgid
+171     common  getresgid                       sys_getresgid
+172     common  prctl                           sys_prctl
+173     common  rt_sigreturn                    sys_rt_sigreturn_wrapper
+174     common  rt_sigaction                    sys_rt_sigaction
+175     common  rt_sigprocmask                  sys_rt_sigprocmask
+176     common  rt_sigpending                   sys_rt_sigpending
+177     common  rt_sigtimedwait                 sys_rt_sigtimedwait
+178     common  rt_sigqueueinfo                 sys_rt_sigqueueinfo
+179     common  rt_sigsuspend                   sys_rt_sigsuspend
+180     common  pread64                         sys_pread64
+181     common  pwrite64                        sys_pwrite64
+182     common  chown                           sys_chown
+183     common  getcwd                          sys_getcwd
+184     common  capget                          sys_capget
+185     common  capset                          sys_capset
+186     common  sigaltstack                     sys_ni_syscall
+187     common  sendfile                        sys_sendfile
+188     common  getpmsg                         sys_ni_syscall
+189     common  putpmsg                         sys_ni_syscall
+190     common  vfork                           sys_vfork
+191     common  ugetrlimit                      sys_getrlimit
+192     common  mmap2                           sys_mmap2
+193     common  truncate64                      sys_truncate64
+194     common  ftruncate64                     sys_ftruncate64
+195     common  stat64                          sys_stat64
+196     common  lstat64                         sys_lstat64
+197     common  fstat64                         sys_fstat64
+198     common  lchown32                        sys_lchown
+199     common  getuid32                        sys_getuid
+200     common  getgid32                        sys_getgid
+201     common  geteuid32                       sys_geteuid
+202     common  getegid32                       sys_getegid
+203     common  setreuid32                      sys_setreuid
+204     common  setregid32                      sys_setregid
+205     common  getgroups32                     sys_getgroups
+206     common  setgroups32                     sys_setgroups
+207     common  fchown32                        sys_fchown
+208     common  setresuid32                     sys_setresuid
+209     common  getresuid32                     sys_getresuid
+210     common  setresgid32                     sys_setresgid
+211     common  getresgid32                     sys_getresgid
+212     common  chown32                         sys_chown
+213     common  setuid32                        sys_setuid
+214     common  setgid32                        sys_setgid
+215     common  setfsuid32                      sys_setfsuid
+216     common  setfsgid32                      sys_setfsgid
+217     common  pivot_root                      sys_pivot_root
+218     common  mincore                         sys_mincore
+219     common  madvise                         sys_madvise
+220     common  getdents64                      sys_getdents64
+221     common  fcntl64                         sys_fcntl64
+224     common  gettid                          sys_gettid
+225     common  readahead                       sys_readahead
+226     common  setxattr                        sys_setxattr
+227     common  lsetxattr                       sys_lsetxattr
+228     common  fsetxattr                       sys_fsetxattr
+229     common  getxattr                        sys_getxattr
+230     common  lgetxattr                       sys_lgetxattr
+231     common  fgetxattr                       sys_fgetxattr
+232     common  listxattr                       sys_listxattr
+233     common  llistxattr                      sys_llistxattr
+234     common  flistxattr                      sys_flistxattr
+235     common  removexattr                     sys_removexattr
+236     common  lremovexattr                    sys_lremovexattr
+237     common  fremovexattr                    sys_fremovexattr
+238     common  tkill                           sys_tkill
+239     common  sendfile64                      sys_sendfile64
+240     common  futex                           sys_futex
+241     common  sched_setaffinity               sys_sched_setaffinity
+242     common  sched_getaffinity               sys_sched_getaffinity
+243     common  set_thread_area                 sys_ni_syscall
+244     common  get_thread_area                 sys_ni_syscall
+245     common  io_setup                        sys_io_setup
+246     common  io_destroy                      sys_io_destroy
+247     common  io_getevents                    sys_io_getevents
+248     common  io_submit                       sys_io_submit
+249     common  io_cancel                       sys_io_cancel
+250     common  fadvise64                       sys_fadvise64
+252     common  exit_group                      sys_exit_group
+253     common  lookup_dcookie                  sys_lookup_dcookie
+254     common  epoll_create                    sys_epoll_create
+255     common  epoll_ctl                       sys_epoll_ctl
+256     common  epoll_wait                      sys_epoll_wait
+257     common  remap_file_pages                sys_remap_file_pages
+258     common  set_tid_address                 sys_set_tid_address
+259     common  timer_create                    sys_timer_create
+260     common  timer_settime                   sys_timer_settime
+261     common  timer_gettime                   sys_timer_gettime
+262     common  timer_getoverrun                sys_timer_getoverrun
+263     common  timer_delete                    sys_timer_delete
+264     common  clock_settime                   sys_clock_settime
+265     common  clock_gettime                   sys_clock_gettime
+266     common  clock_getres                    sys_clock_getres
+267     common  clock_nanosleep                 sys_clock_nanosleep
+268     common  statfs64                        sys_statfs64
+269     common  fstatfs64                       sys_fstatfs64
+270     common  tgkill                          sys_tgkill
+271     common  utimes                          sys_utimes
+272     common  fadvise64_64                    sys_fadvise64_64
+273     common  vserver                         sys_ni_syscall
+274     common  mbind                           sys_mbind
+275     common  get_mempolicy                   sys_get_mempolicy
+276     common  set_mempolicy                   sys_set_mempolicy
+277     common  mq_open                         sys_mq_open
+278     common  mq_unlink                       sys_mq_unlink
+279     common  mq_timedsend                    sys_mq_timedsend
+280     common  mq_timedreceive                 sys_mq_timedreceive
+281     common  mq_notify                       sys_mq_notify
+282     common  mq_getsetattr                   sys_mq_getsetattr
+283     common  kexec_load                      sys_kexec_load
+284     common  waitid                          sys_waitid
+285     common  sys_setaltroot                  sys_ni_syscall
+286     common  add_key                         sys_add_key
+287     common  request_key                     sys_request_key
+288     common  keyctl                          sys_keyctl
+289     common  ioprio_set                      sys_ioprio_set
+290     common  ioprio_get                      sys_ioprio_get
+291     common  inotify_init                    sys_inotify_init
+292     common  inotify_add_watch               sys_inotify_add_watch
+293     common  inotify_rm_watch                sys_inotify_rm_watch
+294     common  migrate_pages                   sys_ni_syscall
+295     common  openat                          sys_openat
+296     common  mkdirat                         sys_mkdirat
+297     common  mknodat                         sys_mknodat
+298     common  fchownat                        sys_fchownat
+299     common  futimesat                       sys_futimesat
+300     common  fstatat64                       sys_fstatat64
+301     common  unlinkat                        sys_unlinkat
+302     common  renameat                        sys_renameat
+303     common  linkat                          sys_linkat
+304     common  symlinkat                       sys_symlinkat
+305     common  readlinkat                      sys_readlinkat
+306     common  fchmodat                        sys_fchmodat
+307     common  faccessat                       sys_faccessat
+308     common  pselect6                        sys_pselect6
+309     common  ppoll                           sys_ppoll
+310     common  unshare                         sys_unshare
+311     common  set_robust_list                 sys_set_robust_list
+312     common  get_robust_list                 sys_get_robust_list
+313     common  splice                          sys_splice
+314     common  sync_file_range                 sys_sync_file_range
+315     common  tee                             sys_tee
+316     common  vmsplice                        sys_vmsplice
+317     common  move_pages                      sys_move_pages
+318     common  getcpu                          sys_getcpu
+319     common  epoll_pwait                     sys_epoll_pwait
+320     common  utimensat                       sys_utimensat
+321     common  signalfd                        sys_signalfd
+322     common  timerfd_create                  sys_timerfd_create
+323     common  eventfd                         sys_eventfd
+324     common  fallocate                       sys_fallocate
+325     common  semtimedop                      sys_semtimedop
+326     common  timerfd_settime                 sys_timerfd_settime
+327     common  timerfd_gettime                 sys_timerfd_gettime
+328     common  semctl                          sys_semctl
+329     common  semget                          sys_semget
+330     common  semop                           sys_semop
+331     common  msgctl                          sys_msgctl
+332     common  msgget                          sys_msgget
+333     common  msgrcv                          sys_msgrcv
+334     common  msgsnd                          sys_msgsnd
+335     common  shmat                           sys_shmat
+336     common  shmctl                          sys_shmctl
+337     common  shmdt                           sys_shmdt
+338     common  shmget                          sys_shmget
+339     common  signalfd4                       sys_signalfd4
+340     common  eventfd2                        sys_eventfd2
+341     common  epoll_create1                   sys_epoll_create1
+342     common  dup3                            sys_dup3
+343     common  pipe2                           sys_pipe2
+344     common  inotify_init1                   sys_inotify_init1
+345     common  socket                          sys_socket
+346     common  socketpair                      sys_socketpair
+347     common  bind                            sys_bind
+348     common  listen                          sys_listen
+349     common  accept                          sys_accept
+350     common  connect                         sys_connect
+351     common  getsockname                     sys_getsockname
+352     common  getpeername                     sys_getpeername
+353     common  sendto                          sys_sendto
+354     common  send                            sys_send
+355     common  recvfrom                        sys_recvfrom
+356     common  recv                            sys_recv
+357     common  setsockopt                      sys_setsockopt
+358     common  getsockopt                      sys_getsockopt
+359     common  shutdown                        sys_shutdown
+360     common  sendmsg                         sys_sendmsg
+361     common  recvmsg                         sys_recvmsg
+362     common  accept4                         sys_accept4
+363     common  preadv                          sys_preadv
+364     common  pwritev                         sys_pwritev
+365     common  rt_tgsigqueueinfo               sys_rt_tgsigqueueinfo
+366     common  perf_event_open                 sys_perf_event_open
+367     common  recvmmsg                        sys_recvmmsg
+368     common  fanotify_init                   sys_fanotify_init
+369     common  fanotify_mark                   sys_fanotify_mark
+370     common  prlimit64                       sys_prlimit64
+371     common  name_to_handle_at               sys_name_to_handle_at
+372     common  open_by_handle_at               sys_open_by_handle_at
+373     common  clock_adjtime                   sys_clock_adjtime
+374     common  syncfs                          sys_syncfs
+375     common  setns                           sys_setns
+376     common  sendmmsg                        sys_sendmmsg
+377     common  process_vm_readv                sys_process_vm_readv
+378     common  process_vm_writev               sys_process_vm_writev
+379     common  kcmp                            sys_kcmp
+380     common  finit_module                    sys_finit_module
+381     common  sched_setattr                   sys_sched_setattr
+382     common  sched_getattr                   sys_sched_getattr
+383     common  renameat2                       sys_renameat2
+384     common  seccomp                         sys_seccomp
+385     common  getrandom                       sys_getrandom
+386     common  memfd_create                    sys_memfd_create
+387     common  bpf                             sys_bpf
+388     common  execveat                        sys_execveat
+389     common  userfaultfd                     sys_userfaultfd
+390     common  membarrier                      sys_membarrier
+391     common  mlock2                          sys_mlock2
+392     common  copy_file_range                 sys_copy_file_range
+393     common  preadv2                         sys_preadv2
+394     common  pwritev2                        sys_pwritev2
+395     common  pkey_mprotect                   sys_pkey_mprotect
+396     common  pkey_alloc                      sys_pkey_alloc
+397     common  pkey_free                       sys_pkey_free
+398     common  statx                           sys_statx
diff --git a/arch/microblaze/kernel/syscalls/syscallhdr.sh b/arch/microblaze/kernel/syscalls/syscallhdr.sh
new file mode 100644
index 0000000..6045ffe
--- /dev/null
+++ b/arch/microblaze/kernel/syscalls/syscallhdr.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+
+in="$1"
+out="$2"
+my_abis=`echo "($3)" | tr ',' '|'`
+prefix="$4"
+offset="$5"
+
+fileguard=_UAPI_ASM_MICROBLAZE_`basename "$out" | sed \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
+    -e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'`
+grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
+    echo "#ifndef ${fileguard}"
+    echo "#define ${fileguard}"
+    echo ""
+
+    nxt=0
+    while read nr abi name entry ; do
+	if [ -z "$offset" ]; then
+	    echo -e "#define __NR_${prefix}${name}\t$nr"
+	else
+	    echo -e "#define __NR_${prefix}${name}\t($offset + $nr)"
+	fi
+	nxt=$nr
+	let nxt=nxt+1
+    done
+
+    echo ""
+    echo -e "#define __NR_syscalls\t$nxt"
+    echo ""
+    echo "#endif /* ${fileguard} */"
+) > "$out"
diff --git a/arch/microblaze/kernel/syscalls/syscalltbl.sh b/arch/microblaze/kernel/syscalls/syscalltbl.sh
new file mode 100644
index 0000000..e9ee347
--- /dev/null
+++ b/arch/microblaze/kernel/syscalls/syscalltbl.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+
+in="$1"
+out="$2"
+my_abi="$3"
+
+emit() {
+    nxt="$1"
+    nr="$2"
+    entry="$3"
+
+    while [ $nxt -lt $nr ]; do
+	echo "__SYSCALL($nxt, sys_ni_syscall, )"
+	let nxt=nxt+1
+    done
+
+    echo "__SYSCALL($nr, $entry, )"
+}
+
+grep '^[0-9]' "$in" | sort -n | (
+    nxt=0
+    while read nr abi name entry ; do
+	emit $nxt $nr $entry
+	nxt=$nr
+        let nxt=nxt+1
+    done
+) > "$out"
-- 
1.9.1

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 2/3] microblaze: Added system call table generation support
  2018-08-09  5:27 ` [PATCH 2/3] microblaze: Added system call table generation support Firoz Khan
@ 2018-08-09  5:27   ` Firoz Khan
  2018-08-09  7:05   ` Michal Simek
  1 sibling, 0 replies; 26+ messages in thread
From: Firoz Khan @ 2018-08-09  5:27 UTC (permalink / raw)
  To: Michal Simek, Greg Kroah-Hartman, Philippe Ombredanne,
	Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel,
	marcin.juszkiewicz, firoz.khan

The system call tables are in different format in all
architecture and it will be difficult to manually add or
modify the system calls in the respective files. To make
it easy by keeping a script and which'll generate the
header file and syscall table file so this change will
unify them across all architectures.

The system call table generation script is added in
syscalls directory which contain the script to generate
both uapi header file system call table generation file
and syscall.tbl file which'll be the input for the scripts.

syscall.tbl contains the list of available system calls
along with system call number and corresponding entry point.
Add a new system call in this architecture 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.

syscallhdr.sh and syscalltbl.sh will generate uapi header-
unistd.h and syscall_table.h files respectively. File
syscall_table.h is included by syscall.S - the real system
call table. Both .sh files will parse the content syscall.tbl
to generate the header and table files.

ARM, s390 and x86 architecuture does have the similar support.
I leverage their implementation to come up with a generic
solution. And this is the ground work for y2038 issue. We need
to change 52 system call implementation and this work will
reduce the effort by simply modify 52 entries in syscall.tbl.

Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
---
 arch/microblaze/kernel/syscalls/Makefile      |  37 +++
 arch/microblaze/kernel/syscalls/syscall.tbl   | 404 ++++++++++++++++++++++++++
 arch/microblaze/kernel/syscalls/syscallhdr.sh |  33 +++
 arch/microblaze/kernel/syscalls/syscalltbl.sh |  28 ++
 4 files changed, 502 insertions(+)
 create mode 100644 arch/microblaze/kernel/syscalls/Makefile
 create mode 100644 arch/microblaze/kernel/syscalls/syscall.tbl
 create mode 100644 arch/microblaze/kernel/syscalls/syscallhdr.sh
 create mode 100644 arch/microblaze/kernel/syscalls/syscalltbl.sh

diff --git a/arch/microblaze/kernel/syscalls/Makefile b/arch/microblaze/kernel/syscalls/Makefile
new file mode 100644
index 0000000..7624044
--- /dev/null
+++ b/arch/microblaze/kernel/syscalls/Makefile
@@ -0,0 +1,37 @@
+# SPDX-License-Identifier: GPL-2.0
+out := arch/$(SRCARCH)/include/generated/asm
+uapi := arch/$(SRCARCH)/include/generated/uapi/asm
+
+_dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') \
+	  $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
+
+syscall := $(srctree)/$(src)/syscall.tbl
+
+syshdr := $(srctree)/$(src)/syscallhdr.sh
+systbl := $(srctree)/$(src)/syscalltbl.sh
+
+quiet_cmd_syshdr = SYSHDR  $@
+      cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@'  \
+		   '$(syshdr_abi_$(basetarget))'          \
+		   '$(syshdr_pfx_$(basetarget))'          \
+		   '$(syshdr_offset_$(basetarget))'
+
+quiet_cmd_systbl = SYSTBL  $@
+      cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@'  \
+		   '$(systbl_abi_$(basetarget))'
+
+$(uapi)/unistd_32.h: $(syscall) $(syshdr)
+	$(call if_changed,syshdr)
+
+$(out)/syscall_table.h: $(syscall) $(systbl)
+	$(call if_changed,systbl)
+
+uapisyshdr-y			+= unistd_32.h
+syshdr-y			+= syscall_table.h
+
+targets	+= $(uapisyshdr-y) $(syshdr-y)
+
+PHONY += all
+all: $(addprefix $(uapi)/,$(uapisyshdr-y))
+all: $(addprefix $(out)/,$(syshdr-y))
+	@:
diff --git a/arch/microblaze/kernel/syscalls/syscall.tbl b/arch/microblaze/kernel/syscalls/syscall.tbl
new file mode 100644
index 0000000..219d940
--- /dev/null
+++ b/arch/microblaze/kernel/syscalls/syscall.tbl
@@ -0,0 +1,404 @@
+#
+# Linux system call numbers and entry vectors
+#
+# The format is:
+# <number> <abi> <name> <entry point>
+#
+# The abi is always common for this file.
+#
+0       common  restart_syscall                 sys_restart_syscall
+1       common  exit                            sys_exit
+2       common  fork                            sys_fork
+3       common  read                            sys_read
+4       common  write                           sys_write
+5       common  open                            sys_open
+6       common  close                           sys_close
+7       common  waitpid                         sys_waitpid
+8       common  creat                           sys_creat
+9       common  link                            sys_link
+10      common  unlink                          sys_unlink
+11      common  execve                          sys_execve
+12      common  chdir                           sys_chdir
+13      common  time                            sys_time
+14      common  mknod                           sys_mknod
+15      common  chmod                           sys_chmod
+16      common  lchown                          sys_lchown
+17      common  break                           sys_ni_syscall
+18      common  oldstat                         sys_ni_syscall
+19      common  lseek                           sys_lseek
+20      common  getpid                          sys_getpid
+21      common  mount                           sys_mount
+22      common  umount                          sys_oldumount
+23      common  setuid                          sys_setuid
+24      common  getuid                          sys_getuid
+25      common  stime                           sys_stime
+26      common  ptrace                          sys_ptrace
+27      common  alarm                           sys_alarm
+28      common  oldfstat                        sys_ni_syscall
+29      common  pause                           sys_pause
+30      common  utime                           sys_utime
+31      common  stty                            sys_ni_syscall
+32      common  gtty                            sys_ni_syscall
+33      common  access                          sys_access
+34      common  nice                            sys_nice
+35      common  ftime                           sys_ni_syscall
+36      common  sync                            sys_sync
+37      common  kill                            sys_kill
+38      common  rename                          sys_rename
+39      common  mkdir                           sys_mkdir
+40      common  rmdir                           sys_rmdir
+41      common  dup                             sys_dup
+42      common  pipe                            sys_pipe
+43      common  times                           sys_times
+44      common  prof                            sys_ni_syscall
+45      common  brk                             sys_brk
+46      common  setgid                          sys_setgid
+47      common  getgid                          sys_getgid
+48      common  signal                          sys_signal
+49      common  geteuid                         sys_geteuid
+50      common  getegid                         sys_getegid
+51      common  acct                            sys_acct
+52      common  umount2                         sys_umount
+53      common  lock                            sys_ni_syscall
+54      common  ioctl                           sys_ioctl
+55      common  fcntl                           sys_fcntl
+56      common  mpx                             sys_ni_syscall
+57      common  setpgid                         sys_setpgid
+58      common  ulimit                          sys_ni_syscall
+59      common  oldolduname                     sys_ni_syscall
+60      common  umask                           sys_umask
+61      common  chroot                          sys_chroot
+62      common  ustat                           sys_ustat
+63      common  dup2                            sys_dup2
+64      common  getppid                         sys_getppid
+65      common  getpgrp                         sys_getpgrp
+66      common  setsid                          sys_setsid
+67      common  sigaction                       sys_ni_syscall
+68      common  sgetmask                        sys_sgetmask
+69      common  ssetmask                        sys_ssetmask
+70      common  setreuid                        sys_setreuid
+71      common  setregid                        sys_setregid
+72      common  sigsuspend                      sys_ni_syscall
+73      common  sigpending                      sys_sigpending
+74      common  sethostname                     sys_sethostname
+75      common  setrlimit                       sys_setrlimit
+76      common  getrlimit                       sys_ni_syscall
+77      common  getrusage                       sys_getrusage
+78      common  gettimeofday                    sys_gettimeofday
+79      common  settimeofday                    sys_settimeofday
+80      common  getgroups                       sys_getgroups
+81      common  setgroups                       sys_setgroups
+82      common  select                          sys_ni_syscall
+83      common  symlink                         sys_symlink
+84      common  oldlstat                        sys_ni_syscall
+85      common  readlink                        sys_readlink
+86      common  uselib                          sys_uselib
+87      common  swapon                          sys_swapon
+88      common  reboot                          sys_reboot
+89      common  readdir                         sys_ni_syscall
+90      common  mmap                            sys_mmap
+91      common  munmap                          sys_munmap
+92      common  truncate                        sys_truncate
+93      common  ftruncate                       sys_ftruncate
+94      common  fchmod                          sys_fchmod
+95      common  fchown                          sys_fchown
+96      common  getpriority                     sys_getpriority
+97      common  setpriority                     sys_setpriority
+98      common  profil                          sys_ni_syscall
+99      common  statfs                          sys_statfs
+100     common  fstatfs                         sys_fstatfs
+101     common  ioperm                          sys_ni_syscall
+102     common  socketcall                      sys_socketcall
+103     common  syslog                          sys_syslog
+104     common  setitimer                       sys_setitimer
+105     common  getitimer                       sys_getitimer
+106     common  stat                            sys_newstat
+107     common  lstat                           sys_newlstat
+108     common  fstat                           sys_newfstat
+109     common  olduname                        sys_ni_syscall
+110     common  iopl                            sys_ni_syscall
+111     common  vhangup                         sys_vhangup
+112     common  idle                            sys_ni_syscall
+113     common  vm86old                         sys_ni_syscall
+114     common  wait4                           sys_wait4
+115     common  swapoff                         sys_swapoff
+116     common  sysinfo                         sys_sysinfo
+117     common  ipc                             sys_ni_syscall
+118     common  fsync                           sys_fsync
+119     common  sigreturn                       sys_ni_syscall
+120     common  clone                           sys_clone
+121     common  setdomainname                   sys_setdomainname
+122     common  uname                           sys_newuname
+123     common  modify_ldt                      sys_ni_syscall
+124     common  adjtimex                        sys_adjtimex
+125     common  mprotect                        sys_mprotect
+126     common  sigprocmask                     sys_sigprocmask
+127     common  create_module                   sys_ni_syscall
+128     common  init_module                     sys_init_module
+129     common  delete_module                   sys_delete_module
+130     common  get_kernel_syms                 sys_ni_syscall
+131     common  quotactl                        sys_quotactl
+132     common  getpgid                         sys_getpgid
+133     common  fchdir                          sys_fchdir
+134     common  bdflush                         sys_bdflush
+135     common  sysfs                           sys_sysfs
+136     common  personality                     sys_personality
+137     common  afs_syscall                     sys_ni_syscall
+138     common  setfsuid                        sys_setfsuid
+139     common  setfsgid                        sys_setfsgid
+140     common  _llseek                         sys_llseek
+141     common  getdents                        sys_getdents
+142     common  _newselect                      sys_select
+143     common  flock                           sys_flock
+144     common  msync                           sys_msync
+145     common  readv                           sys_readv
+146     common  writev                          sys_writev
+147     common  getsid                          sys_getsid
+148     common  fdatasync                       sys_fdatasync
+149     common  _sysctl                         sys_sysctl
+150     common  mlock                           sys_mlock
+151     common  munlock                         sys_munlock
+152     common  mlockall                        sys_mlockall
+153     common  munlockall                      sys_munlockall
+154     common  sched_setparam                  sys_sched_setparam
+155     common  sched_getparam                  sys_sched_getparam
+156     common  sched_setscheduler              sys_sched_setscheduler
+157     common  sched_getscheduler              sys_sched_getscheduler
+158     common  sched_yield                     sys_sched_yield
+159     common  sched_get_priority_max          sys_sched_get_priority_max
+160     common  sched_get_priority_min          sys_sched_get_priority_min
+161     common  sched_rr_get_interval           sys_sched_rr_get_interval
+162     common  nanosleep                       sys_nanosleep
+163     common  mremap                          sys_mremap
+164     common  setresuid                       sys_setresuid
+165     common  getresuid                       sys_getresuid
+166     common  vm86                            sys_ni_syscall
+167     common  query_module                    sys_ni_syscall
+168     common  poll                            sys_poll
+169     common  nfsservctl                      sys_ni_syscall
+170     common  setresgid                       sys_setresgid
+171     common  getresgid                       sys_getresgid
+172     common  prctl                           sys_prctl
+173     common  rt_sigreturn                    sys_rt_sigreturn_wrapper
+174     common  rt_sigaction                    sys_rt_sigaction
+175     common  rt_sigprocmask                  sys_rt_sigprocmask
+176     common  rt_sigpending                   sys_rt_sigpending
+177     common  rt_sigtimedwait                 sys_rt_sigtimedwait
+178     common  rt_sigqueueinfo                 sys_rt_sigqueueinfo
+179     common  rt_sigsuspend                   sys_rt_sigsuspend
+180     common  pread64                         sys_pread64
+181     common  pwrite64                        sys_pwrite64
+182     common  chown                           sys_chown
+183     common  getcwd                          sys_getcwd
+184     common  capget                          sys_capget
+185     common  capset                          sys_capset
+186     common  sigaltstack                     sys_ni_syscall
+187     common  sendfile                        sys_sendfile
+188     common  getpmsg                         sys_ni_syscall
+189     common  putpmsg                         sys_ni_syscall
+190     common  vfork                           sys_vfork
+191     common  ugetrlimit                      sys_getrlimit
+192     common  mmap2                           sys_mmap2
+193     common  truncate64                      sys_truncate64
+194     common  ftruncate64                     sys_ftruncate64
+195     common  stat64                          sys_stat64
+196     common  lstat64                         sys_lstat64
+197     common  fstat64                         sys_fstat64
+198     common  lchown32                        sys_lchown
+199     common  getuid32                        sys_getuid
+200     common  getgid32                        sys_getgid
+201     common  geteuid32                       sys_geteuid
+202     common  getegid32                       sys_getegid
+203     common  setreuid32                      sys_setreuid
+204     common  setregid32                      sys_setregid
+205     common  getgroups32                     sys_getgroups
+206     common  setgroups32                     sys_setgroups
+207     common  fchown32                        sys_fchown
+208     common  setresuid32                     sys_setresuid
+209     common  getresuid32                     sys_getresuid
+210     common  setresgid32                     sys_setresgid
+211     common  getresgid32                     sys_getresgid
+212     common  chown32                         sys_chown
+213     common  setuid32                        sys_setuid
+214     common  setgid32                        sys_setgid
+215     common  setfsuid32                      sys_setfsuid
+216     common  setfsgid32                      sys_setfsgid
+217     common  pivot_root                      sys_pivot_root
+218     common  mincore                         sys_mincore
+219     common  madvise                         sys_madvise
+220     common  getdents64                      sys_getdents64
+221     common  fcntl64                         sys_fcntl64
+224     common  gettid                          sys_gettid
+225     common  readahead                       sys_readahead
+226     common  setxattr                        sys_setxattr
+227     common  lsetxattr                       sys_lsetxattr
+228     common  fsetxattr                       sys_fsetxattr
+229     common  getxattr                        sys_getxattr
+230     common  lgetxattr                       sys_lgetxattr
+231     common  fgetxattr                       sys_fgetxattr
+232     common  listxattr                       sys_listxattr
+233     common  llistxattr                      sys_llistxattr
+234     common  flistxattr                      sys_flistxattr
+235     common  removexattr                     sys_removexattr
+236     common  lremovexattr                    sys_lremovexattr
+237     common  fremovexattr                    sys_fremovexattr
+238     common  tkill                           sys_tkill
+239     common  sendfile64                      sys_sendfile64
+240     common  futex                           sys_futex
+241     common  sched_setaffinity               sys_sched_setaffinity
+242     common  sched_getaffinity               sys_sched_getaffinity
+243     common  set_thread_area                 sys_ni_syscall
+244     common  get_thread_area                 sys_ni_syscall
+245     common  io_setup                        sys_io_setup
+246     common  io_destroy                      sys_io_destroy
+247     common  io_getevents                    sys_io_getevents
+248     common  io_submit                       sys_io_submit
+249     common  io_cancel                       sys_io_cancel
+250     common  fadvise64                       sys_fadvise64
+252     common  exit_group                      sys_exit_group
+253     common  lookup_dcookie                  sys_lookup_dcookie
+254     common  epoll_create                    sys_epoll_create
+255     common  epoll_ctl                       sys_epoll_ctl
+256     common  epoll_wait                      sys_epoll_wait
+257     common  remap_file_pages                sys_remap_file_pages
+258     common  set_tid_address                 sys_set_tid_address
+259     common  timer_create                    sys_timer_create
+260     common  timer_settime                   sys_timer_settime
+261     common  timer_gettime                   sys_timer_gettime
+262     common  timer_getoverrun                sys_timer_getoverrun
+263     common  timer_delete                    sys_timer_delete
+264     common  clock_settime                   sys_clock_settime
+265     common  clock_gettime                   sys_clock_gettime
+266     common  clock_getres                    sys_clock_getres
+267     common  clock_nanosleep                 sys_clock_nanosleep
+268     common  statfs64                        sys_statfs64
+269     common  fstatfs64                       sys_fstatfs64
+270     common  tgkill                          sys_tgkill
+271     common  utimes                          sys_utimes
+272     common  fadvise64_64                    sys_fadvise64_64
+273     common  vserver                         sys_ni_syscall
+274     common  mbind                           sys_mbind
+275     common  get_mempolicy                   sys_get_mempolicy
+276     common  set_mempolicy                   sys_set_mempolicy
+277     common  mq_open                         sys_mq_open
+278     common  mq_unlink                       sys_mq_unlink
+279     common  mq_timedsend                    sys_mq_timedsend
+280     common  mq_timedreceive                 sys_mq_timedreceive
+281     common  mq_notify                       sys_mq_notify
+282     common  mq_getsetattr                   sys_mq_getsetattr
+283     common  kexec_load                      sys_kexec_load
+284     common  waitid                          sys_waitid
+285     common  sys_setaltroot                  sys_ni_syscall
+286     common  add_key                         sys_add_key
+287     common  request_key                     sys_request_key
+288     common  keyctl                          sys_keyctl
+289     common  ioprio_set                      sys_ioprio_set
+290     common  ioprio_get                      sys_ioprio_get
+291     common  inotify_init                    sys_inotify_init
+292     common  inotify_add_watch               sys_inotify_add_watch
+293     common  inotify_rm_watch                sys_inotify_rm_watch
+294     common  migrate_pages                   sys_ni_syscall
+295     common  openat                          sys_openat
+296     common  mkdirat                         sys_mkdirat
+297     common  mknodat                         sys_mknodat
+298     common  fchownat                        sys_fchownat
+299     common  futimesat                       sys_futimesat
+300     common  fstatat64                       sys_fstatat64
+301     common  unlinkat                        sys_unlinkat
+302     common  renameat                        sys_renameat
+303     common  linkat                          sys_linkat
+304     common  symlinkat                       sys_symlinkat
+305     common  readlinkat                      sys_readlinkat
+306     common  fchmodat                        sys_fchmodat
+307     common  faccessat                       sys_faccessat
+308     common  pselect6                        sys_pselect6
+309     common  ppoll                           sys_ppoll
+310     common  unshare                         sys_unshare
+311     common  set_robust_list                 sys_set_robust_list
+312     common  get_robust_list                 sys_get_robust_list
+313     common  splice                          sys_splice
+314     common  sync_file_range                 sys_sync_file_range
+315     common  tee                             sys_tee
+316     common  vmsplice                        sys_vmsplice
+317     common  move_pages                      sys_move_pages
+318     common  getcpu                          sys_getcpu
+319     common  epoll_pwait                     sys_epoll_pwait
+320     common  utimensat                       sys_utimensat
+321     common  signalfd                        sys_signalfd
+322     common  timerfd_create                  sys_timerfd_create
+323     common  eventfd                         sys_eventfd
+324     common  fallocate                       sys_fallocate
+325     common  semtimedop                      sys_semtimedop
+326     common  timerfd_settime                 sys_timerfd_settime
+327     common  timerfd_gettime                 sys_timerfd_gettime
+328     common  semctl                          sys_semctl
+329     common  semget                          sys_semget
+330     common  semop                           sys_semop
+331     common  msgctl                          sys_msgctl
+332     common  msgget                          sys_msgget
+333     common  msgrcv                          sys_msgrcv
+334     common  msgsnd                          sys_msgsnd
+335     common  shmat                           sys_shmat
+336     common  shmctl                          sys_shmctl
+337     common  shmdt                           sys_shmdt
+338     common  shmget                          sys_shmget
+339     common  signalfd4                       sys_signalfd4
+340     common  eventfd2                        sys_eventfd2
+341     common  epoll_create1                   sys_epoll_create1
+342     common  dup3                            sys_dup3
+343     common  pipe2                           sys_pipe2
+344     common  inotify_init1                   sys_inotify_init1
+345     common  socket                          sys_socket
+346     common  socketpair                      sys_socketpair
+347     common  bind                            sys_bind
+348     common  listen                          sys_listen
+349     common  accept                          sys_accept
+350     common  connect                         sys_connect
+351     common  getsockname                     sys_getsockname
+352     common  getpeername                     sys_getpeername
+353     common  sendto                          sys_sendto
+354     common  send                            sys_send
+355     common  recvfrom                        sys_recvfrom
+356     common  recv                            sys_recv
+357     common  setsockopt                      sys_setsockopt
+358     common  getsockopt                      sys_getsockopt
+359     common  shutdown                        sys_shutdown
+360     common  sendmsg                         sys_sendmsg
+361     common  recvmsg                         sys_recvmsg
+362     common  accept4                         sys_accept4
+363     common  preadv                          sys_preadv
+364     common  pwritev                         sys_pwritev
+365     common  rt_tgsigqueueinfo               sys_rt_tgsigqueueinfo
+366     common  perf_event_open                 sys_perf_event_open
+367     common  recvmmsg                        sys_recvmmsg
+368     common  fanotify_init                   sys_fanotify_init
+369     common  fanotify_mark                   sys_fanotify_mark
+370     common  prlimit64                       sys_prlimit64
+371     common  name_to_handle_at               sys_name_to_handle_at
+372     common  open_by_handle_at               sys_open_by_handle_at
+373     common  clock_adjtime                   sys_clock_adjtime
+374     common  syncfs                          sys_syncfs
+375     common  setns                           sys_setns
+376     common  sendmmsg                        sys_sendmmsg
+377     common  process_vm_readv                sys_process_vm_readv
+378     common  process_vm_writev               sys_process_vm_writev
+379     common  kcmp                            sys_kcmp
+380     common  finit_module                    sys_finit_module
+381     common  sched_setattr                   sys_sched_setattr
+382     common  sched_getattr                   sys_sched_getattr
+383     common  renameat2                       sys_renameat2
+384     common  seccomp                         sys_seccomp
+385     common  getrandom                       sys_getrandom
+386     common  memfd_create                    sys_memfd_create
+387     common  bpf                             sys_bpf
+388     common  execveat                        sys_execveat
+389     common  userfaultfd                     sys_userfaultfd
+390     common  membarrier                      sys_membarrier
+391     common  mlock2                          sys_mlock2
+392     common  copy_file_range                 sys_copy_file_range
+393     common  preadv2                         sys_preadv2
+394     common  pwritev2                        sys_pwritev2
+395     common  pkey_mprotect                   sys_pkey_mprotect
+396     common  pkey_alloc                      sys_pkey_alloc
+397     common  pkey_free                       sys_pkey_free
+398     common  statx                           sys_statx
diff --git a/arch/microblaze/kernel/syscalls/syscallhdr.sh b/arch/microblaze/kernel/syscalls/syscallhdr.sh
new file mode 100644
index 0000000..6045ffe
--- /dev/null
+++ b/arch/microblaze/kernel/syscalls/syscallhdr.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+
+in="$1"
+out="$2"
+my_abis=`echo "($3)" | tr ',' '|'`
+prefix="$4"
+offset="$5"
+
+fileguard=_UAPI_ASM_MICROBLAZE_`basename "$out" | sed \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
+    -e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'`
+grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
+    echo "#ifndef ${fileguard}"
+    echo "#define ${fileguard}"
+    echo ""
+
+    nxt=0
+    while read nr abi name entry ; do
+	if [ -z "$offset" ]; then
+	    echo -e "#define __NR_${prefix}${name}\t$nr"
+	else
+	    echo -e "#define __NR_${prefix}${name}\t($offset + $nr)"
+	fi
+	nxt=$nr
+	let nxt=nxt+1
+    done
+
+    echo ""
+    echo -e "#define __NR_syscalls\t$nxt"
+    echo ""
+    echo "#endif /* ${fileguard} */"
+) > "$out"
diff --git a/arch/microblaze/kernel/syscalls/syscalltbl.sh b/arch/microblaze/kernel/syscalls/syscalltbl.sh
new file mode 100644
index 0000000..e9ee347
--- /dev/null
+++ b/arch/microblaze/kernel/syscalls/syscalltbl.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+
+in="$1"
+out="$2"
+my_abi="$3"
+
+emit() {
+    nxt="$1"
+    nr="$2"
+    entry="$3"
+
+    while [ $nxt -lt $nr ]; do
+	echo "__SYSCALL($nxt, sys_ni_syscall, )"
+	let nxt=nxt+1
+    done
+
+    echo "__SYSCALL($nr, $entry, )"
+}
+
+grep '^[0-9]' "$in" | sort -n | (
+    nxt=0
+    while read nr abi name entry ; do
+	emit $nxt $nr $entry
+	nxt=$nr
+        let nxt=nxt+1
+    done
+) > "$out"
-- 
1.9.1

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 3/3] microblaze: uapi header and system call table file generation
  2018-08-09  5:27 [PATCH 0/3] System call table generation support Firoz Khan
                   ` (2 preceding siblings ...)
  2018-08-09  5:27 ` [PATCH 2/3] microblaze: Added system call table generation support Firoz Khan
@ 2018-08-09  5:27 ` Firoz Khan
  2018-08-09  5:27   ` Firoz Khan
  2018-08-09  7:12   ` Michal Simek
  3 siblings, 2 replies; 26+ messages in thread
From: Firoz Khan @ 2018-08-09  5:27 UTC (permalink / raw)
  To: Michal Simek, Greg Kroah-Hartman, Philippe Ombredanne,
	Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel,
	marcin.juszkiewicz, firoz.khan

System call table generation script must be run to generate
unistd_32.h and syscall_table.h files. This patch will have
changes which will invokes the script.

This patch will generate unistd_32.h and syscall_table.h
files by the syscall table generation script invoked by
arch/microblaze/Makefile and the generated files against the
removed files will be identical.

The generated uapi header file will be included in
uapi/asm/unistd.h and generated system call table support
file will be included by microblaze/kernel/syscall.S file.

Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
---
 arch/microblaze/Makefile                  |   3 +
 arch/microblaze/include/asm/Kbuild        |   2 +
 arch/microblaze/include/uapi/asm/Kbuild   |   2 +
 arch/microblaze/include/uapi/asm/unistd.h | 409 +-----------------------------
 arch/microblaze/kernel/syscall_table.S    | 406 +----------------------------
 5 files changed, 12 insertions(+), 810 deletions(-)

diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile
index d269dd4b..6121a2b 100644
--- a/arch/microblaze/Makefile
+++ b/arch/microblaze/Makefile
@@ -81,6 +81,9 @@ all: linux.bin
 archclean:
 	$(Q)$(MAKE) $(clean)=$(boot)
 
+archheaders:
+	$(Q)$(MAKE) $(build)=arch/microblaze/kernel/syscalls all
+
 linux.bin linux.bin.gz linux.bin.ub: vmlinux
 	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
 
diff --git a/arch/microblaze/include/asm/Kbuild b/arch/microblaze/include/asm/Kbuild
index fe6a6c6..99225ab 100644
--- a/arch/microblaze/include/asm/Kbuild
+++ b/arch/microblaze/include/asm/Kbuild
@@ -30,3 +30,5 @@ generic-y += trace_clock.h
 generic-y += vga.h
 generic-y += word-at-a-time.h
 generic-y += xor.h
+
+generated-y += syscall_table.h
\ No newline at end of file
diff --git a/arch/microblaze/include/uapi/asm/Kbuild b/arch/microblaze/include/uapi/asm/Kbuild
index 2c6a6bf..8fe26a3 100644
--- a/arch/microblaze/include/uapi/asm/Kbuild
+++ b/arch/microblaze/include/uapi/asm/Kbuild
@@ -28,3 +28,5 @@ generic-y += termbits.h
 generic-y += termios.h
 generic-y += types.h
 generic-y += ucontext.h
+
+generated-y += unistd_32.h
\ No newline at end of file
diff --git a/arch/microblaze/include/uapi/asm/unistd.h b/arch/microblaze/include/uapi/asm/unistd.h
index bde6b38..3f2d7cb 100644
--- a/arch/microblaze/include/uapi/asm/unistd.h
+++ b/arch/microblaze/include/uapi/asm/unistd.h
@@ -11,413 +11,6 @@
 #ifndef _UAPI_ASM_MICROBLAZE_UNISTD_H
 #define _UAPI_ASM_MICROBLAZE_UNISTD_H
 
-#define __NR_restart_syscall	0 /* ok */
-#define __NR_exit		1 /* ok */
-#define __NR_fork		2 /* not for no MMU - weird */
-#define __NR_read		3 /* ok */
-#define __NR_write		4 /* ok */
-#define __NR_open		5 /* openat */
-#define __NR_close		6 /* ok */
-#define __NR_waitpid		7 /* waitid */
-#define __NR_creat		8 /* openat */
-#define __NR_link		9 /* linkat */
-#define __NR_unlink		10 /* unlinkat */
-#define __NR_execve		11 /* ok */
-#define __NR_chdir		12 /* ok */
-#define __NR_time		13 /* obsolete -> sys_gettimeofday */
-#define __NR_mknod		14 /* mknodat */
-#define __NR_chmod		15 /* fchmodat */
-#define __NR_lchown		16 /* ok */
-#define __NR_break		17 /* don't know */
-#define __NR_oldstat		18 /* remove */
-#define __NR_lseek		19 /* ok */
-#define __NR_getpid		20 /* ok */
-#define __NR_mount		21 /* ok */
-#define __NR_umount		22 /* ok */  /* use only umount2 */
-#define __NR_setuid		23 /* ok */
-#define __NR_getuid		24 /* ok */
-#define __NR_stime		25 /* obsolete -> sys_settimeofday */
-#define __NR_ptrace		26 /* ok */
-#define __NR_alarm		27 /* obsolete -> sys_setitimer */
-#define __NR_oldfstat		28 /* remove */
-#define __NR_pause		29 /* obsolete -> sys_rt_sigtimedwait */
-#define __NR_utime		30 /* obsolete -> sys_utimesat */
-#define __NR_stty		31 /* remove */
-#define __NR_gtty		32 /* remove */
-#define __NR_access		33 /* faccessat */
-/* can be implemented by sys_setpriority */
-#define __NR_nice		34
-#define __NR_ftime		35 /* remove */
-#define __NR_sync		36 /* ok */
-#define __NR_kill		37 /* ok */
-#define __NR_rename		38 /* renameat */
-#define __NR_mkdir		39 /* mkdirat */
-#define __NR_rmdir		40 /* unlinkat */
-#define __NR_dup		41 /* ok */
-#define __NR_pipe		42 /* ok */
-#define __NR_times		43 /* ok */
-#define __NR_prof		44 /* remove */
-#define __NR_brk		45 /* ok -mmu, nommu specific */
-#define __NR_setgid		46 /* ok */
-#define __NR_getgid		47 /* ok */
-#define __NR_signal		48 /* obsolete -> sys_rt_sigaction */
-#define __NR_geteuid		49 /* ok */
-#define __NR_getegid		50 /* ok */
-#define __NR_acct		51 /* add it and then I can disable it */
-#define __NR_umount2		52 /* remove */
-#define __NR_lock		53 /* remove */
-#define __NR_ioctl		54 /* ok */
-#define __NR_fcntl		55 /* ok -> 64bit version*/
-#define __NR_mpx		56 /* remove */
-#define __NR_setpgid		57 /* ok */
-#define __NR_ulimit		58 /* remove */
-#define __NR_oldolduname	59 /* remove */
-#define __NR_umask		60 /* ok */
-#define __NR_chroot		61 /* ok */
-#define __NR_ustat		62 /* obsolete -> statfs64 */
-#define __NR_dup2		63 /* ok */
-#define __NR_getppid		64 /* ok */
-#define __NR_getpgrp		65 /* obsolete -> sys_getpgid */
-#define __NR_setsid		66 /* ok */
-#define __NR_sigaction		67 /* obsolete -> rt_sigaction */
-#define __NR_sgetmask		68 /* obsolete -> sys_rt_sigprocmask */
-#define __NR_ssetmask		69 /* obsolete ->sys_rt_sigprocmask */
-#define __NR_setreuid		70 /* ok */
-#define __NR_setregid		71 /* ok */
-#define __NR_sigsuspend		72 /* obsolete -> rt_sigsuspend */
-#define __NR_sigpending		73 /* obsolete -> sys_rt_sigpending */
-#define __NR_sethostname	74 /* ok */
-#define __NR_setrlimit		75 /* ok */
-#define __NR_getrlimit		76 /* ok Back compatible 2G limited rlimit */
-#define __NR_getrusage		77 /* ok */
-#define __NR_gettimeofday	78 /* ok */
-#define __NR_settimeofday	79 /* ok */
-#define __NR_getgroups		80 /* ok */
-#define __NR_setgroups		81 /* ok */
-#define __NR_select		82 /* obsolete -> sys_pselect6 */
-#define __NR_symlink		83 /* symlinkat */
-#define __NR_oldlstat		84 /* remove */
-#define __NR_readlink		85 /* obsolete -> sys_readlinkat */
-#define __NR_uselib		86 /* remove */
-#define __NR_swapon		87 /* ok */
-#define __NR_reboot		88 /* ok */
-#define __NR_readdir		89 /* remove ? */
-#define __NR_mmap		90 /* obsolete -> sys_mmap2 */
-#define __NR_munmap		91 /* ok - mmu and nommu */
-#define __NR_truncate		92 /* ok or truncate64 */
-#define __NR_ftruncate		93 /* ok or ftruncate64 */
-#define __NR_fchmod		94 /* ok */
-#define __NR_fchown		95 /* ok */
-#define __NR_getpriority	96 /* ok */
-#define __NR_setpriority	97 /* ok */
-#define __NR_profil		98 /* remove */
-#define __NR_statfs		99 /* ok or statfs64 */
-#define __NR_fstatfs		100  /* ok or fstatfs64 */
-#define __NR_ioperm		101 /* remove */
-#define __NR_socketcall		102 /* remove */
-#define __NR_syslog		103 /* ok */
-#define __NR_setitimer		104 /* ok */
-#define __NR_getitimer		105 /* ok */
-#define __NR_stat		106 /* remove */
-#define __NR_lstat		107 /* remove */
-#define __NR_fstat		108 /* remove */
-#define __NR_olduname		109 /* remove */
-#define __NR_iopl		110 /* remove */
-#define __NR_vhangup		111 /* ok */
-#define __NR_idle		112 /* remove */
-#define __NR_vm86old		113 /* remove */
-#define __NR_wait4		114 /* obsolete -> waitid */
-#define __NR_swapoff		115 /* ok */
-#define __NR_sysinfo		116 /* ok */
-#define __NR_ipc		117 /* remove - direct call */
-#define __NR_fsync		118 /* ok */
-#define __NR_sigreturn		119 /* obsolete -> sys_rt_sigreturn */
-#define __NR_clone		120 /* ok */
-#define __NR_setdomainname	121 /* ok */
-#define __NR_uname		122 /* remove */
-#define __NR_modify_ldt		123 /* remove */
-#define __NR_adjtimex		124 /* ok */
-#define __NR_mprotect		125 /* remove */
-#define __NR_sigprocmask	126 /* obsolete -> sys_rt_sigprocmask */
-#define __NR_create_module	127 /* remove */
-#define __NR_init_module	128 /* ok */
-#define __NR_delete_module	129 /* ok */
-#define __NR_get_kernel_syms	130 /* remove */
-#define __NR_quotactl		131 /* ok */
-#define __NR_getpgid		132 /* ok */
-#define __NR_fchdir		133 /* ok */
-#define __NR_bdflush		134 /* remove */
-#define __NR_sysfs		135 /* needed for busybox */
-#define __NR_personality	136 /* ok */
-#define __NR_afs_syscall	137 /* Syscall for Andrew File System */
-#define __NR_setfsuid		138 /* ok */
-#define __NR_setfsgid		139 /* ok */
-#define __NR__llseek		140 /* remove only lseek */
-#define __NR_getdents		141 /* ok or getdents64 */
-#define __NR__newselect		142 /* remove */
-#define __NR_flock		143 /* ok */
-#define __NR_msync		144 /* remove */
-#define __NR_readv		145 /* ok */
-#define __NR_writev		146 /* ok */
-#define __NR_getsid		147 /* ok */
-#define __NR_fdatasync		148 /* ok */
-#define __NR__sysctl		149 /* remove */
-#define __NR_mlock		150 /* ok - nommu or mmu */
-#define __NR_munlock		151 /* ok - nommu or mmu */
-#define __NR_mlockall		152 /* ok - nommu or mmu */
-#define __NR_munlockall		153 /* ok - nommu or mmu */
-#define __NR_sched_setparam		154 /* ok */
-#define __NR_sched_getparam		155 /* ok */
-#define __NR_sched_setscheduler		156 /* ok */
-#define __NR_sched_getscheduler		157 /* ok */
-#define __NR_sched_yield		158 /* ok */
-#define __NR_sched_get_priority_max	159 /* ok */
-#define __NR_sched_get_priority_min	160 /* ok */
-#define __NR_sched_rr_get_interval	161 /* ok */
-#define __NR_nanosleep		162 /* ok */
-#define __NR_mremap		163 /* ok - nommu or mmu */
-#define __NR_setresuid		164 /* ok */
-#define __NR_getresuid		165 /* ok */
-#define __NR_vm86		166 /* remove */
-#define __NR_query_module	167 /* ok */
-#define __NR_poll		168 /* obsolete -> sys_ppoll */
-#define __NR_nfsservctl		169 /* ok */
-#define __NR_setresgid		170 /* ok */
-#define __NR_getresgid		171 /* ok */
-#define __NR_prctl		172 /* ok */
-#define __NR_rt_sigreturn	173 /* ok */
-#define __NR_rt_sigaction	174 /* ok */
-#define __NR_rt_sigprocmask	175 /* ok */
-#define __NR_rt_sigpending	176 /* ok */
-#define __NR_rt_sigtimedwait	177 /* ok */
-#define __NR_rt_sigqueueinfo	178 /* ok */
-#define __NR_rt_sigsuspend	179 /* ok */
-#define __NR_pread64		180 /* ok */
-#define __NR_pwrite64		181 /* ok */
-#define __NR_chown		182 /* obsolete -> fchownat */
-#define __NR_getcwd		183 /* ok */
-#define __NR_capget		184 /* ok */
-#define __NR_capset		185 /* ok */
-#define __NR_sigaltstack	186 /* remove */
-#define __NR_sendfile		187 /* ok -> exist 64bit version*/
-#define __NR_getpmsg		188 /* remove */
-/* remove - some people actually want streams */
-#define __NR_putpmsg		189
-/* for noMMU - group with clone -> maybe remove */
-#define __NR_vfork		190
-#define __NR_ugetrlimit		191 /* remove - SuS compliant getrlimit */
-#define __NR_mmap2		192 /* ok */
-#define __NR_truncate64		193 /* ok */
-#define __NR_ftruncate64	194 /* ok */
-#define __NR_stat64		195 /* remove _ARCH_WANT_STAT64 */
-#define __NR_lstat64		196 /* remove _ARCH_WANT_STAT64 */
-#define __NR_fstat64		197 /* remove _ARCH_WANT_STAT64 */
-#define __NR_lchown32		198 /* ok - without 32 */
-#define __NR_getuid32		199 /* ok - without 32 */
-#define __NR_getgid32		200 /* ok - without 32 */
-#define __NR_geteuid32		201 /* ok - without 32 */
-#define __NR_getegid32		202 /* ok - without 32 */
-#define __NR_setreuid32		203 /* ok - without 32 */
-#define __NR_setregid32		204 /* ok - without 32 */
-#define __NR_getgroups32	205 /* ok - without 32 */
-#define __NR_setgroups32	206 /* ok - without 32 */
-#define __NR_fchown32		207 /* ok - without 32 */
-#define __NR_setresuid32	208 /* ok - without 32 */
-#define __NR_getresuid32	209 /* ok - without 32 */
-#define __NR_setresgid32	210 /* ok - without 32 */
-#define __NR_getresgid32	211 /* ok - without 32 */
-#define __NR_chown32		212 /* ok - without 32 -obsolete -> fchownat */
-#define __NR_setuid32		213 /* ok - without 32 */
-#define __NR_setgid32		214 /* ok - without 32 */
-#define __NR_setfsuid32		215 /* ok - without 32 */
-#define __NR_setfsgid32		216 /* ok - without 32 */
-#define __NR_pivot_root		217 /* ok */
-#define __NR_mincore		218 /* ok */
-#define __NR_madvise		219 /* ok */
-#define __NR_getdents64		220 /* ok */
-#define __NR_fcntl64		221 /* ok */
-/* 223 is unused */
-#define __NR_gettid		224 /* ok */
-#define __NR_readahead		225 /* ok */
-#define __NR_setxattr		226 /* ok */
-#define __NR_lsetxattr		227 /* ok */
-#define __NR_fsetxattr		228 /* ok */
-#define __NR_getxattr		229 /* ok */
-#define __NR_lgetxattr		230 /* ok */
-#define __NR_fgetxattr		231 /* ok */
-#define __NR_listxattr		232 /* ok */
-#define __NR_llistxattr		233 /* ok */
-#define __NR_flistxattr		234 /* ok */
-#define __NR_removexattr	235 /* ok */
-#define __NR_lremovexattr	236 /* ok */
-#define __NR_fremovexattr	237 /* ok */
-#define __NR_tkill		238 /* ok */
-#define __NR_sendfile64		239 /* ok */
-#define __NR_futex		240 /* ok */
-#define __NR_sched_setaffinity	241 /* ok */
-#define __NR_sched_getaffinity	242 /* ok */
-#define __NR_set_thread_area	243 /* remove */
-#define __NR_get_thread_area	244 /* remove */
-#define __NR_io_setup		245 /* ok */
-#define __NR_io_destroy		246 /* ok */
-#define __NR_io_getevents	247 /* ok */
-#define __NR_io_submit		248 /* ok */
-#define __NR_io_cancel		249 /* ok */
-#define __NR_fadvise64		250 /* remove -> sys_fadvise64_64 */
-/* 251 is available for reuse (was briefly sys_set_zone_reclaim) */
-#define __NR_exit_group		252 /* ok */
-#define __NR_lookup_dcookie	253 /* ok */
-#define __NR_epoll_create	254 /* ok */
-#define __NR_epoll_ctl		255 /* ok */
-#define __NR_epoll_wait		256 /* obsolete -> sys_epoll_pwait */
-#define __NR_remap_file_pages	257 /* only for mmu */
-#define __NR_set_tid_address	258 /* ok */
-#define __NR_timer_create	259 /* ok */
-#define __NR_timer_settime	(__NR_timer_create+1) /* 260 */ /* ok */
-#define __NR_timer_gettime	(__NR_timer_create+2) /* 261 */ /* ok */
-#define __NR_timer_getoverrun	(__NR_timer_create+3) /* 262 */ /* ok */
-#define __NR_timer_delete	(__NR_timer_create+4) /* 263 */ /* ok */
-#define __NR_clock_settime	(__NR_timer_create+5) /* 264 */ /* ok */
-#define __NR_clock_gettime	(__NR_timer_create+6) /* 265 */ /* ok */
-#define __NR_clock_getres	(__NR_timer_create+7) /* 266 */ /* ok */
-#define __NR_clock_nanosleep	(__NR_timer_create+8) /* 267 */ /* ok */
-#define __NR_statfs64		268 /* ok */
-#define __NR_fstatfs64		269 /* ok */
-#define __NR_tgkill		270 /* ok */
-#define __NR_utimes		271 /* obsolete -> sys_futimesat */
-#define __NR_fadvise64_64	272 /* ok */
-#define __NR_vserver		273 /* ok */
-#define __NR_mbind		274 /* only for mmu */
-#define __NR_get_mempolicy	275 /* only for mmu */
-#define __NR_set_mempolicy	276 /* only for mmu */
-#define __NR_mq_open		277 /* ok */
-#define __NR_mq_unlink		(__NR_mq_open+1) /* 278 */ /* ok */
-#define __NR_mq_timedsend	(__NR_mq_open+2) /* 279 */ /* ok */
-#define __NR_mq_timedreceive	(__NR_mq_open+3) /* 280 */ /* ok */
-#define __NR_mq_notify		(__NR_mq_open+4) /* 281 */ /* ok */
-#define __NR_mq_getsetattr	(__NR_mq_open+5) /* 282 */ /* ok */
-#define __NR_kexec_load		283 /* ok */
-#define __NR_waitid		284 /* ok */
-/* #define __NR_sys_setaltroot	285 */
-#define __NR_add_key		286 /* ok */
-#define __NR_request_key	287 /* ok */
-#define __NR_keyctl		288 /* ok */
-#define __NR_ioprio_set		289 /* ok */
-#define __NR_ioprio_get		290 /* ok */
-#define __NR_inotify_init	291 /* ok */
-#define __NR_inotify_add_watch	292 /* ok */
-#define __NR_inotify_rm_watch	293 /* ok */
-#define __NR_migrate_pages	294 /* mmu */
-#define __NR_openat		295 /* ok */
-#define __NR_mkdirat		296 /* ok */
-#define __NR_mknodat		297 /* ok */
-#define __NR_fchownat		298 /* ok */
-#define __NR_futimesat		299 /* obsolete -> sys_utimesat */
-#define __NR_fstatat64		300 /* stat64 */
-#define __NR_unlinkat		301 /* ok */
-#define __NR_renameat		302 /* ok */
-#define __NR_linkat		303 /* ok */
-#define __NR_symlinkat		304 /* ok */
-#define __NR_readlinkat		305 /* ok */
-#define __NR_fchmodat		306 /* ok */
-#define __NR_faccessat		307 /* ok */
-#define __NR_pselect6		308 /* ok */
-#define __NR_ppoll		309 /* ok */
-#define __NR_unshare		310 /* ok */
-#define __NR_set_robust_list	311 /* ok */
-#define __NR_get_robust_list	312 /* ok */
-#define __NR_splice		313 /* ok */
-#define __NR_sync_file_range	314 /* ok */
-#define __NR_tee		315 /* ok */
-#define __NR_vmsplice		316 /* ok */
-#define __NR_move_pages		317 /* mmu */
-#define __NR_getcpu		318 /* ok */
-#define __NR_epoll_pwait	319 /* ok */
-#define __NR_utimensat		320 /* ok */
-#define __NR_signalfd		321 /* ok */
-#define __NR_timerfd_create	322 /* ok */
-#define __NR_eventfd		323 /* ok */
-#define __NR_fallocate		324 /* ok */
-#define __NR_semtimedop		325 /* ok - semaphore group */
-#define __NR_timerfd_settime	326 /* ok */
-#define __NR_timerfd_gettime	327 /* ok */
-/* sysv ipc syscalls */
-#define __NR_semctl		328 /* ok */
-#define __NR_semget		329 /* ok */
-#define __NR_semop		330 /* ok */
-#define __NR_msgctl		331 /* ok */
-#define __NR_msgget		332 /* ok */
-#define __NR_msgrcv		333 /* ok */
-#define __NR_msgsnd		334 /* ok */
-#define __NR_shmat		335 /* ok */
-#define __NR_shmctl		336 /* ok */
-#define __NR_shmdt		337 /* ok */
-#define __NR_shmget		338 /* ok */
-
-
-#define __NR_signalfd4		339 /* new */
-#define __NR_eventfd2		340 /* new */
-#define __NR_epoll_create1	341 /* new */
-#define __NR_dup3		342 /* new */
-#define __NR_pipe2		343 /* new */
-#define __NR_inotify_init1	344 /* new */
-#define __NR_socket		345 /* new */
-#define __NR_socketpair		346 /* new */
-#define __NR_bind		347 /* new */
-#define __NR_listen		348 /* new */
-#define __NR_accept		349 /* new */
-#define __NR_connect		350 /* new */
-#define __NR_getsockname	351 /* new */
-#define __NR_getpeername	352 /* new */
-#define __NR_sendto		353 /* new */
-#define __NR_send		354 /* new */
-#define __NR_recvfrom		355 /* new */
-#define __NR_recv		356 /* new */
-#define __NR_setsockopt		357 /* new */
-#define __NR_getsockopt		358 /* new */
-#define __NR_shutdown		359 /* new */
-#define __NR_sendmsg		360 /* new */
-#define __NR_recvmsg		361 /* new */
-#define __NR_accept4		362 /* new */
-#define __NR_preadv		363 /* new */
-#define __NR_pwritev		364 /* new */
-#define __NR_rt_tgsigqueueinfo	365 /* new */
-#define __NR_perf_event_open	366 /* new */
-#define __NR_recvmmsg		367 /* new */
-#define __NR_fanotify_init	368
-#define __NR_fanotify_mark	369
-#define __NR_prlimit64		370
-#define __NR_name_to_handle_at	371
-#define __NR_open_by_handle_at	372
-#define __NR_clock_adjtime	373
-#define __NR_syncfs		374
-#define __NR_setns		375
-#define __NR_sendmmsg		376
-#define __NR_process_vm_readv	377
-#define __NR_process_vm_writev	378
-#define __NR_kcmp		379
-#define __NR_finit_module	380
-#define __NR_sched_setattr	381
-#define __NR_sched_getattr	382
-#define __NR_renameat2		383
-#define __NR_seccomp		384
-#define __NR_getrandom		385
-#define __NR_memfd_create	386
-#define __NR_bpf		387
-#define __NR_execveat		388
-#define __NR_userfaultfd	389
-#define __NR_membarrier		390
-#define __NR_mlock2		391
-#define __NR_copy_file_range	392
-#define __NR_preadv2		393
-#define __NR_pwritev2		394
-#define __NR_pkey_mprotect	395
-#define __NR_pkey_alloc		396
-#define __NR_pkey_free		397
-#define __NR_statx		398
-#define __NR_io_pgetevents	399
-#define __NR_rseq		400
-
-#define __NR_syscalls         401
+#include <asm/unistd_32.h>
 
 #endif /* _UAPI_ASM_MICROBLAZE_UNISTD_H */
diff --git a/arch/microblaze/kernel/syscall_table.S b/arch/microblaze/kernel/syscall_table.S
index 6ab6505..f7598b2 100644
--- a/arch/microblaze/kernel/syscall_table.S
+++ b/arch/microblaze/kernel/syscall_table.S
@@ -1,404 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
+
+#define __SYSCALL(nr, entry, nargs) .long entry
+
 ENTRY(sys_call_table)
-	.long sys_restart_syscall	/* 0 - old "setup()" system call,
-					 * used for restarting */
-	.long sys_exit
-	.long sys_fork
-	.long sys_read
-	.long sys_write
-	.long sys_open			/* 5 */
-	.long sys_close
-	.long sys_waitpid
-	.long sys_creat
-	.long sys_link
-	.long sys_unlink		/* 10 */
-	.long sys_execve
-	.long sys_chdir
-	.long sys_time
-	.long sys_mknod
-	.long sys_chmod			/* 15 */
-	.long sys_lchown
-	.long sys_ni_syscall		/* old break syscall holder */
-	.long sys_ni_syscall		/* old stat */
-	.long sys_lseek
-	.long sys_getpid		/* 20 */
-	.long sys_mount
-	.long sys_oldumount
-	.long sys_setuid
-	.long sys_getuid
-	.long sys_stime			/* 25 */
-	.long sys_ptrace
-	.long sys_alarm
-	.long sys_ni_syscall		/* oldfstat */
-	.long sys_pause
-	.long sys_utime			/* 30 */
-	.long sys_ni_syscall		/* old stty syscall holder */
-	.long sys_ni_syscall		/* old gtty syscall holder */
-	.long sys_access
-	.long sys_nice
-	.long sys_ni_syscall		/* 35 - old ftime syscall holder */
-	.long sys_sync
-	.long sys_kill
-	.long sys_rename
-	.long sys_mkdir
-	.long sys_rmdir			/* 40 */
-	.long sys_dup
-	.long sys_pipe
-	.long sys_times
-	.long sys_ni_syscall		/* old prof syscall holder */
-	.long sys_brk			/* 45 */
-	.long sys_setgid
-	.long sys_getgid
-	.long sys_signal
-	.long sys_geteuid
-	.long sys_getegid		/* 50 */
-	.long sys_acct
-	.long sys_umount		/* recycled never used phys() */
-	.long sys_ni_syscall		/* old lock syscall holder */
-	.long sys_ioctl
-	.long sys_fcntl			/* 55 */
-	.long sys_ni_syscall		/* old mpx syscall holder */
-	.long sys_setpgid
-	.long sys_ni_syscall		/* old ulimit syscall holder */
-	.long sys_ni_syscall		/* olduname */
-	.long sys_umask			/* 60 */
-	.long sys_chroot
-	.long sys_ustat
-	.long sys_dup2
-	.long sys_getppid
-	.long sys_getpgrp		/* 65 */
-	.long sys_setsid
-	.long sys_ni_syscall		/* sys_sigaction */
-	.long sys_sgetmask
-	.long sys_ssetmask
-	.long sys_setreuid		/* 70 */
-	.long sys_setregid
-	.long sys_ni_syscall		/* sys_sigsuspend_wrapper */
-	.long sys_sigpending
-	.long sys_sethostname
-	.long sys_setrlimit		/* 75 */
-	.long sys_ni_syscall		/* old_getrlimit */
-	.long sys_getrusage
-	.long sys_gettimeofday
-	.long sys_settimeofday
-	.long sys_getgroups		/* 80 */
-	.long sys_setgroups
-	.long sys_ni_syscall		/* old_select */
-	.long sys_symlink
-	.long sys_ni_syscall		/* oldlstat */
-	.long sys_readlink		/* 85 */
-	.long sys_uselib
-	.long sys_swapon
-	.long sys_reboot
-	.long sys_ni_syscall		/* old_readdir */
-	.long sys_mmap			/* 90 */ /* old_mmap */
-	.long sys_munmap
-	.long sys_truncate
-	.long sys_ftruncate
-	.long sys_fchmod
-	.long sys_fchown		/* 95 */
-	.long sys_getpriority
-	.long sys_setpriority
-	.long sys_ni_syscall		/* old profil syscall holder */
-	.long sys_statfs
-	.long sys_fstatfs		/* 100 */
-	.long sys_ni_syscall		/* ioperm */
-	.long sys_socketcall
-	.long sys_syslog		/* operation with system console */
-	.long sys_setitimer
-	.long sys_getitimer		/* 105 */
-	.long sys_newstat
-	.long sys_newlstat
-	.long sys_newfstat
-	.long sys_ni_syscall		/* uname */
-	.long sys_ni_syscall		/* 110 */ /* iopl */
-	.long sys_vhangup
-	.long sys_ni_syscall		/* old "idle" system call */
-	.long sys_ni_syscall		/* old sys_vm86old */
-	.long sys_wait4
-	.long sys_swapoff		/* 115 */
-	.long sys_sysinfo
-	.long sys_ni_syscall		/* old sys_ipc */
-	.long sys_fsync
-	.long sys_ni_syscall		/* sys_sigreturn_wrapper */
-	.long sys_clone		/* 120 */
-	.long sys_setdomainname
-	.long sys_newuname
-	.long sys_ni_syscall		/* modify_ldt */
-	.long sys_adjtimex
-	.long sys_mprotect		/* 125:	sys_mprotect */
-	.long sys_sigprocmask
-	.long sys_ni_syscall		/* old "create_module" */
-	.long sys_init_module
-	.long sys_delete_module
-	.long sys_ni_syscall		/* 130:	old "get_kernel_syms" */
-	.long sys_quotactl
-	.long sys_getpgid
-	.long sys_fchdir
-	.long sys_bdflush
-	.long sys_sysfs			/* 135 */
-	.long sys_personality
-	.long sys_ni_syscall		/* reserved for afs_syscall */
-	.long sys_setfsuid
-	.long sys_setfsgid
-	.long sys_llseek		/* 140 */
-	.long sys_getdents
-	.long sys_select
-	.long sys_flock
-	.long sys_msync
-	.long sys_readv			/* 145 */
-	.long sys_writev
-	.long sys_getsid
-	.long sys_fdatasync
-	.long sys_sysctl
-	.long sys_mlock		/* 150:	sys_mlock */
-	.long sys_munlock
-	.long sys_mlockall
-	.long sys_munlockall
-	.long sys_sched_setparam
-	.long sys_sched_getparam	/* 155 */
-	.long sys_sched_setscheduler
-	.long sys_sched_getscheduler
-	.long sys_sched_yield
-	.long sys_sched_get_priority_max
-	.long sys_sched_get_priority_min	/* 160 */
-	.long sys_sched_rr_get_interval
-	.long sys_nanosleep
-	.long sys_mremap
-	.long sys_setresuid
-	.long sys_getresuid		/* 165 */
-	.long sys_ni_syscall		/* sys_vm86 */
-	.long sys_ni_syscall		/* Old sys_query_module */
-	.long sys_poll
-	.long sys_ni_syscall		/* old nfsservctl */
-	.long sys_setresgid		/* 170 */
-	.long sys_getresgid
-	.long sys_prctl
-	.long sys_rt_sigreturn_wrapper
-	.long sys_rt_sigaction
-	.long sys_rt_sigprocmask	/* 175 */
-	.long sys_rt_sigpending
-	.long sys_rt_sigtimedwait
-	.long sys_rt_sigqueueinfo
-	.long sys_rt_sigsuspend
-	.long sys_pread64		/* 180 */
-	.long sys_pwrite64
-	.long sys_chown
-	.long sys_getcwd
-	.long sys_capget
-	.long sys_capset		/* 185 */
-	.long sys_ni_syscall		/* sigaltstack */
-	.long sys_sendfile
-	.long sys_ni_syscall		/* reserved for streams1 */
-	.long sys_ni_syscall		/* reserved for streams2 */
-	.long sys_vfork		/* 190 */
-	.long sys_getrlimit
-	.long sys_mmap2
-	.long sys_truncate64
-	.long sys_ftruncate64
-	.long sys_stat64		/* 195 */
-	.long sys_lstat64
-	.long sys_fstat64
-	.long sys_lchown
-	.long sys_getuid
-	.long sys_getgid		/* 200 */
-	.long sys_geteuid
-	.long sys_getegid
-	.long sys_setreuid
-	.long sys_setregid
-	.long sys_getgroups		/* 205 */
-	.long sys_setgroups
-	.long sys_fchown
-	.long sys_setresuid
-	.long sys_getresuid
-	.long sys_setresgid		/* 210 */
-	.long sys_getresgid
-	.long sys_chown
-	.long sys_setuid
-	.long sys_setgid
-	.long sys_setfsuid		/* 215 */
-	.long sys_setfsgid
-	.long sys_pivot_root
-	.long sys_mincore
-	.long sys_madvise
-	.long sys_getdents64		/* 220 */
-	.long sys_fcntl64
-	.long sys_ni_syscall		/* reserved for TUX */
-	.long sys_ni_syscall
-	.long sys_gettid
-	.long sys_readahead		/* 225 */
-	.long sys_setxattr
-	.long sys_lsetxattr
-	.long sys_fsetxattr
-	.long sys_getxattr
-	.long sys_lgetxattr		/* 230 */
-	.long sys_fgetxattr
-	.long sys_listxattr
-	.long sys_llistxattr
-	.long sys_flistxattr
-	.long sys_removexattr		/* 235 */
-	.long sys_lremovexattr
-	.long sys_fremovexattr
-	.long sys_tkill
-	.long sys_sendfile64
-	.long sys_futex			/* 240 */
-	.long sys_sched_setaffinity
-	.long sys_sched_getaffinity
-	.long sys_ni_syscall		/* set_thread_area */
-	.long sys_ni_syscall		/* get_thread_area */
-	.long sys_io_setup		/* 245 */
-	.long sys_io_destroy
-	.long sys_io_getevents
-	.long sys_io_submit
-	.long sys_io_cancel
-	.long sys_fadvise64		/* 250 */
-	.long sys_ni_syscall
-	.long sys_exit_group
-	.long sys_lookup_dcookie
-	.long sys_epoll_create
-	.long sys_epoll_ctl		/* 255 */
-	.long sys_epoll_wait
-	.long sys_remap_file_pages
-	.long sys_set_tid_address
-	.long sys_timer_create
-	.long sys_timer_settime		/* 260 */
-	.long sys_timer_gettime
-	.long sys_timer_getoverrun
-	.long sys_timer_delete
-	.long sys_clock_settime
-	.long sys_clock_gettime		/* 265 */
-	.long sys_clock_getres
-	.long sys_clock_nanosleep
-	.long sys_statfs64
-	.long sys_fstatfs64
-	.long sys_tgkill		/* 270 */
-	.long sys_utimes
-	.long sys_fadvise64_64
-	.long sys_ni_syscall		/* sys_vserver */
-	.long sys_mbind
-	.long sys_get_mempolicy
-	.long sys_set_mempolicy
-	.long sys_mq_open
-	.long sys_mq_unlink
-	.long sys_mq_timedsend
-	.long sys_mq_timedreceive	/* 280 */
-	.long sys_mq_notify
-	.long sys_mq_getsetattr
-	.long sys_kexec_load
-	.long sys_waitid
-	.long sys_ni_syscall		/* 285 */ /* available */
-	.long sys_add_key
-	.long sys_request_key
-	.long sys_keyctl
-	.long sys_ioprio_set
-	.long sys_ioprio_get		/* 290 */
-	.long sys_inotify_init
-	.long sys_inotify_add_watch
-	.long sys_inotify_rm_watch
-	.long sys_ni_syscall		/* sys_migrate_pages */
-	.long sys_openat	/* 295 */
-	.long sys_mkdirat
-	.long sys_mknodat
-	.long sys_fchownat
-	.long sys_futimesat
-	.long sys_fstatat64		/* 300 */
-	.long sys_unlinkat
-	.long sys_renameat
-	.long sys_linkat
-	.long sys_symlinkat
-	.long sys_readlinkat		/* 305 */
-	.long sys_fchmodat
-	.long sys_faccessat
-	.long sys_pselect6
-	.long sys_ppoll
-	.long sys_unshare		/* 310 */
-	.long sys_set_robust_list
-	.long sys_get_robust_list
-	.long sys_splice
-	.long sys_sync_file_range
-	.long sys_tee 			/* 315 */
-	.long sys_vmsplice
-	.long sys_move_pages
-	.long sys_getcpu
-	.long sys_epoll_pwait
-	.long sys_utimensat		/* 320 */
-	.long sys_signalfd
-	.long sys_timerfd_create
-	.long sys_eventfd
-	.long sys_fallocate
-	.long sys_semtimedop		/* 325 */
-	.long sys_timerfd_settime
-	.long sys_timerfd_gettime
-	.long sys_semctl
-	.long sys_semget
-	.long sys_semop			/* 330 */
-	.long sys_msgctl
-	.long sys_msgget
-	.long sys_msgrcv
-	.long sys_msgsnd
-	.long sys_shmat			/* 335 */
-	.long sys_shmctl
-	.long sys_shmdt
-	.long sys_shmget
-	.long sys_signalfd4	/* new syscall */
-	.long sys_eventfd2		/* 340 */
-	.long sys_epoll_create1
-	.long sys_dup3
-	.long sys_pipe2
-	.long sys_inotify_init1
-	.long sys_socket		/* 345 */
-	.long sys_socketpair
-	.long sys_bind
-	.long sys_listen
-	.long sys_accept
-	.long sys_connect		/* 350 */
-	.long sys_getsockname
-	.long sys_getpeername
-	.long sys_sendto
-	.long sys_send
-	.long sys_recvfrom		/* 355 */
-	.long sys_recv
-	.long sys_setsockopt
-	.long sys_getsockopt
-	.long sys_shutdown
-	.long sys_sendmsg		/* 360 */
-	.long sys_recvmsg
-	.long sys_accept4
-	.long sys_preadv
-	.long sys_pwritev
-	.long sys_rt_tgsigqueueinfo	/* 365 */
-	.long sys_perf_event_open
-	.long sys_recvmmsg
-	.long sys_fanotify_init
-	.long sys_fanotify_mark
-	.long sys_prlimit64	/* 370 */
-	.long sys_name_to_handle_at
-	.long sys_open_by_handle_at
-	.long sys_clock_adjtime
-	.long sys_syncfs
-	.long sys_setns			/* 375 */
-	.long sys_sendmmsg
-	.long sys_process_vm_readv
-	.long sys_process_vm_writev
-	.long sys_kcmp
-	.long sys_finit_module		/* 380 */
-	.long sys_sched_setattr
-	.long sys_sched_getattr
-	.long sys_renameat2
-	.long sys_seccomp
-	.long sys_getrandom		/* 385 */
-	.long sys_memfd_create
-	.long sys_bpf
-	.long sys_execveat
-	.long sys_userfaultfd
-	.long sys_membarrier		/* 390 */
-	.long sys_mlock2
-	.long sys_copy_file_range
-	.long sys_preadv2
-	.long sys_pwritev2
-	.long sys_pkey_mprotect		/* 395 */
-	.long sys_pkey_alloc
-	.long sys_pkey_free
-	.long sys_statx
-	.long sys_io_pgetevents
-	.long sys_rseq
+#include <asm/syscall_table.h>
-- 
1.9.1

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 3/3] microblaze: uapi header and system call table file generation
  2018-08-09  5:27 ` [PATCH 3/3] microblaze: uapi header and system call table file generation Firoz Khan
@ 2018-08-09  5:27   ` Firoz Khan
  2018-08-09  7:12   ` Michal Simek
  1 sibling, 0 replies; 26+ messages in thread
From: Firoz Khan @ 2018-08-09  5:27 UTC (permalink / raw)
  To: Michal Simek, Greg Kroah-Hartman, Philippe Ombredanne,
	Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel,
	marcin.juszkiewicz, firoz.khan

System call table generation script must be run to generate
unistd_32.h and syscall_table.h files. This patch will have
changes which will invokes the script.

This patch will generate unistd_32.h and syscall_table.h
files by the syscall table generation script invoked by
arch/microblaze/Makefile and the generated files against the
removed files will be identical.

The generated uapi header file will be included in
uapi/asm/unistd.h and generated system call table support
file will be included by microblaze/kernel/syscall.S file.

Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
---
 arch/microblaze/Makefile                  |   3 +
 arch/microblaze/include/asm/Kbuild        |   2 +
 arch/microblaze/include/uapi/asm/Kbuild   |   2 +
 arch/microblaze/include/uapi/asm/unistd.h | 409 +-----------------------------
 arch/microblaze/kernel/syscall_table.S    | 406 +----------------------------
 5 files changed, 12 insertions(+), 810 deletions(-)

diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile
index d269dd4b..6121a2b 100644
--- a/arch/microblaze/Makefile
+++ b/arch/microblaze/Makefile
@@ -81,6 +81,9 @@ all: linux.bin
 archclean:
 	$(Q)$(MAKE) $(clean)=$(boot)
 
+archheaders:
+	$(Q)$(MAKE) $(build)=arch/microblaze/kernel/syscalls all
+
 linux.bin linux.bin.gz linux.bin.ub: vmlinux
 	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
 
diff --git a/arch/microblaze/include/asm/Kbuild b/arch/microblaze/include/asm/Kbuild
index fe6a6c6..99225ab 100644
--- a/arch/microblaze/include/asm/Kbuild
+++ b/arch/microblaze/include/asm/Kbuild
@@ -30,3 +30,5 @@ generic-y += trace_clock.h
 generic-y += vga.h
 generic-y += word-at-a-time.h
 generic-y += xor.h
+
+generated-y += syscall_table.h
\ No newline at end of file
diff --git a/arch/microblaze/include/uapi/asm/Kbuild b/arch/microblaze/include/uapi/asm/Kbuild
index 2c6a6bf..8fe26a3 100644
--- a/arch/microblaze/include/uapi/asm/Kbuild
+++ b/arch/microblaze/include/uapi/asm/Kbuild
@@ -28,3 +28,5 @@ generic-y += termbits.h
 generic-y += termios.h
 generic-y += types.h
 generic-y += ucontext.h
+
+generated-y += unistd_32.h
\ No newline at end of file
diff --git a/arch/microblaze/include/uapi/asm/unistd.h b/arch/microblaze/include/uapi/asm/unistd.h
index bde6b38..3f2d7cb 100644
--- a/arch/microblaze/include/uapi/asm/unistd.h
+++ b/arch/microblaze/include/uapi/asm/unistd.h
@@ -11,413 +11,6 @@
 #ifndef _UAPI_ASM_MICROBLAZE_UNISTD_H
 #define _UAPI_ASM_MICROBLAZE_UNISTD_H
 
-#define __NR_restart_syscall	0 /* ok */
-#define __NR_exit		1 /* ok */
-#define __NR_fork		2 /* not for no MMU - weird */
-#define __NR_read		3 /* ok */
-#define __NR_write		4 /* ok */
-#define __NR_open		5 /* openat */
-#define __NR_close		6 /* ok */
-#define __NR_waitpid		7 /* waitid */
-#define __NR_creat		8 /* openat */
-#define __NR_link		9 /* linkat */
-#define __NR_unlink		10 /* unlinkat */
-#define __NR_execve		11 /* ok */
-#define __NR_chdir		12 /* ok */
-#define __NR_time		13 /* obsolete -> sys_gettimeofday */
-#define __NR_mknod		14 /* mknodat */
-#define __NR_chmod		15 /* fchmodat */
-#define __NR_lchown		16 /* ok */
-#define __NR_break		17 /* don't know */
-#define __NR_oldstat		18 /* remove */
-#define __NR_lseek		19 /* ok */
-#define __NR_getpid		20 /* ok */
-#define __NR_mount		21 /* ok */
-#define __NR_umount		22 /* ok */  /* use only umount2 */
-#define __NR_setuid		23 /* ok */
-#define __NR_getuid		24 /* ok */
-#define __NR_stime		25 /* obsolete -> sys_settimeofday */
-#define __NR_ptrace		26 /* ok */
-#define __NR_alarm		27 /* obsolete -> sys_setitimer */
-#define __NR_oldfstat		28 /* remove */
-#define __NR_pause		29 /* obsolete -> sys_rt_sigtimedwait */
-#define __NR_utime		30 /* obsolete -> sys_utimesat */
-#define __NR_stty		31 /* remove */
-#define __NR_gtty		32 /* remove */
-#define __NR_access		33 /* faccessat */
-/* can be implemented by sys_setpriority */
-#define __NR_nice		34
-#define __NR_ftime		35 /* remove */
-#define __NR_sync		36 /* ok */
-#define __NR_kill		37 /* ok */
-#define __NR_rename		38 /* renameat */
-#define __NR_mkdir		39 /* mkdirat */
-#define __NR_rmdir		40 /* unlinkat */
-#define __NR_dup		41 /* ok */
-#define __NR_pipe		42 /* ok */
-#define __NR_times		43 /* ok */
-#define __NR_prof		44 /* remove */
-#define __NR_brk		45 /* ok -mmu, nommu specific */
-#define __NR_setgid		46 /* ok */
-#define __NR_getgid		47 /* ok */
-#define __NR_signal		48 /* obsolete -> sys_rt_sigaction */
-#define __NR_geteuid		49 /* ok */
-#define __NR_getegid		50 /* ok */
-#define __NR_acct		51 /* add it and then I can disable it */
-#define __NR_umount2		52 /* remove */
-#define __NR_lock		53 /* remove */
-#define __NR_ioctl		54 /* ok */
-#define __NR_fcntl		55 /* ok -> 64bit version*/
-#define __NR_mpx		56 /* remove */
-#define __NR_setpgid		57 /* ok */
-#define __NR_ulimit		58 /* remove */
-#define __NR_oldolduname	59 /* remove */
-#define __NR_umask		60 /* ok */
-#define __NR_chroot		61 /* ok */
-#define __NR_ustat		62 /* obsolete -> statfs64 */
-#define __NR_dup2		63 /* ok */
-#define __NR_getppid		64 /* ok */
-#define __NR_getpgrp		65 /* obsolete -> sys_getpgid */
-#define __NR_setsid		66 /* ok */
-#define __NR_sigaction		67 /* obsolete -> rt_sigaction */
-#define __NR_sgetmask		68 /* obsolete -> sys_rt_sigprocmask */
-#define __NR_ssetmask		69 /* obsolete ->sys_rt_sigprocmask */
-#define __NR_setreuid		70 /* ok */
-#define __NR_setregid		71 /* ok */
-#define __NR_sigsuspend		72 /* obsolete -> rt_sigsuspend */
-#define __NR_sigpending		73 /* obsolete -> sys_rt_sigpending */
-#define __NR_sethostname	74 /* ok */
-#define __NR_setrlimit		75 /* ok */
-#define __NR_getrlimit		76 /* ok Back compatible 2G limited rlimit */
-#define __NR_getrusage		77 /* ok */
-#define __NR_gettimeofday	78 /* ok */
-#define __NR_settimeofday	79 /* ok */
-#define __NR_getgroups		80 /* ok */
-#define __NR_setgroups		81 /* ok */
-#define __NR_select		82 /* obsolete -> sys_pselect6 */
-#define __NR_symlink		83 /* symlinkat */
-#define __NR_oldlstat		84 /* remove */
-#define __NR_readlink		85 /* obsolete -> sys_readlinkat */
-#define __NR_uselib		86 /* remove */
-#define __NR_swapon		87 /* ok */
-#define __NR_reboot		88 /* ok */
-#define __NR_readdir		89 /* remove ? */
-#define __NR_mmap		90 /* obsolete -> sys_mmap2 */
-#define __NR_munmap		91 /* ok - mmu and nommu */
-#define __NR_truncate		92 /* ok or truncate64 */
-#define __NR_ftruncate		93 /* ok or ftruncate64 */
-#define __NR_fchmod		94 /* ok */
-#define __NR_fchown		95 /* ok */
-#define __NR_getpriority	96 /* ok */
-#define __NR_setpriority	97 /* ok */
-#define __NR_profil		98 /* remove */
-#define __NR_statfs		99 /* ok or statfs64 */
-#define __NR_fstatfs		100  /* ok or fstatfs64 */
-#define __NR_ioperm		101 /* remove */
-#define __NR_socketcall		102 /* remove */
-#define __NR_syslog		103 /* ok */
-#define __NR_setitimer		104 /* ok */
-#define __NR_getitimer		105 /* ok */
-#define __NR_stat		106 /* remove */
-#define __NR_lstat		107 /* remove */
-#define __NR_fstat		108 /* remove */
-#define __NR_olduname		109 /* remove */
-#define __NR_iopl		110 /* remove */
-#define __NR_vhangup		111 /* ok */
-#define __NR_idle		112 /* remove */
-#define __NR_vm86old		113 /* remove */
-#define __NR_wait4		114 /* obsolete -> waitid */
-#define __NR_swapoff		115 /* ok */
-#define __NR_sysinfo		116 /* ok */
-#define __NR_ipc		117 /* remove - direct call */
-#define __NR_fsync		118 /* ok */
-#define __NR_sigreturn		119 /* obsolete -> sys_rt_sigreturn */
-#define __NR_clone		120 /* ok */
-#define __NR_setdomainname	121 /* ok */
-#define __NR_uname		122 /* remove */
-#define __NR_modify_ldt		123 /* remove */
-#define __NR_adjtimex		124 /* ok */
-#define __NR_mprotect		125 /* remove */
-#define __NR_sigprocmask	126 /* obsolete -> sys_rt_sigprocmask */
-#define __NR_create_module	127 /* remove */
-#define __NR_init_module	128 /* ok */
-#define __NR_delete_module	129 /* ok */
-#define __NR_get_kernel_syms	130 /* remove */
-#define __NR_quotactl		131 /* ok */
-#define __NR_getpgid		132 /* ok */
-#define __NR_fchdir		133 /* ok */
-#define __NR_bdflush		134 /* remove */
-#define __NR_sysfs		135 /* needed for busybox */
-#define __NR_personality	136 /* ok */
-#define __NR_afs_syscall	137 /* Syscall for Andrew File System */
-#define __NR_setfsuid		138 /* ok */
-#define __NR_setfsgid		139 /* ok */
-#define __NR__llseek		140 /* remove only lseek */
-#define __NR_getdents		141 /* ok or getdents64 */
-#define __NR__newselect		142 /* remove */
-#define __NR_flock		143 /* ok */
-#define __NR_msync		144 /* remove */
-#define __NR_readv		145 /* ok */
-#define __NR_writev		146 /* ok */
-#define __NR_getsid		147 /* ok */
-#define __NR_fdatasync		148 /* ok */
-#define __NR__sysctl		149 /* remove */
-#define __NR_mlock		150 /* ok - nommu or mmu */
-#define __NR_munlock		151 /* ok - nommu or mmu */
-#define __NR_mlockall		152 /* ok - nommu or mmu */
-#define __NR_munlockall		153 /* ok - nommu or mmu */
-#define __NR_sched_setparam		154 /* ok */
-#define __NR_sched_getparam		155 /* ok */
-#define __NR_sched_setscheduler		156 /* ok */
-#define __NR_sched_getscheduler		157 /* ok */
-#define __NR_sched_yield		158 /* ok */
-#define __NR_sched_get_priority_max	159 /* ok */
-#define __NR_sched_get_priority_min	160 /* ok */
-#define __NR_sched_rr_get_interval	161 /* ok */
-#define __NR_nanosleep		162 /* ok */
-#define __NR_mremap		163 /* ok - nommu or mmu */
-#define __NR_setresuid		164 /* ok */
-#define __NR_getresuid		165 /* ok */
-#define __NR_vm86		166 /* remove */
-#define __NR_query_module	167 /* ok */
-#define __NR_poll		168 /* obsolete -> sys_ppoll */
-#define __NR_nfsservctl		169 /* ok */
-#define __NR_setresgid		170 /* ok */
-#define __NR_getresgid		171 /* ok */
-#define __NR_prctl		172 /* ok */
-#define __NR_rt_sigreturn	173 /* ok */
-#define __NR_rt_sigaction	174 /* ok */
-#define __NR_rt_sigprocmask	175 /* ok */
-#define __NR_rt_sigpending	176 /* ok */
-#define __NR_rt_sigtimedwait	177 /* ok */
-#define __NR_rt_sigqueueinfo	178 /* ok */
-#define __NR_rt_sigsuspend	179 /* ok */
-#define __NR_pread64		180 /* ok */
-#define __NR_pwrite64		181 /* ok */
-#define __NR_chown		182 /* obsolete -> fchownat */
-#define __NR_getcwd		183 /* ok */
-#define __NR_capget		184 /* ok */
-#define __NR_capset		185 /* ok */
-#define __NR_sigaltstack	186 /* remove */
-#define __NR_sendfile		187 /* ok -> exist 64bit version*/
-#define __NR_getpmsg		188 /* remove */
-/* remove - some people actually want streams */
-#define __NR_putpmsg		189
-/* for noMMU - group with clone -> maybe remove */
-#define __NR_vfork		190
-#define __NR_ugetrlimit		191 /* remove - SuS compliant getrlimit */
-#define __NR_mmap2		192 /* ok */
-#define __NR_truncate64		193 /* ok */
-#define __NR_ftruncate64	194 /* ok */
-#define __NR_stat64		195 /* remove _ARCH_WANT_STAT64 */
-#define __NR_lstat64		196 /* remove _ARCH_WANT_STAT64 */
-#define __NR_fstat64		197 /* remove _ARCH_WANT_STAT64 */
-#define __NR_lchown32		198 /* ok - without 32 */
-#define __NR_getuid32		199 /* ok - without 32 */
-#define __NR_getgid32		200 /* ok - without 32 */
-#define __NR_geteuid32		201 /* ok - without 32 */
-#define __NR_getegid32		202 /* ok - without 32 */
-#define __NR_setreuid32		203 /* ok - without 32 */
-#define __NR_setregid32		204 /* ok - without 32 */
-#define __NR_getgroups32	205 /* ok - without 32 */
-#define __NR_setgroups32	206 /* ok - without 32 */
-#define __NR_fchown32		207 /* ok - without 32 */
-#define __NR_setresuid32	208 /* ok - without 32 */
-#define __NR_getresuid32	209 /* ok - without 32 */
-#define __NR_setresgid32	210 /* ok - without 32 */
-#define __NR_getresgid32	211 /* ok - without 32 */
-#define __NR_chown32		212 /* ok - without 32 -obsolete -> fchownat */
-#define __NR_setuid32		213 /* ok - without 32 */
-#define __NR_setgid32		214 /* ok - without 32 */
-#define __NR_setfsuid32		215 /* ok - without 32 */
-#define __NR_setfsgid32		216 /* ok - without 32 */
-#define __NR_pivot_root		217 /* ok */
-#define __NR_mincore		218 /* ok */
-#define __NR_madvise		219 /* ok */
-#define __NR_getdents64		220 /* ok */
-#define __NR_fcntl64		221 /* ok */
-/* 223 is unused */
-#define __NR_gettid		224 /* ok */
-#define __NR_readahead		225 /* ok */
-#define __NR_setxattr		226 /* ok */
-#define __NR_lsetxattr		227 /* ok */
-#define __NR_fsetxattr		228 /* ok */
-#define __NR_getxattr		229 /* ok */
-#define __NR_lgetxattr		230 /* ok */
-#define __NR_fgetxattr		231 /* ok */
-#define __NR_listxattr		232 /* ok */
-#define __NR_llistxattr		233 /* ok */
-#define __NR_flistxattr		234 /* ok */
-#define __NR_removexattr	235 /* ok */
-#define __NR_lremovexattr	236 /* ok */
-#define __NR_fremovexattr	237 /* ok */
-#define __NR_tkill		238 /* ok */
-#define __NR_sendfile64		239 /* ok */
-#define __NR_futex		240 /* ok */
-#define __NR_sched_setaffinity	241 /* ok */
-#define __NR_sched_getaffinity	242 /* ok */
-#define __NR_set_thread_area	243 /* remove */
-#define __NR_get_thread_area	244 /* remove */
-#define __NR_io_setup		245 /* ok */
-#define __NR_io_destroy		246 /* ok */
-#define __NR_io_getevents	247 /* ok */
-#define __NR_io_submit		248 /* ok */
-#define __NR_io_cancel		249 /* ok */
-#define __NR_fadvise64		250 /* remove -> sys_fadvise64_64 */
-/* 251 is available for reuse (was briefly sys_set_zone_reclaim) */
-#define __NR_exit_group		252 /* ok */
-#define __NR_lookup_dcookie	253 /* ok */
-#define __NR_epoll_create	254 /* ok */
-#define __NR_epoll_ctl		255 /* ok */
-#define __NR_epoll_wait		256 /* obsolete -> sys_epoll_pwait */
-#define __NR_remap_file_pages	257 /* only for mmu */
-#define __NR_set_tid_address	258 /* ok */
-#define __NR_timer_create	259 /* ok */
-#define __NR_timer_settime	(__NR_timer_create+1) /* 260 */ /* ok */
-#define __NR_timer_gettime	(__NR_timer_create+2) /* 261 */ /* ok */
-#define __NR_timer_getoverrun	(__NR_timer_create+3) /* 262 */ /* ok */
-#define __NR_timer_delete	(__NR_timer_create+4) /* 263 */ /* ok */
-#define __NR_clock_settime	(__NR_timer_create+5) /* 264 */ /* ok */
-#define __NR_clock_gettime	(__NR_timer_create+6) /* 265 */ /* ok */
-#define __NR_clock_getres	(__NR_timer_create+7) /* 266 */ /* ok */
-#define __NR_clock_nanosleep	(__NR_timer_create+8) /* 267 */ /* ok */
-#define __NR_statfs64		268 /* ok */
-#define __NR_fstatfs64		269 /* ok */
-#define __NR_tgkill		270 /* ok */
-#define __NR_utimes		271 /* obsolete -> sys_futimesat */
-#define __NR_fadvise64_64	272 /* ok */
-#define __NR_vserver		273 /* ok */
-#define __NR_mbind		274 /* only for mmu */
-#define __NR_get_mempolicy	275 /* only for mmu */
-#define __NR_set_mempolicy	276 /* only for mmu */
-#define __NR_mq_open		277 /* ok */
-#define __NR_mq_unlink		(__NR_mq_open+1) /* 278 */ /* ok */
-#define __NR_mq_timedsend	(__NR_mq_open+2) /* 279 */ /* ok */
-#define __NR_mq_timedreceive	(__NR_mq_open+3) /* 280 */ /* ok */
-#define __NR_mq_notify		(__NR_mq_open+4) /* 281 */ /* ok */
-#define __NR_mq_getsetattr	(__NR_mq_open+5) /* 282 */ /* ok */
-#define __NR_kexec_load		283 /* ok */
-#define __NR_waitid		284 /* ok */
-/* #define __NR_sys_setaltroot	285 */
-#define __NR_add_key		286 /* ok */
-#define __NR_request_key	287 /* ok */
-#define __NR_keyctl		288 /* ok */
-#define __NR_ioprio_set		289 /* ok */
-#define __NR_ioprio_get		290 /* ok */
-#define __NR_inotify_init	291 /* ok */
-#define __NR_inotify_add_watch	292 /* ok */
-#define __NR_inotify_rm_watch	293 /* ok */
-#define __NR_migrate_pages	294 /* mmu */
-#define __NR_openat		295 /* ok */
-#define __NR_mkdirat		296 /* ok */
-#define __NR_mknodat		297 /* ok */
-#define __NR_fchownat		298 /* ok */
-#define __NR_futimesat		299 /* obsolete -> sys_utimesat */
-#define __NR_fstatat64		300 /* stat64 */
-#define __NR_unlinkat		301 /* ok */
-#define __NR_renameat		302 /* ok */
-#define __NR_linkat		303 /* ok */
-#define __NR_symlinkat		304 /* ok */
-#define __NR_readlinkat		305 /* ok */
-#define __NR_fchmodat		306 /* ok */
-#define __NR_faccessat		307 /* ok */
-#define __NR_pselect6		308 /* ok */
-#define __NR_ppoll		309 /* ok */
-#define __NR_unshare		310 /* ok */
-#define __NR_set_robust_list	311 /* ok */
-#define __NR_get_robust_list	312 /* ok */
-#define __NR_splice		313 /* ok */
-#define __NR_sync_file_range	314 /* ok */
-#define __NR_tee		315 /* ok */
-#define __NR_vmsplice		316 /* ok */
-#define __NR_move_pages		317 /* mmu */
-#define __NR_getcpu		318 /* ok */
-#define __NR_epoll_pwait	319 /* ok */
-#define __NR_utimensat		320 /* ok */
-#define __NR_signalfd		321 /* ok */
-#define __NR_timerfd_create	322 /* ok */
-#define __NR_eventfd		323 /* ok */
-#define __NR_fallocate		324 /* ok */
-#define __NR_semtimedop		325 /* ok - semaphore group */
-#define __NR_timerfd_settime	326 /* ok */
-#define __NR_timerfd_gettime	327 /* ok */
-/* sysv ipc syscalls */
-#define __NR_semctl		328 /* ok */
-#define __NR_semget		329 /* ok */
-#define __NR_semop		330 /* ok */
-#define __NR_msgctl		331 /* ok */
-#define __NR_msgget		332 /* ok */
-#define __NR_msgrcv		333 /* ok */
-#define __NR_msgsnd		334 /* ok */
-#define __NR_shmat		335 /* ok */
-#define __NR_shmctl		336 /* ok */
-#define __NR_shmdt		337 /* ok */
-#define __NR_shmget		338 /* ok */
-
-
-#define __NR_signalfd4		339 /* new */
-#define __NR_eventfd2		340 /* new */
-#define __NR_epoll_create1	341 /* new */
-#define __NR_dup3		342 /* new */
-#define __NR_pipe2		343 /* new */
-#define __NR_inotify_init1	344 /* new */
-#define __NR_socket		345 /* new */
-#define __NR_socketpair		346 /* new */
-#define __NR_bind		347 /* new */
-#define __NR_listen		348 /* new */
-#define __NR_accept		349 /* new */
-#define __NR_connect		350 /* new */
-#define __NR_getsockname	351 /* new */
-#define __NR_getpeername	352 /* new */
-#define __NR_sendto		353 /* new */
-#define __NR_send		354 /* new */
-#define __NR_recvfrom		355 /* new */
-#define __NR_recv		356 /* new */
-#define __NR_setsockopt		357 /* new */
-#define __NR_getsockopt		358 /* new */
-#define __NR_shutdown		359 /* new */
-#define __NR_sendmsg		360 /* new */
-#define __NR_recvmsg		361 /* new */
-#define __NR_accept4		362 /* new */
-#define __NR_preadv		363 /* new */
-#define __NR_pwritev		364 /* new */
-#define __NR_rt_tgsigqueueinfo	365 /* new */
-#define __NR_perf_event_open	366 /* new */
-#define __NR_recvmmsg		367 /* new */
-#define __NR_fanotify_init	368
-#define __NR_fanotify_mark	369
-#define __NR_prlimit64		370
-#define __NR_name_to_handle_at	371
-#define __NR_open_by_handle_at	372
-#define __NR_clock_adjtime	373
-#define __NR_syncfs		374
-#define __NR_setns		375
-#define __NR_sendmmsg		376
-#define __NR_process_vm_readv	377
-#define __NR_process_vm_writev	378
-#define __NR_kcmp		379
-#define __NR_finit_module	380
-#define __NR_sched_setattr	381
-#define __NR_sched_getattr	382
-#define __NR_renameat2		383
-#define __NR_seccomp		384
-#define __NR_getrandom		385
-#define __NR_memfd_create	386
-#define __NR_bpf		387
-#define __NR_execveat		388
-#define __NR_userfaultfd	389
-#define __NR_membarrier		390
-#define __NR_mlock2		391
-#define __NR_copy_file_range	392
-#define __NR_preadv2		393
-#define __NR_pwritev2		394
-#define __NR_pkey_mprotect	395
-#define __NR_pkey_alloc		396
-#define __NR_pkey_free		397
-#define __NR_statx		398
-#define __NR_io_pgetevents	399
-#define __NR_rseq		400
-
-#define __NR_syscalls         401
+#include <asm/unistd_32.h>
 
 #endif /* _UAPI_ASM_MICROBLAZE_UNISTD_H */
diff --git a/arch/microblaze/kernel/syscall_table.S b/arch/microblaze/kernel/syscall_table.S
index 6ab6505..f7598b2 100644
--- a/arch/microblaze/kernel/syscall_table.S
+++ b/arch/microblaze/kernel/syscall_table.S
@@ -1,404 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
+
+#define __SYSCALL(nr, entry, nargs) .long entry
+
 ENTRY(sys_call_table)
-	.long sys_restart_syscall	/* 0 - old "setup()" system call,
-					 * used for restarting */
-	.long sys_exit
-	.long sys_fork
-	.long sys_read
-	.long sys_write
-	.long sys_open			/* 5 */
-	.long sys_close
-	.long sys_waitpid
-	.long sys_creat
-	.long sys_link
-	.long sys_unlink		/* 10 */
-	.long sys_execve
-	.long sys_chdir
-	.long sys_time
-	.long sys_mknod
-	.long sys_chmod			/* 15 */
-	.long sys_lchown
-	.long sys_ni_syscall		/* old break syscall holder */
-	.long sys_ni_syscall		/* old stat */
-	.long sys_lseek
-	.long sys_getpid		/* 20 */
-	.long sys_mount
-	.long sys_oldumount
-	.long sys_setuid
-	.long sys_getuid
-	.long sys_stime			/* 25 */
-	.long sys_ptrace
-	.long sys_alarm
-	.long sys_ni_syscall		/* oldfstat */
-	.long sys_pause
-	.long sys_utime			/* 30 */
-	.long sys_ni_syscall		/* old stty syscall holder */
-	.long sys_ni_syscall		/* old gtty syscall holder */
-	.long sys_access
-	.long sys_nice
-	.long sys_ni_syscall		/* 35 - old ftime syscall holder */
-	.long sys_sync
-	.long sys_kill
-	.long sys_rename
-	.long sys_mkdir
-	.long sys_rmdir			/* 40 */
-	.long sys_dup
-	.long sys_pipe
-	.long sys_times
-	.long sys_ni_syscall		/* old prof syscall holder */
-	.long sys_brk			/* 45 */
-	.long sys_setgid
-	.long sys_getgid
-	.long sys_signal
-	.long sys_geteuid
-	.long sys_getegid		/* 50 */
-	.long sys_acct
-	.long sys_umount		/* recycled never used phys() */
-	.long sys_ni_syscall		/* old lock syscall holder */
-	.long sys_ioctl
-	.long sys_fcntl			/* 55 */
-	.long sys_ni_syscall		/* old mpx syscall holder */
-	.long sys_setpgid
-	.long sys_ni_syscall		/* old ulimit syscall holder */
-	.long sys_ni_syscall		/* olduname */
-	.long sys_umask			/* 60 */
-	.long sys_chroot
-	.long sys_ustat
-	.long sys_dup2
-	.long sys_getppid
-	.long sys_getpgrp		/* 65 */
-	.long sys_setsid
-	.long sys_ni_syscall		/* sys_sigaction */
-	.long sys_sgetmask
-	.long sys_ssetmask
-	.long sys_setreuid		/* 70 */
-	.long sys_setregid
-	.long sys_ni_syscall		/* sys_sigsuspend_wrapper */
-	.long sys_sigpending
-	.long sys_sethostname
-	.long sys_setrlimit		/* 75 */
-	.long sys_ni_syscall		/* old_getrlimit */
-	.long sys_getrusage
-	.long sys_gettimeofday
-	.long sys_settimeofday
-	.long sys_getgroups		/* 80 */
-	.long sys_setgroups
-	.long sys_ni_syscall		/* old_select */
-	.long sys_symlink
-	.long sys_ni_syscall		/* oldlstat */
-	.long sys_readlink		/* 85 */
-	.long sys_uselib
-	.long sys_swapon
-	.long sys_reboot
-	.long sys_ni_syscall		/* old_readdir */
-	.long sys_mmap			/* 90 */ /* old_mmap */
-	.long sys_munmap
-	.long sys_truncate
-	.long sys_ftruncate
-	.long sys_fchmod
-	.long sys_fchown		/* 95 */
-	.long sys_getpriority
-	.long sys_setpriority
-	.long sys_ni_syscall		/* old profil syscall holder */
-	.long sys_statfs
-	.long sys_fstatfs		/* 100 */
-	.long sys_ni_syscall		/* ioperm */
-	.long sys_socketcall
-	.long sys_syslog		/* operation with system console */
-	.long sys_setitimer
-	.long sys_getitimer		/* 105 */
-	.long sys_newstat
-	.long sys_newlstat
-	.long sys_newfstat
-	.long sys_ni_syscall		/* uname */
-	.long sys_ni_syscall		/* 110 */ /* iopl */
-	.long sys_vhangup
-	.long sys_ni_syscall		/* old "idle" system call */
-	.long sys_ni_syscall		/* old sys_vm86old */
-	.long sys_wait4
-	.long sys_swapoff		/* 115 */
-	.long sys_sysinfo
-	.long sys_ni_syscall		/* old sys_ipc */
-	.long sys_fsync
-	.long sys_ni_syscall		/* sys_sigreturn_wrapper */
-	.long sys_clone		/* 120 */
-	.long sys_setdomainname
-	.long sys_newuname
-	.long sys_ni_syscall		/* modify_ldt */
-	.long sys_adjtimex
-	.long sys_mprotect		/* 125:	sys_mprotect */
-	.long sys_sigprocmask
-	.long sys_ni_syscall		/* old "create_module" */
-	.long sys_init_module
-	.long sys_delete_module
-	.long sys_ni_syscall		/* 130:	old "get_kernel_syms" */
-	.long sys_quotactl
-	.long sys_getpgid
-	.long sys_fchdir
-	.long sys_bdflush
-	.long sys_sysfs			/* 135 */
-	.long sys_personality
-	.long sys_ni_syscall		/* reserved for afs_syscall */
-	.long sys_setfsuid
-	.long sys_setfsgid
-	.long sys_llseek		/* 140 */
-	.long sys_getdents
-	.long sys_select
-	.long sys_flock
-	.long sys_msync
-	.long sys_readv			/* 145 */
-	.long sys_writev
-	.long sys_getsid
-	.long sys_fdatasync
-	.long sys_sysctl
-	.long sys_mlock		/* 150:	sys_mlock */
-	.long sys_munlock
-	.long sys_mlockall
-	.long sys_munlockall
-	.long sys_sched_setparam
-	.long sys_sched_getparam	/* 155 */
-	.long sys_sched_setscheduler
-	.long sys_sched_getscheduler
-	.long sys_sched_yield
-	.long sys_sched_get_priority_max
-	.long sys_sched_get_priority_min	/* 160 */
-	.long sys_sched_rr_get_interval
-	.long sys_nanosleep
-	.long sys_mremap
-	.long sys_setresuid
-	.long sys_getresuid		/* 165 */
-	.long sys_ni_syscall		/* sys_vm86 */
-	.long sys_ni_syscall		/* Old sys_query_module */
-	.long sys_poll
-	.long sys_ni_syscall		/* old nfsservctl */
-	.long sys_setresgid		/* 170 */
-	.long sys_getresgid
-	.long sys_prctl
-	.long sys_rt_sigreturn_wrapper
-	.long sys_rt_sigaction
-	.long sys_rt_sigprocmask	/* 175 */
-	.long sys_rt_sigpending
-	.long sys_rt_sigtimedwait
-	.long sys_rt_sigqueueinfo
-	.long sys_rt_sigsuspend
-	.long sys_pread64		/* 180 */
-	.long sys_pwrite64
-	.long sys_chown
-	.long sys_getcwd
-	.long sys_capget
-	.long sys_capset		/* 185 */
-	.long sys_ni_syscall		/* sigaltstack */
-	.long sys_sendfile
-	.long sys_ni_syscall		/* reserved for streams1 */
-	.long sys_ni_syscall		/* reserved for streams2 */
-	.long sys_vfork		/* 190 */
-	.long sys_getrlimit
-	.long sys_mmap2
-	.long sys_truncate64
-	.long sys_ftruncate64
-	.long sys_stat64		/* 195 */
-	.long sys_lstat64
-	.long sys_fstat64
-	.long sys_lchown
-	.long sys_getuid
-	.long sys_getgid		/* 200 */
-	.long sys_geteuid
-	.long sys_getegid
-	.long sys_setreuid
-	.long sys_setregid
-	.long sys_getgroups		/* 205 */
-	.long sys_setgroups
-	.long sys_fchown
-	.long sys_setresuid
-	.long sys_getresuid
-	.long sys_setresgid		/* 210 */
-	.long sys_getresgid
-	.long sys_chown
-	.long sys_setuid
-	.long sys_setgid
-	.long sys_setfsuid		/* 215 */
-	.long sys_setfsgid
-	.long sys_pivot_root
-	.long sys_mincore
-	.long sys_madvise
-	.long sys_getdents64		/* 220 */
-	.long sys_fcntl64
-	.long sys_ni_syscall		/* reserved for TUX */
-	.long sys_ni_syscall
-	.long sys_gettid
-	.long sys_readahead		/* 225 */
-	.long sys_setxattr
-	.long sys_lsetxattr
-	.long sys_fsetxattr
-	.long sys_getxattr
-	.long sys_lgetxattr		/* 230 */
-	.long sys_fgetxattr
-	.long sys_listxattr
-	.long sys_llistxattr
-	.long sys_flistxattr
-	.long sys_removexattr		/* 235 */
-	.long sys_lremovexattr
-	.long sys_fremovexattr
-	.long sys_tkill
-	.long sys_sendfile64
-	.long sys_futex			/* 240 */
-	.long sys_sched_setaffinity
-	.long sys_sched_getaffinity
-	.long sys_ni_syscall		/* set_thread_area */
-	.long sys_ni_syscall		/* get_thread_area */
-	.long sys_io_setup		/* 245 */
-	.long sys_io_destroy
-	.long sys_io_getevents
-	.long sys_io_submit
-	.long sys_io_cancel
-	.long sys_fadvise64		/* 250 */
-	.long sys_ni_syscall
-	.long sys_exit_group
-	.long sys_lookup_dcookie
-	.long sys_epoll_create
-	.long sys_epoll_ctl		/* 255 */
-	.long sys_epoll_wait
-	.long sys_remap_file_pages
-	.long sys_set_tid_address
-	.long sys_timer_create
-	.long sys_timer_settime		/* 260 */
-	.long sys_timer_gettime
-	.long sys_timer_getoverrun
-	.long sys_timer_delete
-	.long sys_clock_settime
-	.long sys_clock_gettime		/* 265 */
-	.long sys_clock_getres
-	.long sys_clock_nanosleep
-	.long sys_statfs64
-	.long sys_fstatfs64
-	.long sys_tgkill		/* 270 */
-	.long sys_utimes
-	.long sys_fadvise64_64
-	.long sys_ni_syscall		/* sys_vserver */
-	.long sys_mbind
-	.long sys_get_mempolicy
-	.long sys_set_mempolicy
-	.long sys_mq_open
-	.long sys_mq_unlink
-	.long sys_mq_timedsend
-	.long sys_mq_timedreceive	/* 280 */
-	.long sys_mq_notify
-	.long sys_mq_getsetattr
-	.long sys_kexec_load
-	.long sys_waitid
-	.long sys_ni_syscall		/* 285 */ /* available */
-	.long sys_add_key
-	.long sys_request_key
-	.long sys_keyctl
-	.long sys_ioprio_set
-	.long sys_ioprio_get		/* 290 */
-	.long sys_inotify_init
-	.long sys_inotify_add_watch
-	.long sys_inotify_rm_watch
-	.long sys_ni_syscall		/* sys_migrate_pages */
-	.long sys_openat	/* 295 */
-	.long sys_mkdirat
-	.long sys_mknodat
-	.long sys_fchownat
-	.long sys_futimesat
-	.long sys_fstatat64		/* 300 */
-	.long sys_unlinkat
-	.long sys_renameat
-	.long sys_linkat
-	.long sys_symlinkat
-	.long sys_readlinkat		/* 305 */
-	.long sys_fchmodat
-	.long sys_faccessat
-	.long sys_pselect6
-	.long sys_ppoll
-	.long sys_unshare		/* 310 */
-	.long sys_set_robust_list
-	.long sys_get_robust_list
-	.long sys_splice
-	.long sys_sync_file_range
-	.long sys_tee 			/* 315 */
-	.long sys_vmsplice
-	.long sys_move_pages
-	.long sys_getcpu
-	.long sys_epoll_pwait
-	.long sys_utimensat		/* 320 */
-	.long sys_signalfd
-	.long sys_timerfd_create
-	.long sys_eventfd
-	.long sys_fallocate
-	.long sys_semtimedop		/* 325 */
-	.long sys_timerfd_settime
-	.long sys_timerfd_gettime
-	.long sys_semctl
-	.long sys_semget
-	.long sys_semop			/* 330 */
-	.long sys_msgctl
-	.long sys_msgget
-	.long sys_msgrcv
-	.long sys_msgsnd
-	.long sys_shmat			/* 335 */
-	.long sys_shmctl
-	.long sys_shmdt
-	.long sys_shmget
-	.long sys_signalfd4	/* new syscall */
-	.long sys_eventfd2		/* 340 */
-	.long sys_epoll_create1
-	.long sys_dup3
-	.long sys_pipe2
-	.long sys_inotify_init1
-	.long sys_socket		/* 345 */
-	.long sys_socketpair
-	.long sys_bind
-	.long sys_listen
-	.long sys_accept
-	.long sys_connect		/* 350 */
-	.long sys_getsockname
-	.long sys_getpeername
-	.long sys_sendto
-	.long sys_send
-	.long sys_recvfrom		/* 355 */
-	.long sys_recv
-	.long sys_setsockopt
-	.long sys_getsockopt
-	.long sys_shutdown
-	.long sys_sendmsg		/* 360 */
-	.long sys_recvmsg
-	.long sys_accept4
-	.long sys_preadv
-	.long sys_pwritev
-	.long sys_rt_tgsigqueueinfo	/* 365 */
-	.long sys_perf_event_open
-	.long sys_recvmmsg
-	.long sys_fanotify_init
-	.long sys_fanotify_mark
-	.long sys_prlimit64	/* 370 */
-	.long sys_name_to_handle_at
-	.long sys_open_by_handle_at
-	.long sys_clock_adjtime
-	.long sys_syncfs
-	.long sys_setns			/* 375 */
-	.long sys_sendmmsg
-	.long sys_process_vm_readv
-	.long sys_process_vm_writev
-	.long sys_kcmp
-	.long sys_finit_module		/* 380 */
-	.long sys_sched_setattr
-	.long sys_sched_getattr
-	.long sys_renameat2
-	.long sys_seccomp
-	.long sys_getrandom		/* 385 */
-	.long sys_memfd_create
-	.long sys_bpf
-	.long sys_execveat
-	.long sys_userfaultfd
-	.long sys_membarrier		/* 390 */
-	.long sys_mlock2
-	.long sys_copy_file_range
-	.long sys_preadv2
-	.long sys_pwritev2
-	.long sys_pkey_mprotect		/* 395 */
-	.long sys_pkey_alloc
-	.long sys_pkey_free
-	.long sys_statx
-	.long sys_io_pgetevents
-	.long sys_rseq
+#include <asm/syscall_table.h>
-- 
1.9.1

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 1/3] microblaze: Replace NR_syscalls macro from asm/unistd.h
  2018-08-09  5:27 ` [PATCH 1/3] microblaze: Replace NR_syscalls macro from asm/unistd.h Firoz Khan
  2018-08-09  5:27   ` Firoz Khan
@ 2018-08-09  6:48   ` Michal Simek
  2018-08-09  6:48     ` Michal Simek
  2018-09-18  6:37     ` Firoz Khan
  1 sibling, 2 replies; 26+ messages in thread
From: Michal Simek @ 2018-08-09  6:48 UTC (permalink / raw)
  To: Firoz Khan, Greg Kroah-Hartman, Philippe Ombredanne,
	Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel, marcin.juszkiewicz

On 9.8.2018 07:27, Firoz Khan wrote:
> __NR_syscalls macro holds the number of system call exist in this
> architecture. This macro is currently the part of asm/unistd.h file.
> We have change the value of __NR_syscalls, if we add or delete a
> system call.
> 
> One of the patch in this patch series has a script which will
> generate a uapi header based on syscall.tbl file. The syscall.tbl
> file contains the number of system call information. So we have
> two option to update __NR_syscalls value.
> 
> 1. Update __NR_syscalls in asm/unistd.h manually by counting the
>    no.of system calls. No need to update __NR_syscalls untill
>    we either add a new system call or delete an existing system
>    call.
> 
> 2. We can keep this feature it above mentioned script, that'll
>    count the number of syscalls and keep it in a generated file.
>    In this case we don't need to explicitly update __NR_syscalls
>    in asm/unistd.h file.
> 
> The 2nd option will be the recommended one. For that, I moved the
> NR_syscalls macro from asm/unistd.h to uapi/asm/unistd.h. The macro
> name also changed form NR_syscalls to __NR_syscalls for making the
> name convention same across all architecture. While __NR_syscalls
> isn't strictly part of the uapi, having it as part of the generated
> header to simplifies the implementation.

This macro was in unistd.h in past but it was moved out because it was
causing problem with strace.

commit 40c2702a02b755e0183b702778331b351f3be20c
Author:     Michal Simek <michal.simek@xilinx.com>
AuthorDate: Mon Jul 8 09:50:24 2013 +0200
Commit:     Michal Simek <michal.simek@xilinx.com>
CommitDate: Wed Jul 10 07:32:09 2013 +0200

    microblaze: Move __NR_syscalls from uapi


That's why I don't think this is the right thing to do.
I have grepped strace and glibc and none is using this macro that's why
I think it shouldn't be exported via uapi.

Thanks,
Michal

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 1/3] microblaze: Replace NR_syscalls macro from asm/unistd.h
  2018-08-09  6:48   ` Michal Simek
@ 2018-08-09  6:48     ` Michal Simek
  2018-09-18  6:37     ` Firoz Khan
  1 sibling, 0 replies; 26+ messages in thread
From: Michal Simek @ 2018-08-09  6:48 UTC (permalink / raw)
  To: Firoz Khan, Greg Kroah-Hartman, Philippe Ombredanne,
	Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel, marcin.juszkiewicz

On 9.8.2018 07:27, Firoz Khan wrote:
> __NR_syscalls macro holds the number of system call exist in this
> architecture. This macro is currently the part of asm/unistd.h file.
> We have change the value of __NR_syscalls, if we add or delete a
> system call.
> 
> One of the patch in this patch series has a script which will
> generate a uapi header based on syscall.tbl file. The syscall.tbl
> file contains the number of system call information. So we have
> two option to update __NR_syscalls value.
> 
> 1. Update __NR_syscalls in asm/unistd.h manually by counting the
>    no.of system calls. No need to update __NR_syscalls untill
>    we either add a new system call or delete an existing system
>    call.
> 
> 2. We can keep this feature it above mentioned script, that'll
>    count the number of syscalls and keep it in a generated file.
>    In this case we don't need to explicitly update __NR_syscalls
>    in asm/unistd.h file.
> 
> The 2nd option will be the recommended one. For that, I moved the
> NR_syscalls macro from asm/unistd.h to uapi/asm/unistd.h. The macro
> name also changed form NR_syscalls to __NR_syscalls for making the
> name convention same across all architecture. While __NR_syscalls
> isn't strictly part of the uapi, having it as part of the generated
> header to simplifies the implementation.

This macro was in unistd.h in past but it was moved out because it was
causing problem with strace.

commit 40c2702a02b755e0183b702778331b351f3be20c
Author:     Michal Simek <michal.simek@xilinx.com>
AuthorDate: Mon Jul 8 09:50:24 2013 +0200
Commit:     Michal Simek <michal.simek@xilinx.com>
CommitDate: Wed Jul 10 07:32:09 2013 +0200

    microblaze: Move __NR_syscalls from uapi


That's why I don't think this is the right thing to do.
I have grepped strace and glibc and none is using this macro that's why
I think it shouldn't be exported via uapi.

Thanks,
Michal

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 2/3] microblaze: Added system call table generation support
  2018-08-09  5:27 ` [PATCH 2/3] microblaze: Added system call table generation support Firoz Khan
  2018-08-09  5:27   ` Firoz Khan
@ 2018-08-09  7:05   ` Michal Simek
  2018-08-09  7:05     ` Michal Simek
  2018-09-18  6:50     ` Firoz Khan
  1 sibling, 2 replies; 26+ messages in thread
From: Michal Simek @ 2018-08-09  7:05 UTC (permalink / raw)
  To: Firoz Khan, Greg Kroah-Hartman, Philippe Ombredanne,
	Thomas Gleixner, Kate Stewart
  Cc: linux-arch, arnd, y2038, linux-kernel, marcin.juszkiewicz, deepa.kernel

On 9.8.2018 07:27, Firoz Khan wrote:
> The system call tables are in different format in all
> architecture and it will be difficult to manually add or
> modify the system calls in the respective files. To make
> it easy by keeping a script and which'll generate the
> header file and syscall table file so this change will
> unify them across all architectures.
> 
> The system call table generation script is added in
> syscalls directory which contain the script to generate
> both uapi header file system call table generation file
> and syscall.tbl file which'll be the input for the scripts.
> 
> syscall.tbl contains the list of available system calls
> along with system call number and corresponding entry point.
> Add a new system call in this architecture 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.
> 
> syscallhdr.sh and syscalltbl.sh will generate uapi header-
> unistd.h and syscall_table.h files respectively. File
> syscall_table.h is included by syscall.S - the real system
> call table. Both .sh files will parse the content syscall.tbl
> to generate the header and table files.
> 
> ARM, s390 and x86 architecuture does have the similar support.
> I leverage their implementation to come up with a generic
> solution. And this is the ground work for y2038 issue. We need
> to change 52 system call implementation and this work will
> reduce the effort by simply modify 52 entries in syscall.tbl.
> 
> Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
> ---
>  arch/microblaze/kernel/syscalls/Makefile      |  37 +++
>  arch/microblaze/kernel/syscalls/syscall.tbl   | 404 ++++++++++++++++++++++++++
>  arch/microblaze/kernel/syscalls/syscallhdr.sh |  33 +++
>  arch/microblaze/kernel/syscalls/syscalltbl.sh |  28 ++
>  4 files changed, 502 insertions(+)
>  create mode 100644 arch/microblaze/kernel/syscalls/Makefile
>  create mode 100644 arch/microblaze/kernel/syscalls/syscall.tbl
>  create mode 100644 arch/microblaze/kernel/syscalls/syscallhdr.sh

it is interesting that arm and x86 scripts and they are "almost" the
same. Is there any plan to put these script to generic location instead
of keeping the same copy in architecture?

fileguard name contains hardcoded macro prefix where in arm there is
uapi detection. The same should be done architecture and sholdn't matter
if you define macro with or without value.




>  create mode 100644 arch/microblaze/kernel/syscalls/syscalltbl.sh
> 
> diff --git a/arch/microblaze/kernel/syscalls/Makefile b/arch/microblaze/kernel/syscalls/Makefile
> new file mode 100644
> index 0000000..7624044
> --- /dev/null
> +++ b/arch/microblaze/kernel/syscalls/Makefile
> @@ -0,0 +1,37 @@
> +# SPDX-License-Identifier: GPL-2.0
> +out := arch/$(SRCARCH)/include/generated/asm
> +uapi := arch/$(SRCARCH)/include/generated/uapi/asm
> +
> +_dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') \
> +	  $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
> +
> +syscall := $(srctree)/$(src)/syscall.tbl
> +
> +syshdr := $(srctree)/$(src)/syscallhdr.sh
> +systbl := $(srctree)/$(src)/syscalltbl.sh
> +
> +quiet_cmd_syshdr = SYSHDR  $@
> +      cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@'  \
> +		   '$(syshdr_abi_$(basetarget))'          \
> +		   '$(syshdr_pfx_$(basetarget))'          \
> +		   '$(syshdr_offset_$(basetarget))'
> +
> +quiet_cmd_systbl = SYSTBL  $@
> +      cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@'  \
> +		   '$(systbl_abi_$(basetarget))'
> +
> +$(uapi)/unistd_32.h: $(syscall) $(syshdr)
> +	$(call if_changed,syshdr)
> +
> +$(out)/syscall_table.h: $(syscall) $(systbl)
> +	$(call if_changed,systbl)
> +
> +uapisyshdr-y			+= unistd_32.h
> +syshdr-y			+= syscall_table.h
> +
> +targets	+= $(uapisyshdr-y) $(syshdr-y)
> +
> +PHONY += all
> +all: $(addprefix $(uapi)/,$(uapisyshdr-y))
> +all: $(addprefix $(out)/,$(syshdr-y))
> +	@:
> diff --git a/arch/microblaze/kernel/syscalls/syscall.tbl b/arch/microblaze/kernel/syscalls/syscall.tbl
> new file mode 100644
> index 0000000..219d940
> --- /dev/null
> +++ b/arch/microblaze/kernel/syscalls/syscall.tbl
> @@ -0,0 +1,404 @@
> +#
> +# Linux system call numbers and entry vectors
> +#
> +# The format is:
> +# <number> <abi> <name> <entry point>
> +#
> +# The abi is always common for this file.
> +#
> +0       common  restart_syscall                 sys_restart_syscall
> +1       common  exit                            sys_exit
> +2       common  fork                            sys_fork
> +3       common  read                            sys_read

Arm(and partially s390) are using tabs for indentation. Any reason not
to use it here too?

Thanks,
Michal
_______________________________________________
Y2038 mailing list
Y2038@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/y2038

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 2/3] microblaze: Added system call table generation support
  2018-08-09  7:05   ` Michal Simek
@ 2018-08-09  7:05     ` Michal Simek
  2018-09-18  6:50     ` Firoz Khan
  1 sibling, 0 replies; 26+ messages in thread
From: Michal Simek @ 2018-08-09  7:05 UTC (permalink / raw)
  To: Firoz Khan, Greg Kroah-Hartman, Philippe Ombredanne,
	Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel, marcin.juszkiewicz

On 9.8.2018 07:27, Firoz Khan wrote:
> The system call tables are in different format in all
> architecture and it will be difficult to manually add or
> modify the system calls in the respective files. To make
> it easy by keeping a script and which'll generate the
> header file and syscall table file so this change will
> unify them across all architectures.
> 
> The system call table generation script is added in
> syscalls directory which contain the script to generate
> both uapi header file system call table generation file
> and syscall.tbl file which'll be the input for the scripts.
> 
> syscall.tbl contains the list of available system calls
> along with system call number and corresponding entry point.
> Add a new system call in this architecture 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.
> 
> syscallhdr.sh and syscalltbl.sh will generate uapi header-
> unistd.h and syscall_table.h files respectively. File
> syscall_table.h is included by syscall.S - the real system
> call table. Both .sh files will parse the content syscall.tbl
> to generate the header and table files.
> 
> ARM, s390 and x86 architecuture does have the similar support.
> I leverage their implementation to come up with a generic
> solution. And this is the ground work for y2038 issue. We need
> to change 52 system call implementation and this work will
> reduce the effort by simply modify 52 entries in syscall.tbl.
> 
> Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
> ---
>  arch/microblaze/kernel/syscalls/Makefile      |  37 +++
>  arch/microblaze/kernel/syscalls/syscall.tbl   | 404 ++++++++++++++++++++++++++
>  arch/microblaze/kernel/syscalls/syscallhdr.sh |  33 +++
>  arch/microblaze/kernel/syscalls/syscalltbl.sh |  28 ++
>  4 files changed, 502 insertions(+)
>  create mode 100644 arch/microblaze/kernel/syscalls/Makefile
>  create mode 100644 arch/microblaze/kernel/syscalls/syscall.tbl
>  create mode 100644 arch/microblaze/kernel/syscalls/syscallhdr.sh

it is interesting that arm and x86 scripts and they are "almost" the
same. Is there any plan to put these script to generic location instead
of keeping the same copy in architecture?

fileguard name contains hardcoded macro prefix where in arm there is
uapi detection. The same should be done architecture and sholdn't matter
if you define macro with or without value.




>  create mode 100644 arch/microblaze/kernel/syscalls/syscalltbl.sh
> 
> diff --git a/arch/microblaze/kernel/syscalls/Makefile b/arch/microblaze/kernel/syscalls/Makefile
> new file mode 100644
> index 0000000..7624044
> --- /dev/null
> +++ b/arch/microblaze/kernel/syscalls/Makefile
> @@ -0,0 +1,37 @@
> +# SPDX-License-Identifier: GPL-2.0
> +out := arch/$(SRCARCH)/include/generated/asm
> +uapi := arch/$(SRCARCH)/include/generated/uapi/asm
> +
> +_dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') \
> +	  $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
> +
> +syscall := $(srctree)/$(src)/syscall.tbl
> +
> +syshdr := $(srctree)/$(src)/syscallhdr.sh
> +systbl := $(srctree)/$(src)/syscalltbl.sh
> +
> +quiet_cmd_syshdr = SYSHDR  $@
> +      cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@'  \
> +		   '$(syshdr_abi_$(basetarget))'          \
> +		   '$(syshdr_pfx_$(basetarget))'          \
> +		   '$(syshdr_offset_$(basetarget))'
> +
> +quiet_cmd_systbl = SYSTBL  $@
> +      cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@'  \
> +		   '$(systbl_abi_$(basetarget))'
> +
> +$(uapi)/unistd_32.h: $(syscall) $(syshdr)
> +	$(call if_changed,syshdr)
> +
> +$(out)/syscall_table.h: $(syscall) $(systbl)
> +	$(call if_changed,systbl)
> +
> +uapisyshdr-y			+= unistd_32.h
> +syshdr-y			+= syscall_table.h
> +
> +targets	+= $(uapisyshdr-y) $(syshdr-y)
> +
> +PHONY += all
> +all: $(addprefix $(uapi)/,$(uapisyshdr-y))
> +all: $(addprefix $(out)/,$(syshdr-y))
> +	@:
> diff --git a/arch/microblaze/kernel/syscalls/syscall.tbl b/arch/microblaze/kernel/syscalls/syscall.tbl
> new file mode 100644
> index 0000000..219d940
> --- /dev/null
> +++ b/arch/microblaze/kernel/syscalls/syscall.tbl
> @@ -0,0 +1,404 @@
> +#
> +# Linux system call numbers and entry vectors
> +#
> +# The format is:
> +# <number> <abi> <name> <entry point>
> +#
> +# The abi is always common for this file.
> +#
> +0       common  restart_syscall                 sys_restart_syscall
> +1       common  exit                            sys_exit
> +2       common  fork                            sys_fork
> +3       common  read                            sys_read

Arm(and partially s390) are using tabs for indentation. Any reason not
to use it here too?

Thanks,
Michal

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 3/3] microblaze: uapi header and system call table file generation
  2018-08-09  5:27 ` [PATCH 3/3] microblaze: uapi header and system call table file generation Firoz Khan
  2018-08-09  5:27   ` Firoz Khan
@ 2018-08-09  7:12   ` Michal Simek
  2018-08-09  7:12     ` Michal Simek
  2018-09-18  7:12     ` Firoz Khan
  1 sibling, 2 replies; 26+ messages in thread
From: Michal Simek @ 2018-08-09  7:12 UTC (permalink / raw)
  To: Firoz Khan, Greg Kroah-Hartman, Philippe Ombredanne,
	Thomas Gleixner, Kate Stewart
  Cc: linux-arch, arnd, y2038, linux-kernel, marcin.juszkiewicz, deepa.kernel

On 9.8.2018 07:27, Firoz Khan wrote:
> System call table generation script must be run to generate
> unistd_32.h and syscall_table.h files. This patch will have
> changes which will invokes the script.
> 
> This patch will generate unistd_32.h and syscall_table.h
> files by the syscall table generation script invoked by
> arch/microblaze/Makefile and the generated files against the
> removed files will be identical.
> 
> The generated uapi header file will be included in
> uapi/asm/unistd.h and generated system call table support
> file will be included by microblaze/kernel/syscall.S file.
> 
> Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
> ---
>  arch/microblaze/Makefile                  |   3 +
>  arch/microblaze/include/asm/Kbuild        |   2 +
>  arch/microblaze/include/uapi/asm/Kbuild   |   2 +
>  arch/microblaze/include/uapi/asm/unistd.h | 409 +-----------------------------
>  arch/microblaze/kernel/syscall_table.S    | 406 +----------------------------
>  5 files changed, 12 insertions(+), 810 deletions(-)
> 
> diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile
> index d269dd4b..6121a2b 100644
> --- a/arch/microblaze/Makefile
> +++ b/arch/microblaze/Makefile
> @@ -81,6 +81,9 @@ all: linux.bin
>  archclean:
>  	$(Q)$(MAKE) $(clean)=$(boot)
>  
> +archheaders:
> +	$(Q)$(MAKE) $(build)=arch/microblaze/kernel/syscalls all
> +
>  linux.bin linux.bin.gz linux.bin.ub: vmlinux
>  	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
>  
> diff --git a/arch/microblaze/include/asm/Kbuild b/arch/microblaze/include/asm/Kbuild
> index fe6a6c6..99225ab 100644
> --- a/arch/microblaze/include/asm/Kbuild
> +++ b/arch/microblaze/include/asm/Kbuild
> @@ -30,3 +30,5 @@ generic-y += trace_clock.h
>  generic-y += vga.h
>  generic-y += word-at-a-time.h
>  generic-y += xor.h
> +
> +generated-y += syscall_table.h
> \ No newline at end of file

This doesn't look right.


> diff --git a/arch/microblaze/include/uapi/asm/Kbuild b/arch/microblaze/include/uapi/asm/Kbuild
> index 2c6a6bf..8fe26a3 100644
> --- a/arch/microblaze/include/uapi/asm/Kbuild
> +++ b/arch/microblaze/include/uapi/asm/Kbuild
> @@ -28,3 +28,5 @@ generic-y += termbits.h
>  generic-y += termios.h
>  generic-y += types.h
>  generic-y += ucontext.h
> +
> +generated-y += unistd_32.h
> \ No newline at end of file

ditto.

Thanks,
Michal

_______________________________________________
Y2038 mailing list
Y2038@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/y2038

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 3/3] microblaze: uapi header and system call table file generation
  2018-08-09  7:12   ` Michal Simek
@ 2018-08-09  7:12     ` Michal Simek
  2018-09-18  7:12     ` Firoz Khan
  1 sibling, 0 replies; 26+ messages in thread
From: Michal Simek @ 2018-08-09  7:12 UTC (permalink / raw)
  To: Firoz Khan, Greg Kroah-Hartman, Philippe Ombredanne,
	Thomas Gleixner, Kate Stewart
  Cc: y2038, linux-kernel, linux-arch, arnd, deepa.kernel, marcin.juszkiewicz

On 9.8.2018 07:27, Firoz Khan wrote:
> System call table generation script must be run to generate
> unistd_32.h and syscall_table.h files. This patch will have
> changes which will invokes the script.
> 
> This patch will generate unistd_32.h and syscall_table.h
> files by the syscall table generation script invoked by
> arch/microblaze/Makefile and the generated files against the
> removed files will be identical.
> 
> The generated uapi header file will be included in
> uapi/asm/unistd.h and generated system call table support
> file will be included by microblaze/kernel/syscall.S file.
> 
> Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
> ---
>  arch/microblaze/Makefile                  |   3 +
>  arch/microblaze/include/asm/Kbuild        |   2 +
>  arch/microblaze/include/uapi/asm/Kbuild   |   2 +
>  arch/microblaze/include/uapi/asm/unistd.h | 409 +-----------------------------
>  arch/microblaze/kernel/syscall_table.S    | 406 +----------------------------
>  5 files changed, 12 insertions(+), 810 deletions(-)
> 
> diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile
> index d269dd4b..6121a2b 100644
> --- a/arch/microblaze/Makefile
> +++ b/arch/microblaze/Makefile
> @@ -81,6 +81,9 @@ all: linux.bin
>  archclean:
>  	$(Q)$(MAKE) $(clean)=$(boot)
>  
> +archheaders:
> +	$(Q)$(MAKE) $(build)=arch/microblaze/kernel/syscalls all
> +
>  linux.bin linux.bin.gz linux.bin.ub: vmlinux
>  	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
>  
> diff --git a/arch/microblaze/include/asm/Kbuild b/arch/microblaze/include/asm/Kbuild
> index fe6a6c6..99225ab 100644
> --- a/arch/microblaze/include/asm/Kbuild
> +++ b/arch/microblaze/include/asm/Kbuild
> @@ -30,3 +30,5 @@ generic-y += trace_clock.h
>  generic-y += vga.h
>  generic-y += word-at-a-time.h
>  generic-y += xor.h
> +
> +generated-y += syscall_table.h
> \ No newline at end of file

This doesn't look right.


> diff --git a/arch/microblaze/include/uapi/asm/Kbuild b/arch/microblaze/include/uapi/asm/Kbuild
> index 2c6a6bf..8fe26a3 100644
> --- a/arch/microblaze/include/uapi/asm/Kbuild
> +++ b/arch/microblaze/include/uapi/asm/Kbuild
> @@ -28,3 +28,5 @@ generic-y += termbits.h
>  generic-y += termios.h
>  generic-y += types.h
>  generic-y += ucontext.h
> +
> +generated-y += unistd_32.h
> \ No newline at end of file

ditto.

Thanks,
Michal

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 1/3] microblaze: Replace NR_syscalls macro from asm/unistd.h
  2018-08-09  6:48   ` Michal Simek
  2018-08-09  6:48     ` Michal Simek
@ 2018-09-18  6:37     ` Firoz Khan
  2018-09-18  6:37       ` Firoz Khan
  2018-10-02  7:07       ` Michal Simek
  1 sibling, 2 replies; 26+ messages in thread
From: Firoz Khan @ 2018-09-18  6:37 UTC (permalink / raw)
  To: Michal Simek
  Cc: Greg Kroah-Hartman, Philippe Ombredanne, Thomas Gleixner,
	Kate Stewart, y2038, linux-kernel, linux-arch, Arnd Bergmann,
	Deepa Dinamani, Marcin Juszkiewicz

On 9 August 2018 at 12:18, Michal Simek <michal.simek@xilinx.com> wrote:
> On 9.8.2018 07:27, Firoz Khan wrote:
>> __NR_syscalls macro holds the number of system call exist in this
>> architecture. This macro is currently the part of asm/unistd.h file.
>> We have change the value of __NR_syscalls, if we add or delete a
>> system call.
>>
>> One of the patch in this patch series has a script which will
>> generate a uapi header based on syscall.tbl file. The syscall.tbl
>> file contains the number of system call information. So we have
>> two option to update __NR_syscalls value.
>>
>> 1. Update __NR_syscalls in asm/unistd.h manually by counting the
>>    no.of system calls. No need to update __NR_syscalls untill
>>    we either add a new system call or delete an existing system
>>    call.
>>
>> 2. We can keep this feature it above mentioned script, that'll
>>    count the number of syscalls and keep it in a generated file.
>>    In this case we don't need to explicitly update __NR_syscalls
>>    in asm/unistd.h file.
>>
>> The 2nd option will be the recommended one. For that, I moved the
>> NR_syscalls macro from asm/unistd.h to uapi/asm/unistd.h. The macro
>> name also changed form NR_syscalls to __NR_syscalls for making the
>> name convention same across all architecture. While __NR_syscalls
>> isn't strictly part of the uapi, having it as part of the generated
>> header to simplifies the implementation.
>
> This macro was in unistd.h in past but it was moved out because it was
> causing problem with strace.
>
> commit 40c2702a02b755e0183b702778331b351f3be20c
> Author:     Michal Simek <michal.simek@xilinx.com>
> AuthorDate: Mon Jul 8 09:50:24 2013 +0200
> Commit:     Michal Simek <michal.simek@xilinx.com>
> CommitDate: Wed Jul 10 07:32:09 2013 +0200
>
>     microblaze: Move __NR_syscalls from uapi
>
>
> That's why I don't think this is the right thing to do.
> I have grepped strace and glibc and none is using this macro that's why
> I think it shouldn't be exported via uapi.


Thanks for you reply :)
Sorry for the delayed response :(

I would like to keep __NR_syscalls macro to uapi header in order to simplify
the system call table generation script. Otherwise the __NR_syscalls
macro need to update manually. That become a problem.

Please check the below implementation in uapi file make sense?
It is an easy workaround to leave __NR_syscalls macro in uapi/asm/unistd.h
and enclose it in #ifdef __KERNEL__

...
...
#define __NR_pkey_free  397
#define __NR_statx      398

#ifdef __KERNEL__
#define __NR_syscalls   399
#endif
...
...

- Firoz

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 1/3] microblaze: Replace NR_syscalls macro from asm/unistd.h
  2018-09-18  6:37     ` Firoz Khan
@ 2018-09-18  6:37       ` Firoz Khan
  2018-10-02  7:07       ` Michal Simek
  1 sibling, 0 replies; 26+ messages in thread
From: Firoz Khan @ 2018-09-18  6:37 UTC (permalink / raw)
  To: Michal Simek
  Cc: Greg Kroah-Hartman, Philippe Ombredanne, Thomas Gleixner,
	Kate Stewart, y2038, linux-kernel, linux-arch, Arnd Bergmann,
	Deepa Dinamani, Marcin Juszkiewicz

On 9 August 2018 at 12:18, Michal Simek <michal.simek@xilinx.com> wrote:
> On 9.8.2018 07:27, Firoz Khan wrote:
>> __NR_syscalls macro holds the number of system call exist in this
>> architecture. This macro is currently the part of asm/unistd.h file.
>> We have change the value of __NR_syscalls, if we add or delete a
>> system call.
>>
>> One of the patch in this patch series has a script which will
>> generate a uapi header based on syscall.tbl file. The syscall.tbl
>> file contains the number of system call information. So we have
>> two option to update __NR_syscalls value.
>>
>> 1. Update __NR_syscalls in asm/unistd.h manually by counting the
>>    no.of system calls. No need to update __NR_syscalls untill
>>    we either add a new system call or delete an existing system
>>    call.
>>
>> 2. We can keep this feature it above mentioned script, that'll
>>    count the number of syscalls and keep it in a generated file.
>>    In this case we don't need to explicitly update __NR_syscalls
>>    in asm/unistd.h file.
>>
>> The 2nd option will be the recommended one. For that, I moved the
>> NR_syscalls macro from asm/unistd.h to uapi/asm/unistd.h. The macro
>> name also changed form NR_syscalls to __NR_syscalls for making the
>> name convention same across all architecture. While __NR_syscalls
>> isn't strictly part of the uapi, having it as part of the generated
>> header to simplifies the implementation.
>
> This macro was in unistd.h in past but it was moved out because it was
> causing problem with strace.
>
> commit 40c2702a02b755e0183b702778331b351f3be20c
> Author:     Michal Simek <michal.simek@xilinx.com>
> AuthorDate: Mon Jul 8 09:50:24 2013 +0200
> Commit:     Michal Simek <michal.simek@xilinx.com>
> CommitDate: Wed Jul 10 07:32:09 2013 +0200
>
>     microblaze: Move __NR_syscalls from uapi
>
>
> That's why I don't think this is the right thing to do.
> I have grepped strace and glibc and none is using this macro that's why
> I think it shouldn't be exported via uapi.


Thanks for you reply :)
Sorry for the delayed response :(

I would like to keep __NR_syscalls macro to uapi header in order to simplify
the system call table generation script. Otherwise the __NR_syscalls
macro need to update manually. That become a problem.

Please check the below implementation in uapi file make sense?
It is an easy workaround to leave __NR_syscalls macro in uapi/asm/unistd.h
and enclose it in #ifdef __KERNEL__

...
...
#define __NR_pkey_free  397
#define __NR_statx      398

#ifdef __KERNEL__
#define __NR_syscalls   399
#endif
...
...

- Firoz

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 2/3] microblaze: Added system call table generation support
  2018-08-09  7:05   ` Michal Simek
  2018-08-09  7:05     ` Michal Simek
@ 2018-09-18  6:50     ` Firoz Khan
  2018-09-18  6:50       ` Firoz Khan
  1 sibling, 1 reply; 26+ messages in thread
From: Firoz Khan @ 2018-09-18  6:50 UTC (permalink / raw)
  To: Michal Simek
  Cc: Kate Stewart, linux-arch, Arnd Bergmann, y2038,
	Greg Kroah-Hartman, linux-kernel, Marcin Juszkiewicz,
	Deepa Dinamani, Philippe Ombredanne, Thomas Gleixner

On 9 August 2018 at 12:35, Michal Simek <michal.simek@xilinx.com> wrote:
> On 9.8.2018 07:27, Firoz Khan wrote:
>> The system call tables are in different format in all
>> architecture and it will be difficult to manually add or
>> modify the system calls in the respective files. To make
>> it easy by keeping a script and which'll generate the
>> header file and syscall table file so this change will
>> unify them across all architectures.
>>
>> The system call table generation script is added in
>> syscalls directory which contain the script to generate
>> both uapi header file system call table generation file
>> and syscall.tbl file which'll be the input for the scripts.
>>
>> syscall.tbl contains the list of available system calls
>> along with system call number and corresponding entry point.
>> Add a new system call in this architecture 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.
>>
>> syscallhdr.sh and syscalltbl.sh will generate uapi header-
>> unistd.h and syscall_table.h files respectively. File
>> syscall_table.h is included by syscall.S - the real system
>> call table. Both .sh files will parse the content syscall.tbl
>> to generate the header and table files.
>>
>> ARM, s390 and x86 architecuture does have the similar support.
>> I leverage their implementation to come up with a generic
>> solution. And this is the ground work for y2038 issue. We need
>> to change 52 system call implementation and this work will
>> reduce the effort by simply modify 52 entries in syscall.tbl.
>>
>> Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
>> ---
>>  arch/microblaze/kernel/syscalls/Makefile      |  37 +++
>>  arch/microblaze/kernel/syscalls/syscall.tbl   | 404 ++++++++++++++++++++++++++
>>  arch/microblaze/kernel/syscalls/syscallhdr.sh |  33 +++
>>  arch/microblaze/kernel/syscalls/syscalltbl.sh |  28 ++
>>  4 files changed, 502 insertions(+)
>>  create mode 100644 arch/microblaze/kernel/syscalls/Makefile
>>  create mode 100644 arch/microblaze/kernel/syscalls/syscall.tbl
>>  create mode 100644 arch/microblaze/kernel/syscalls/syscallhdr.sh
>
> it is interesting that arm and x86 scripts and they are "almost" the
> same. Is there any plan to put these script to generic location instead
> of keeping the same copy in architecture?

Having a single script is always our plan for long run. But I have to keep a
separate versions for the start so each architecture can be handled  in one
series. Which would make easier to merge in the initial version.

we could probably add it to scripts/*.sh first, but that requires more
coordination between the architectures.

>
> fileguard name contains hardcoded macro prefix where in arm there is
> uapi detection. The same should be done architecture and sholdn't matter
> if you define macro with or without value.

Yes. As I told in my cover letter, I leverage x86/arm/s390 architecture
implementation to come up with a generic solution. For the fileguard,
I took x86 implementation as reference.

>
>>  create mode 100644 arch/microblaze/kernel/syscalls/syscalltbl.sh
>>
>> diff --git a/arch/microblaze/kernel/syscalls/Makefile b/arch/microblaze/kernel/syscalls/Makefile
>> new file mode 100644
>> index 0000000..7624044
>> --- /dev/null
>> +++ b/arch/microblaze/kernel/syscalls/Makefile
>> @@ -0,0 +1,37 @@
>> +# SPDX-License-Identifier: GPL-2.0
>> +out := arch/$(SRCARCH)/include/generated/asm
>> +uapi := arch/$(SRCARCH)/include/generated/uapi/asm
>> +
>> +_dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') \
>> +       $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>> +
>> +syscall := $(srctree)/$(src)/syscall.tbl
>> +
>> +syshdr := $(srctree)/$(src)/syscallhdr.sh
>> +systbl := $(srctree)/$(src)/syscalltbl.sh
>> +
>> +quiet_cmd_syshdr = SYSHDR  $@
>> +      cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@'  \
>> +                '$(syshdr_abi_$(basetarget))'          \
>> +                '$(syshdr_pfx_$(basetarget))'          \
>> +                '$(syshdr_offset_$(basetarget))'
>> +
>> +quiet_cmd_systbl = SYSTBL  $@
>> +      cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@'  \
>> +                '$(systbl_abi_$(basetarget))'
>> +
>> +$(uapi)/unistd_32.h: $(syscall) $(syshdr)
>> +     $(call if_changed,syshdr)
>> +
>> +$(out)/syscall_table.h: $(syscall) $(systbl)
>> +     $(call if_changed,systbl)
>> +
>> +uapisyshdr-y                 += unistd_32.h
>> +syshdr-y                     += syscall_table.h
>> +
>> +targets      += $(uapisyshdr-y) $(syshdr-y)
>> +
>> +PHONY += all
>> +all: $(addprefix $(uapi)/,$(uapisyshdr-y))
>> +all: $(addprefix $(out)/,$(syshdr-y))
>> +     @:
>> diff --git a/arch/microblaze/kernel/syscalls/syscall.tbl b/arch/microblaze/kernel/syscalls/syscall.tbl
>> new file mode 100644
>> index 0000000..219d940
>> --- /dev/null
>> +++ b/arch/microblaze/kernel/syscalls/syscall.tbl
>> @@ -0,0 +1,404 @@
>> +#
>> +# Linux system call numbers and entry vectors
>> +#
>> +# The format is:
>> +# <number> <abi> <name> <entry point>
>> +#
>> +# The abi is always common for this file.
>> +#
>> +0       common  restart_syscall                 sys_restart_syscall
>> +1       common  exit                            sys_exit
>> +2       common  fork                            sys_fork
>> +3       common  read                            sys_read
>
> Arm(and partially s390) are using tabs for indentation. Any reason not
> to use it here too?
Sorry for this. My editor has a different setting for tab indentation.
I'll fix this
one while post the next patch series.

FYI, I have a list of this need to improve, those I'll correct in the
next version
of the patch series.

- Firoz
_______________________________________________
Y2038 mailing list
Y2038@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/y2038

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 2/3] microblaze: Added system call table generation support
  2018-09-18  6:50     ` Firoz Khan
@ 2018-09-18  6:50       ` Firoz Khan
  0 siblings, 0 replies; 26+ messages in thread
From: Firoz Khan @ 2018-09-18  6:50 UTC (permalink / raw)
  To: Michal Simek
  Cc: Greg Kroah-Hartman, Philippe Ombredanne, Thomas Gleixner,
	Kate Stewart, y2038, linux-kernel, linux-arch, Arnd Bergmann,
	Deepa Dinamani, Marcin Juszkiewicz

On 9 August 2018 at 12:35, Michal Simek <michal.simek@xilinx.com> wrote:
> On 9.8.2018 07:27, Firoz Khan wrote:
>> The system call tables are in different format in all
>> architecture and it will be difficult to manually add or
>> modify the system calls in the respective files. To make
>> it easy by keeping a script and which'll generate the
>> header file and syscall table file so this change will
>> unify them across all architectures.
>>
>> The system call table generation script is added in
>> syscalls directory which contain the script to generate
>> both uapi header file system call table generation file
>> and syscall.tbl file which'll be the input for the scripts.
>>
>> syscall.tbl contains the list of available system calls
>> along with system call number and corresponding entry point.
>> Add a new system call in this architecture 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.
>>
>> syscallhdr.sh and syscalltbl.sh will generate uapi header-
>> unistd.h and syscall_table.h files respectively. File
>> syscall_table.h is included by syscall.S - the real system
>> call table. Both .sh files will parse the content syscall.tbl
>> to generate the header and table files.
>>
>> ARM, s390 and x86 architecuture does have the similar support.
>> I leverage their implementation to come up with a generic
>> solution. And this is the ground work for y2038 issue. We need
>> to change 52 system call implementation and this work will
>> reduce the effort by simply modify 52 entries in syscall.tbl.
>>
>> Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
>> ---
>>  arch/microblaze/kernel/syscalls/Makefile      |  37 +++
>>  arch/microblaze/kernel/syscalls/syscall.tbl   | 404 ++++++++++++++++++++++++++
>>  arch/microblaze/kernel/syscalls/syscallhdr.sh |  33 +++
>>  arch/microblaze/kernel/syscalls/syscalltbl.sh |  28 ++
>>  4 files changed, 502 insertions(+)
>>  create mode 100644 arch/microblaze/kernel/syscalls/Makefile
>>  create mode 100644 arch/microblaze/kernel/syscalls/syscall.tbl
>>  create mode 100644 arch/microblaze/kernel/syscalls/syscallhdr.sh
>
> it is interesting that arm and x86 scripts and they are "almost" the
> same. Is there any plan to put these script to generic location instead
> of keeping the same copy in architecture?

Having a single script is always our plan for long run. But I have to keep a
separate versions for the start so each architecture can be handled  in one
series. Which would make easier to merge in the initial version.

we could probably add it to scripts/*.sh first, but that requires more
coordination between the architectures.

>
> fileguard name contains hardcoded macro prefix where in arm there is
> uapi detection. The same should be done architecture and sholdn't matter
> if you define macro with or without value.

Yes. As I told in my cover letter, I leverage x86/arm/s390 architecture
implementation to come up with a generic solution. For the fileguard,
I took x86 implementation as reference.

>
>>  create mode 100644 arch/microblaze/kernel/syscalls/syscalltbl.sh
>>
>> diff --git a/arch/microblaze/kernel/syscalls/Makefile b/arch/microblaze/kernel/syscalls/Makefile
>> new file mode 100644
>> index 0000000..7624044
>> --- /dev/null
>> +++ b/arch/microblaze/kernel/syscalls/Makefile
>> @@ -0,0 +1,37 @@
>> +# SPDX-License-Identifier: GPL-2.0
>> +out := arch/$(SRCARCH)/include/generated/asm
>> +uapi := arch/$(SRCARCH)/include/generated/uapi/asm
>> +
>> +_dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') \
>> +       $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>> +
>> +syscall := $(srctree)/$(src)/syscall.tbl
>> +
>> +syshdr := $(srctree)/$(src)/syscallhdr.sh
>> +systbl := $(srctree)/$(src)/syscalltbl.sh
>> +
>> +quiet_cmd_syshdr = SYSHDR  $@
>> +      cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@'  \
>> +                '$(syshdr_abi_$(basetarget))'          \
>> +                '$(syshdr_pfx_$(basetarget))'          \
>> +                '$(syshdr_offset_$(basetarget))'
>> +
>> +quiet_cmd_systbl = SYSTBL  $@
>> +      cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@'  \
>> +                '$(systbl_abi_$(basetarget))'
>> +
>> +$(uapi)/unistd_32.h: $(syscall) $(syshdr)
>> +     $(call if_changed,syshdr)
>> +
>> +$(out)/syscall_table.h: $(syscall) $(systbl)
>> +     $(call if_changed,systbl)
>> +
>> +uapisyshdr-y                 += unistd_32.h
>> +syshdr-y                     += syscall_table.h
>> +
>> +targets      += $(uapisyshdr-y) $(syshdr-y)
>> +
>> +PHONY += all
>> +all: $(addprefix $(uapi)/,$(uapisyshdr-y))
>> +all: $(addprefix $(out)/,$(syshdr-y))
>> +     @:
>> diff --git a/arch/microblaze/kernel/syscalls/syscall.tbl b/arch/microblaze/kernel/syscalls/syscall.tbl
>> new file mode 100644
>> index 0000000..219d940
>> --- /dev/null
>> +++ b/arch/microblaze/kernel/syscalls/syscall.tbl
>> @@ -0,0 +1,404 @@
>> +#
>> +# Linux system call numbers and entry vectors
>> +#
>> +# The format is:
>> +# <number> <abi> <name> <entry point>
>> +#
>> +# The abi is always common for this file.
>> +#
>> +0       common  restart_syscall                 sys_restart_syscall
>> +1       common  exit                            sys_exit
>> +2       common  fork                            sys_fork
>> +3       common  read                            sys_read
>
> Arm(and partially s390) are using tabs for indentation. Any reason not
> to use it here too?
Sorry for this. My editor has a different setting for tab indentation.
I'll fix this
one while post the next patch series.

FYI, I have a list of this need to improve, those I'll correct in the
next version
of the patch series.

- Firoz

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 3/3] microblaze: uapi header and system call table file generation
  2018-08-09  7:12   ` Michal Simek
  2018-08-09  7:12     ` Michal Simek
@ 2018-09-18  7:12     ` Firoz Khan
  2018-09-18  7:12       ` Firoz Khan
  2018-09-24 23:20       ` Arnd Bergmann
  1 sibling, 2 replies; 26+ messages in thread
From: Firoz Khan @ 2018-09-18  7:12 UTC (permalink / raw)
  To: Michal Simek
  Cc: Greg Kroah-Hartman, Philippe Ombredanne, Thomas Gleixner,
	Kate Stewart, y2038, linux-kernel, linux-arch, Arnd Bergmann,
	Deepa Dinamani, Marcin Juszkiewicz

On 9 August 2018 at 12:42, Michal Simek <michal.simek@xilinx.com> wrote:
> On 9.8.2018 07:27, Firoz Khan wrote:
>> System call table generation script must be run to generate
>> unistd_32.h and syscall_table.h files. This patch will have
>> changes which will invokes the script.
>>
>> This patch will generate unistd_32.h and syscall_table.h
>> files by the syscall table generation script invoked by
>> arch/microblaze/Makefile and the generated files against the
>> removed files will be identical.
>>
>> The generated uapi header file will be included in
>> uapi/asm/unistd.h and generated system call table support
>> file will be included by microblaze/kernel/syscall.S file.
>>
>> Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
>> ---
>>  arch/microblaze/Makefile                  |   3 +
>>  arch/microblaze/include/asm/Kbuild        |   2 +
>>  arch/microblaze/include/uapi/asm/Kbuild   |   2 +
>>  arch/microblaze/include/uapi/asm/unistd.h | 409 +-----------------------------
>>  arch/microblaze/kernel/syscall_table.S    | 406 +----------------------------
>>  5 files changed, 12 insertions(+), 810 deletions(-)
>>
>> diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile
>> index d269dd4b..6121a2b 100644
>> --- a/arch/microblaze/Makefile
>> +++ b/arch/microblaze/Makefile
>> @@ -81,6 +81,9 @@ all: linux.bin
>>  archclean:
>>       $(Q)$(MAKE) $(clean)=$(boot)
>>
>> +archheaders:
>> +     $(Q)$(MAKE) $(build)=arch/microblaze/kernel/syscalls all
>> +
>>  linux.bin linux.bin.gz linux.bin.ub: vmlinux
>>       $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
>>
>> diff --git a/arch/microblaze/include/asm/Kbuild b/arch/microblaze/include/asm/Kbuild
>> index fe6a6c6..99225ab 100644
>> --- a/arch/microblaze/include/asm/Kbuild
>> +++ b/arch/microblaze/include/asm/Kbuild
>> @@ -30,3 +30,5 @@ generic-y += trace_clock.h
>>  generic-y += vga.h
>>  generic-y += word-at-a-time.h
>>  generic-y += xor.h
>> +
>> +generated-y += syscall_table.h
>> \ No newline at end of file
>
> This doesn't look right.

You mean I have to keep something like this?
 generic-y += xor.h
-
-generated-y += syscall_table.h
\ No newline at end of file
+generic-y += syscall_table.h
\ No newline at end of file

>
>
>> diff --git a/arch/microblaze/include/uapi/asm/Kbuild b/arch/microblaze/include/uapi/asm/Kbuild
>> index 2c6a6bf..8fe26a3 100644
>> --- a/arch/microblaze/include/uapi/asm/Kbuild
>> +++ b/arch/microblaze/include/uapi/asm/Kbuild
>> @@ -28,3 +28,5 @@ generic-y += termbits.h
>>  generic-y += termios.h
>>  generic-y += types.h
>>  generic-y += ucontext.h
>> +
>> +generated-y += unistd_32.h
>> \ No newline at end of file
>
> ditto.

and like this?

 generic-y += ucontext.h
-
-generated-y += unistd_32.h
\ No newline at end of file
+generic-y += unistd_32.h
\ No newline at end of file

- Firoz

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 3/3] microblaze: uapi header and system call table file generation
  2018-09-18  7:12     ` Firoz Khan
@ 2018-09-18  7:12       ` Firoz Khan
  2018-09-24 23:20       ` Arnd Bergmann
  1 sibling, 0 replies; 26+ messages in thread
From: Firoz Khan @ 2018-09-18  7:12 UTC (permalink / raw)
  To: Michal Simek
  Cc: Greg Kroah-Hartman, Philippe Ombredanne, Thomas Gleixner,
	Kate Stewart, y2038, linux-kernel, linux-arch, Arnd Bergmann,
	Deepa Dinamani, Marcin Juszkiewicz

On 9 August 2018 at 12:42, Michal Simek <michal.simek@xilinx.com> wrote:
> On 9.8.2018 07:27, Firoz Khan wrote:
>> System call table generation script must be run to generate
>> unistd_32.h and syscall_table.h files. This patch will have
>> changes which will invokes the script.
>>
>> This patch will generate unistd_32.h and syscall_table.h
>> files by the syscall table generation script invoked by
>> arch/microblaze/Makefile and the generated files against the
>> removed files will be identical.
>>
>> The generated uapi header file will be included in
>> uapi/asm/unistd.h and generated system call table support
>> file will be included by microblaze/kernel/syscall.S file.
>>
>> Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
>> ---
>>  arch/microblaze/Makefile                  |   3 +
>>  arch/microblaze/include/asm/Kbuild        |   2 +
>>  arch/microblaze/include/uapi/asm/Kbuild   |   2 +
>>  arch/microblaze/include/uapi/asm/unistd.h | 409 +-----------------------------
>>  arch/microblaze/kernel/syscall_table.S    | 406 +----------------------------
>>  5 files changed, 12 insertions(+), 810 deletions(-)
>>
>> diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile
>> index d269dd4b..6121a2b 100644
>> --- a/arch/microblaze/Makefile
>> +++ b/arch/microblaze/Makefile
>> @@ -81,6 +81,9 @@ all: linux.bin
>>  archclean:
>>       $(Q)$(MAKE) $(clean)=$(boot)
>>
>> +archheaders:
>> +     $(Q)$(MAKE) $(build)=arch/microblaze/kernel/syscalls all
>> +
>>  linux.bin linux.bin.gz linux.bin.ub: vmlinux
>>       $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
>>
>> diff --git a/arch/microblaze/include/asm/Kbuild b/arch/microblaze/include/asm/Kbuild
>> index fe6a6c6..99225ab 100644
>> --- a/arch/microblaze/include/asm/Kbuild
>> +++ b/arch/microblaze/include/asm/Kbuild
>> @@ -30,3 +30,5 @@ generic-y += trace_clock.h
>>  generic-y += vga.h
>>  generic-y += word-at-a-time.h
>>  generic-y += xor.h
>> +
>> +generated-y += syscall_table.h
>> \ No newline at end of file
>
> This doesn't look right.

You mean I have to keep something like this?
 generic-y += xor.h
-
-generated-y += syscall_table.h
\ No newline at end of file
+generic-y += syscall_table.h
\ No newline at end of file

>
>
>> diff --git a/arch/microblaze/include/uapi/asm/Kbuild b/arch/microblaze/include/uapi/asm/Kbuild
>> index 2c6a6bf..8fe26a3 100644
>> --- a/arch/microblaze/include/uapi/asm/Kbuild
>> +++ b/arch/microblaze/include/uapi/asm/Kbuild
>> @@ -28,3 +28,5 @@ generic-y += termbits.h
>>  generic-y += termios.h
>>  generic-y += types.h
>>  generic-y += ucontext.h
>> +
>> +generated-y += unistd_32.h
>> \ No newline at end of file
>
> ditto.

and like this?

 generic-y += ucontext.h
-
-generated-y += unistd_32.h
\ No newline at end of file
+generic-y += unistd_32.h
\ No newline at end of file

- Firoz

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 3/3] microblaze: uapi header and system call table file generation
  2018-09-18  7:12     ` Firoz Khan
  2018-09-18  7:12       ` Firoz Khan
@ 2018-09-24 23:20       ` Arnd Bergmann
  2018-09-24 23:20         ` Arnd Bergmann
  1 sibling, 1 reply; 26+ messages in thread
From: Arnd Bergmann @ 2018-09-24 23:20 UTC (permalink / raw)
  To: Firoz Khan
  Cc: Michal Simek, gregkh, Philippe Ombredanne, Thomas Gleixner,
	Kate Stewart, y2038 Mailman List, Linux Kernel Mailing List,
	linux-arch, Deepa Dinamani, Marcin Juszkiewicz

On Tue, Sep 18, 2018 at 9:12 AM Firoz Khan <firoz.khan@linaro.org> wrote:
>
> On 9 August 2018 at 12:42, Michal Simek <michal.simek@xilinx.com> wrote:
> > On 9.8.2018 07:27, Firoz Khan wrote:

> >> diff --git a/arch/microblaze/include/asm/Kbuild b/arch/microblaze/include/asm/Kbuild
> >> index fe6a6c6..99225ab 100644
> >> --- a/arch/microblaze/include/asm/Kbuild
> >> +++ b/arch/microblaze/include/asm/Kbuild
> >> @@ -30,3 +30,5 @@ generic-y += trace_clock.h
> >>  generic-y += vga.h
> >>  generic-y += word-at-a-time.h
> >>  generic-y += xor.h
> >> +
> >> +generated-y += syscall_table.h
> >> \ No newline at end of file
> >
> > This doesn't look right.
>
> You mean I have to keep something like this?
>  generic-y += xor.h
> -
> -generated-y += syscall_table.h
> \ No newline at end of file
> +generic-y += syscall_table.h
> \ No newline at end of file

The "\ No newline at end of file" line is produced by
git format-patch when you have accidentally removed
the newline at the end. Most editors don't even allow
you to do that, so I don't know what went wrong.

       Arnd

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 3/3] microblaze: uapi header and system call table file generation
  2018-09-24 23:20       ` Arnd Bergmann
@ 2018-09-24 23:20         ` Arnd Bergmann
  0 siblings, 0 replies; 26+ messages in thread
From: Arnd Bergmann @ 2018-09-24 23:20 UTC (permalink / raw)
  To: Firoz Khan
  Cc: Michal Simek, gregkh, Philippe Ombredanne, Thomas Gleixner,
	Kate Stewart, y2038 Mailman List, Linux Kernel Mailing List,
	linux-arch, Deepa Dinamani, Marcin Juszkiewicz

On Tue, Sep 18, 2018 at 9:12 AM Firoz Khan <firoz.khan@linaro.org> wrote:
>
> On 9 August 2018 at 12:42, Michal Simek <michal.simek@xilinx.com> wrote:
> > On 9.8.2018 07:27, Firoz Khan wrote:

> >> diff --git a/arch/microblaze/include/asm/Kbuild b/arch/microblaze/include/asm/Kbuild
> >> index fe6a6c6..99225ab 100644
> >> --- a/arch/microblaze/include/asm/Kbuild
> >> +++ b/arch/microblaze/include/asm/Kbuild
> >> @@ -30,3 +30,5 @@ generic-y += trace_clock.h
> >>  generic-y += vga.h
> >>  generic-y += word-at-a-time.h
> >>  generic-y += xor.h
> >> +
> >> +generated-y += syscall_table.h
> >> \ No newline at end of file
> >
> > This doesn't look right.
>
> You mean I have to keep something like this?
>  generic-y += xor.h
> -
> -generated-y += syscall_table.h
> \ No newline at end of file
> +generic-y += syscall_table.h
> \ No newline at end of file

The "\ No newline at end of file" line is produced by
git format-patch when you have accidentally removed
the newline at the end. Most editors don't even allow
you to do that, so I don't know what went wrong.

       Arnd

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 1/3] microblaze: Replace NR_syscalls macro from asm/unistd.h
  2018-09-18  6:37     ` Firoz Khan
  2018-09-18  6:37       ` Firoz Khan
@ 2018-10-02  7:07       ` Michal Simek
  2018-10-02  7:07         ` Michal Simek
  2018-10-03  5:09         ` Firoz Khan
  1 sibling, 2 replies; 26+ messages in thread
From: Michal Simek @ 2018-10-02  7:07 UTC (permalink / raw)
  To: Firoz Khan, Michal Simek
  Cc: Greg Kroah-Hartman, Philippe Ombredanne, Thomas Gleixner,
	Kate Stewart, y2038, linux-kernel, linux-arch, Arnd Bergmann,
	Deepa Dinamani, Marcin Juszkiewicz

On 18.9.2018 08:37, Firoz Khan wrote:
> On 9 August 2018 at 12:18, Michal Simek <michal.simek@xilinx.com> wrote:
>> On 9.8.2018 07:27, Firoz Khan wrote:
>>> __NR_syscalls macro holds the number of system call exist in this
>>> architecture. This macro is currently the part of asm/unistd.h file.
>>> We have change the value of __NR_syscalls, if we add or delete a
>>> system call.
>>>
>>> One of the patch in this patch series has a script which will
>>> generate a uapi header based on syscall.tbl file. The syscall.tbl
>>> file contains the number of system call information. So we have
>>> two option to update __NR_syscalls value.
>>>
>>> 1. Update __NR_syscalls in asm/unistd.h manually by counting the
>>>    no.of system calls. No need to update __NR_syscalls untill
>>>    we either add a new system call or delete an existing system
>>>    call.
>>>
>>> 2. We can keep this feature it above mentioned script, that'll
>>>    count the number of syscalls and keep it in a generated file.
>>>    In this case we don't need to explicitly update __NR_syscalls
>>>    in asm/unistd.h file.
>>>
>>> The 2nd option will be the recommended one. For that, I moved the
>>> NR_syscalls macro from asm/unistd.h to uapi/asm/unistd.h. The macro
>>> name also changed form NR_syscalls to __NR_syscalls for making the
>>> name convention same across all architecture. While __NR_syscalls
>>> isn't strictly part of the uapi, having it as part of the generated
>>> header to simplifies the implementation.
>>
>> This macro was in unistd.h in past but it was moved out because it was
>> causing problem with strace.
>>
>> commit 40c2702a02b755e0183b702778331b351f3be20c
>> Author:     Michal Simek <michal.simek@xilinx.com>
>> AuthorDate: Mon Jul 8 09:50:24 2013 +0200
>> Commit:     Michal Simek <michal.simek@xilinx.com>
>> CommitDate: Wed Jul 10 07:32:09 2013 +0200
>>
>>     microblaze: Move __NR_syscalls from uapi
>>
>>
>> That's why I don't think this is the right thing to do.
>> I have grepped strace and glibc and none is using this macro that's why
>> I think it shouldn't be exported via uapi.
> 
> 
> Thanks for you reply :)
> Sorry for the delayed response :(
> 
> I would like to keep __NR_syscalls macro to uapi header in order to simplify
> the system call table generation script. Otherwise the __NR_syscalls
> macro need to update manually. That become a problem.
> 
> Please check the below implementation in uapi file make sense?
> It is an easy workaround to leave __NR_syscalls macro in uapi/asm/unistd.h
> and enclose it in #ifdef __KERNEL__
> 
> ...
> ...
> #define __NR_pkey_free  397
> #define __NR_statx      398
> 
> #ifdef __KERNEL__
> #define __NR_syscalls   399
> #endif
> ...
> ...

This should be fine.

M

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 1/3] microblaze: Replace NR_syscalls macro from asm/unistd.h
  2018-10-02  7:07       ` Michal Simek
@ 2018-10-02  7:07         ` Michal Simek
  2018-10-03  5:09         ` Firoz Khan
  1 sibling, 0 replies; 26+ messages in thread
From: Michal Simek @ 2018-10-02  7:07 UTC (permalink / raw)
  To: Firoz Khan, Michal Simek
  Cc: Greg Kroah-Hartman, Philippe Ombredanne, Thomas Gleixner,
	Kate Stewart, y2038, linux-kernel, linux-arch, Arnd Bergmann,
	Deepa Dinamani, Marcin Juszkiewicz

On 18.9.2018 08:37, Firoz Khan wrote:
> On 9 August 2018 at 12:18, Michal Simek <michal.simek@xilinx.com> wrote:
>> On 9.8.2018 07:27, Firoz Khan wrote:
>>> __NR_syscalls macro holds the number of system call exist in this
>>> architecture. This macro is currently the part of asm/unistd.h file.
>>> We have change the value of __NR_syscalls, if we add or delete a
>>> system call.
>>>
>>> One of the patch in this patch series has a script which will
>>> generate a uapi header based on syscall.tbl file. The syscall.tbl
>>> file contains the number of system call information. So we have
>>> two option to update __NR_syscalls value.
>>>
>>> 1. Update __NR_syscalls in asm/unistd.h manually by counting the
>>>    no.of system calls. No need to update __NR_syscalls untill
>>>    we either add a new system call or delete an existing system
>>>    call.
>>>
>>> 2. We can keep this feature it above mentioned script, that'll
>>>    count the number of syscalls and keep it in a generated file.
>>>    In this case we don't need to explicitly update __NR_syscalls
>>>    in asm/unistd.h file.
>>>
>>> The 2nd option will be the recommended one. For that, I moved the
>>> NR_syscalls macro from asm/unistd.h to uapi/asm/unistd.h. The macro
>>> name also changed form NR_syscalls to __NR_syscalls for making the
>>> name convention same across all architecture. While __NR_syscalls
>>> isn't strictly part of the uapi, having it as part of the generated
>>> header to simplifies the implementation.
>>
>> This macro was in unistd.h in past but it was moved out because it was
>> causing problem with strace.
>>
>> commit 40c2702a02b755e0183b702778331b351f3be20c
>> Author:     Michal Simek <michal.simek@xilinx.com>
>> AuthorDate: Mon Jul 8 09:50:24 2013 +0200
>> Commit:     Michal Simek <michal.simek@xilinx.com>
>> CommitDate: Wed Jul 10 07:32:09 2013 +0200
>>
>>     microblaze: Move __NR_syscalls from uapi
>>
>>
>> That's why I don't think this is the right thing to do.
>> I have grepped strace and glibc and none is using this macro that's why
>> I think it shouldn't be exported via uapi.
> 
> 
> Thanks for you reply :)
> Sorry for the delayed response :(
> 
> I would like to keep __NR_syscalls macro to uapi header in order to simplify
> the system call table generation script. Otherwise the __NR_syscalls
> macro need to update manually. That become a problem.
> 
> Please check the below implementation in uapi file make sense?
> It is an easy workaround to leave __NR_syscalls macro in uapi/asm/unistd.h
> and enclose it in #ifdef __KERNEL__
> 
> ...
> ...
> #define __NR_pkey_free  397
> #define __NR_statx      398
> 
> #ifdef __KERNEL__
> #define __NR_syscalls   399
> #endif
> ...
> ...

This should be fine.

M

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 1/3] microblaze: Replace NR_syscalls macro from asm/unistd.h
  2018-10-02  7:07       ` Michal Simek
  2018-10-02  7:07         ` Michal Simek
@ 2018-10-03  5:09         ` Firoz Khan
  2018-10-03  5:09           ` Firoz Khan
  1 sibling, 1 reply; 26+ messages in thread
From: Firoz Khan @ 2018-10-03  5:09 UTC (permalink / raw)
  To: Michal Simek
  Cc: Greg Kroah-Hartman, Philippe Ombredanne, Thomas Gleixner,
	Kate Stewart, y2038 Mailman List, Linux Kernel Mailing List,
	Linux-Arch, Arnd Bergmann, Deepa Dinamani, Marcin Juszkiewicz

Hi Michal,

On Tue, 2 Oct 2018 at 12:37, Michal Simek <michal.simek@xilinx.com> wrote:
>
> On 18.9.2018 08:37, Firoz Khan wrote:
> > On 9 August 2018 at 12:18, Michal Simek <michal.simek@xilinx.com> wrote:
> >> On 9.8.2018 07:27, Firoz Khan wrote:
> >>> __NR_syscalls macro holds the number of system call exist in this
> >>> architecture. This macro is currently the part of asm/unistd.h file.
> >>> We have change the value of __NR_syscalls, if we add or delete a
> >>> system call.
> >>>
> >>> One of the patch in this patch series has a script which will
> >>> generate a uapi header based on syscall.tbl file. The syscall.tbl
> >>> file contains the number of system call information. So we have
> >>> two option to update __NR_syscalls value.
> >>>
> >>> 1. Update __NR_syscalls in asm/unistd.h manually by counting the
> >>>    no.of system calls. No need to update __NR_syscalls untill
> >>>    we either add a new system call or delete an existing system
> >>>    call.
> >>>
> >>> 2. We can keep this feature it above mentioned script, that'll
> >>>    count the number of syscalls and keep it in a generated file.
> >>>    In this case we don't need to explicitly update __NR_syscalls
> >>>    in asm/unistd.h file.
> >>>
> >>> The 2nd option will be the recommended one. For that, I moved the
> >>> NR_syscalls macro from asm/unistd.h to uapi/asm/unistd.h. The macro
> >>> name also changed form NR_syscalls to __NR_syscalls for making the
> >>> name convention same across all architecture. While __NR_syscalls
> >>> isn't strictly part of the uapi, having it as part of the generated
> >>> header to simplifies the implementation.
> >>
> >> This macro was in unistd.h in past but it was moved out because it was
> >> causing problem with strace.
> >>
> >> commit 40c2702a02b755e0183b702778331b351f3be20c
> >> Author:     Michal Simek <michal.simek@xilinx.com>
> >> AuthorDate: Mon Jul 8 09:50:24 2013 +0200
> >> Commit:     Michal Simek <michal.simek@xilinx.com>
> >> CommitDate: Wed Jul 10 07:32:09 2013 +0200
> >>
> >>     microblaze: Move __NR_syscalls from uapi
> >>
> >>
> >> That's why I don't think this is the right thing to do.
> >> I have grepped strace and glibc and none is using this macro that's why
> >> I think it shouldn't be exported via uapi.
> >
> >
> > Thanks for you reply :)
> > Sorry for the delayed response :(
> >
> > I would like to keep __NR_syscalls macro to uapi header in order to simplify
> > the system call table generation script. Otherwise the __NR_syscalls
> > macro need to update manually. That become a problem.
> >
> > Please check the below implementation in uapi file make sense?
> > It is an easy workaround to leave __NR_syscalls macro in uapi/asm/unistd.h
> > and enclose it in #ifdef __KERNEL__
> >
> > ...
> > ...
> > #define __NR_pkey_free  397
> > #define __NR_statx      398
> >
> > #ifdef __KERNEL__
> > #define __NR_syscalls   399
> > #endif
> > ...
> > ...
>
> This should be fine.

Thanks for the confirmation!

- Firoz
>
> M

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 1/3] microblaze: Replace NR_syscalls macro from asm/unistd.h
  2018-10-03  5:09         ` Firoz Khan
@ 2018-10-03  5:09           ` Firoz Khan
  0 siblings, 0 replies; 26+ messages in thread
From: Firoz Khan @ 2018-10-03  5:09 UTC (permalink / raw)
  To: Michal Simek
  Cc: Greg Kroah-Hartman, Philippe Ombredanne, Thomas Gleixner,
	Kate Stewart, y2038 Mailman List, Linux Kernel Mailing List,
	Linux-Arch, Arnd Bergmann, Deepa Dinamani, Marcin Juszkiewicz

Hi Michal,

On Tue, 2 Oct 2018 at 12:37, Michal Simek <michal.simek@xilinx.com> wrote:
>
> On 18.9.2018 08:37, Firoz Khan wrote:
> > On 9 August 2018 at 12:18, Michal Simek <michal.simek@xilinx.com> wrote:
> >> On 9.8.2018 07:27, Firoz Khan wrote:
> >>> __NR_syscalls macro holds the number of system call exist in this
> >>> architecture. This macro is currently the part of asm/unistd.h file.
> >>> We have change the value of __NR_syscalls, if we add or delete a
> >>> system call.
> >>>
> >>> One of the patch in this patch series has a script which will
> >>> generate a uapi header based on syscall.tbl file. The syscall.tbl
> >>> file contains the number of system call information. So we have
> >>> two option to update __NR_syscalls value.
> >>>
> >>> 1. Update __NR_syscalls in asm/unistd.h manually by counting the
> >>>    no.of system calls. No need to update __NR_syscalls untill
> >>>    we either add a new system call or delete an existing system
> >>>    call.
> >>>
> >>> 2. We can keep this feature it above mentioned script, that'll
> >>>    count the number of syscalls and keep it in a generated file.
> >>>    In this case we don't need to explicitly update __NR_syscalls
> >>>    in asm/unistd.h file.
> >>>
> >>> The 2nd option will be the recommended one. For that, I moved the
> >>> NR_syscalls macro from asm/unistd.h to uapi/asm/unistd.h. The macro
> >>> name also changed form NR_syscalls to __NR_syscalls for making the
> >>> name convention same across all architecture. While __NR_syscalls
> >>> isn't strictly part of the uapi, having it as part of the generated
> >>> header to simplifies the implementation.
> >>
> >> This macro was in unistd.h in past but it was moved out because it was
> >> causing problem with strace.
> >>
> >> commit 40c2702a02b755e0183b702778331b351f3be20c
> >> Author:     Michal Simek <michal.simek@xilinx.com>
> >> AuthorDate: Mon Jul 8 09:50:24 2013 +0200
> >> Commit:     Michal Simek <michal.simek@xilinx.com>
> >> CommitDate: Wed Jul 10 07:32:09 2013 +0200
> >>
> >>     microblaze: Move __NR_syscalls from uapi
> >>
> >>
> >> That's why I don't think this is the right thing to do.
> >> I have grepped strace and glibc and none is using this macro that's why
> >> I think it shouldn't be exported via uapi.
> >
> >
> > Thanks for you reply :)
> > Sorry for the delayed response :(
> >
> > I would like to keep __NR_syscalls macro to uapi header in order to simplify
> > the system call table generation script. Otherwise the __NR_syscalls
> > macro need to update manually. That become a problem.
> >
> > Please check the below implementation in uapi file make sense?
> > It is an easy workaround to leave __NR_syscalls macro in uapi/asm/unistd.h
> > and enclose it in #ifdef __KERNEL__
> >
> > ...
> > ...
> > #define __NR_pkey_free  397
> > #define __NR_statx      398
> >
> > #ifdef __KERNEL__
> > #define __NR_syscalls   399
> > #endif
> > ...
> > ...
>
> This should be fine.

Thanks for the confirmation!

- Firoz
>
> M

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2018-10-03 11:56 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-09  5:27 [PATCH 0/3] System call table generation support Firoz Khan
2018-08-09  5:27 ` Firoz Khan
2018-08-09  5:27 ` [PATCH 1/3] microblaze: Replace NR_syscalls macro from asm/unistd.h Firoz Khan
2018-08-09  5:27   ` Firoz Khan
2018-08-09  6:48   ` Michal Simek
2018-08-09  6:48     ` Michal Simek
2018-09-18  6:37     ` Firoz Khan
2018-09-18  6:37       ` Firoz Khan
2018-10-02  7:07       ` Michal Simek
2018-10-02  7:07         ` Michal Simek
2018-10-03  5:09         ` Firoz Khan
2018-10-03  5:09           ` Firoz Khan
2018-08-09  5:27 ` [PATCH 2/3] microblaze: Added system call table generation support Firoz Khan
2018-08-09  5:27   ` Firoz Khan
2018-08-09  7:05   ` Michal Simek
2018-08-09  7:05     ` Michal Simek
2018-09-18  6:50     ` Firoz Khan
2018-09-18  6:50       ` Firoz Khan
2018-08-09  5:27 ` [PATCH 3/3] microblaze: uapi header and system call table file generation Firoz Khan
2018-08-09  5:27   ` Firoz Khan
2018-08-09  7:12   ` Michal Simek
2018-08-09  7:12     ` Michal Simek
2018-09-18  7:12     ` Firoz Khan
2018-09-18  7:12       ` Firoz Khan
2018-09-24 23:20       ` Arnd Bergmann
2018-09-24 23:20         ` Arnd Bergmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).