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 will generate the
uapi header and syscall table file. This change will also
help to unify the implementation across all architectures.

The system call table generation script is added in
syscalls directory which contain the script to generate
both uapi header file and system call table files.
The syscall.tbl file will 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.
        - Compat entry name, if required.

syscallhdr.sh and syscalltbl.sh will generate uapi header-
unistd_32/64.h and syscall_table_32/64/c32.h files respect-
ively. File syscall_table_32/64/c32.h is included by sys-
call.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.

Signed-off-by: Firoz Khan <firoz.k...@linaro.org>
---
 arch/powerpc/kernel/syscalls/Makefile      |  61 +++++
 arch/powerpc/kernel/syscalls/syscall.tbl   | 408 +++++++++++++++++++++++++++++
 arch/powerpc/kernel/syscalls/syscallhdr.sh |  36 +++
 arch/powerpc/kernel/syscalls/syscalltbl.sh |  41 +++
 4 files changed, 546 insertions(+)
 create mode 100644 arch/powerpc/kernel/syscalls/Makefile
 create mode 100644 arch/powerpc/kernel/syscalls/syscall.tbl
 create mode 100644 arch/powerpc/kernel/syscalls/syscallhdr.sh
 create mode 100644 arch/powerpc/kernel/syscalls/syscalltbl.sh

diff --git a/arch/powerpc/kernel/syscalls/Makefile 
b/arch/powerpc/kernel/syscalls/Makefile
new file mode 100644
index 0000000..6615c24
--- /dev/null
+++ b/arch/powerpc/kernel/syscalls/Makefile
@@ -0,0 +1,61 @@
+# SPDX-License-Identifier: GPL-2.0
+kapi := arch/$(SRCARCH)/include/generated/asm
+uapi := arch/$(SRCARCH)/include/generated/uapi/asm
+
+_dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)')      \
+         $(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)')
+
+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_abis_$(basetarget))'               \
+                  '$(syshdr_pfx_$(basetarget))'                \
+                  '$(syshdr_offset_$(basetarget))'
+
+quiet_cmd_systbl = SYSTBL  $@
+      cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@'       \
+                  '$(systbl_abis_$(basetarget))'               \
+                  '$(systbl_abi_$(basetarget))'                \
+                  '$(systbl_offset_$(basetarget))'
+
+syshdr_abis_unistd_32 := common,32
+$(uapi)/unistd_32.h: $(syscall) $(syshdr)
+       $(call if_changed,syshdr)
+
+syshdr_abis_unistd_64 := common,64
+$(uapi)/unistd_64.h: $(syscall) $(syshdr)
+       $(call if_changed,syshdr)
+
+systbl_abis_syscall_table_32 := common,32
+$(kapi)/syscall_table_32.h: $(syscall) $(systbl)
+       $(call if_changed,systbl)
+
+systbl_abis_syscall_table_64 := common,64
+$(kapi)/syscall_table_64.h: $(syscall) $(systbl)
+       $(call if_changed,systbl)
+
+systbl_abis_syscall_table_c32 := common,32
+systbl_abi_syscall_table_c32 := c32
+$(kapi)/syscall_table_c32.h: $(syscall) $(systbl)
+       $(call if_changed,systbl)
+
+systbl_abis_syscall_table_spu := common,32
+systbl_abi_syscall_table_spu := spu
+$(kapi)/syscall_table_spu.h: $(syscall) $(systbl)
+       $(call if_changed,systbl)
+
+uapisyshdr-y           += unistd_32.h unistd_64.h
+kapisyshdr-y           += syscall_table_32.h           \
+                          syscall_table_64.h           \
+                          syscall_table_c32.h          \
+                          syscall_table_spu.h
+
+targets        += $(uapisyshdr-y) $(kapisyshdr-y)
+
+PHONY += all
+all: $(addprefix $(uapi)/,$(uapisyshdr-y))
+all: $(addprefix $(kapi)/,$(kapisyshdr-y))
+       @:
diff --git a/arch/powerpc/kernel/syscalls/syscall.tbl 
b/arch/powerpc/kernel/syscalls/syscall.tbl
new file mode 100644
index 0000000..4d90f30
--- /dev/null
+++ b/arch/powerpc/kernel/syscalls/syscall.tbl
@@ -0,0 +1,408 @@
+# SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+#
+# system call numbers and entry vectors for powerpc
+#
+# The format is:
+# <number> <abi> <name> <entry point> <compat entry point> <spu entry point>
+#
+# The <abi> can be common, 64, or 32 for this file.
+#
+0      common  restart_syscall                 sys_restart_syscall             
sys_restart_syscall
+1      common  exit                            sys_exit                        
sys_exit
+2      common  fork                            ppc_fork                        
ppc_fork
+3      common  read                            sys_read                        
sys_read                                sys_read
+4      common  write                           sys_write                       
sys_write                               sys_write
+5      common  open                            sys_open                        
compat_sys_open                         sys_open
+6      common  close                           sys_close                       
sys_close                               sys_close
+7      common  waitpid                         sys_waitpid                     
sys_waitpid                             sys_waitpid
+8      common  creat                           sys_creat                       
sys_creat                               sys_creat
+9      common  link                            sys_link                        
sys_link                                sys_link
+10     common  unlink                          sys_unlink                      
sys_unlink                              sys_unlink
+11     common  execve                          sys_execve                      
compat_sys_execve
+12     common  chdir                           sys_chdir                       
sys_chdir                               sys_chdir
+13     common  time                            sys_time                        
compat_sys_time                         sys_time
+14     common  mknod                           sys_mknod                       
sys_mknod                               sys_mknod
+15     common  chmod                           sys_chmod                       
sys_chmod                               sys_chmod
+16     common  lchown                          sys_lchown                      
sys_lchown                              sys_lchown
+17     common  break                           sys_ni_syscall                  
sys_ni_syscall
+18     32      oldstat                         sys_stat                        
sys_ni_syscall
+18     64      oldstat                         sys_ni_syscall
+19     common  lseek                           sys_lseek                       
compat_sys_lseek                        sys_lseek
+20     common  getpid                          sys_getpid                      
sys_getpid                              sys_getpid
+21     common  mount                           sys_mount                       
compat_sys_mount
+22     32      umount                          sys_oldumount                   
sys_oldumount
+22     64      umount                          sys_ni_syscall
+23     common  setuid                          sys_setuid                      
sys_setuid                              sys_setuid
+24     common  getuid                          sys_getuid                      
sys_getuid                              sys_getuid
+25     common  stime                           sys_stime                       
compat_sys_stime                        sys_stime
+26     common  ptrace                          sys_ptrace                      
compat_sys_ptrace
+27     common  alarm                           sys_alarm                       
sys_alarm                               sys_alarm
+28     32      oldfstat                        sys_fstat                       
sys_ni_syscall
+28     64      oldfstat                        sys_ni_syscall
+29     common  pause                           sys_pause                       
sys_pause
+30     common  utime                           sys_utime                       
compat_sys_utime
+31     common  stty                            sys_ni_syscall                  
sys_ni_syscall
+32     common  gtty                            sys_ni_syscall                  
sys_ni_syscall
+33     common  access                          sys_access                      
sys_access                              sys_access
+34     common  nice                            sys_nice                        
sys_nice                                sys_nice
+35     common  ftime                           sys_ni_syscall                  
sys_ni_syscall
+36     common  sync                            sys_sync                        
sys_sync                                sys_sync
+37     common  kill                            sys_kill                        
sys_kill                                sys_kill
+38     common  rename                          sys_rename                      
sys_rename                              sys_rename
+39     common  mkdir                           sys_mkdir                       
sys_mkdir                               sys_mkdir
+40     common  rmdir                           sys_rmdir                       
sys_rmdir                               sys_rmdir
+41     common  dup                             sys_dup                         
sys_dup                                 sys_dup
+42     common  pipe                            sys_pipe                        
sys_pipe                                sys_pipe
+43     common  times                           sys_times                       
compat_sys_times                        sys_times
+44     common  prof                            sys_ni_syscall                  
sys_ni_syscall
+45     common  brk                             sys_brk                         
sys_brk                                 sys_brk
+46     common  setgid                          sys_setgid                      
sys_setgid                              sys_setgid
+47     common  getgid                          sys_getgid                      
sys_getgid                              sys_getgid
+48     common  signal                          sys_signal                      
sys_signal
+49     common  geteuid                         sys_geteuid                     
sys_geteuid                             sys_geteuid
+50     common  getegid                         sys_getegid                     
sys_getegid                             sys_getegid
+51     common  acct                            sys_acct                        
sys_acct
+52     common  umount2                         sys_umount                      
sys_umount
+53     common  lock                            sys_ni_syscall                  
sys_ni_syscall
+54     common  ioctl                           sys_ioctl                       
compat_sys_ioctl                        sys_ioctl
+55     common  fcntl                           sys_fcntl                       
compat_sys_fcntl                        sys_fcntl
+56     common  mpx                             sys_ni_syscall                  
sys_ni_syscall
+57     common  setpgid                         sys_setpgid                     
sys_setpgid                             sys_setpgid
+58     common  ulimit                          sys_ni_syscall                  
sys_ni_syscall
+59     32      oldolduname                     sys_olduname                    
sys_olduname
+59     64      oldolduname                     sys_ni_syscall
+60     common  umask                           sys_umask                       
sys_umask                               sys_umask
+61     common  chroot                          sys_chroot                      
sys_chroot                              sys_chroot
+62     common  ustat                           sys_ustat                       
compat_sys_ustat
+63     common  dup2                            sys_dup2                        
sys_dup2                                sys_dup2
+64     common  getppid                         sys_getppid                     
sys_getppid                             sys_getppid
+65     common  getpgrp                         sys_getpgrp                     
sys_getpgrp                             sys_getpgrp
+66     common  setsid                          sys_setsid                      
sys_setsid                              sys_setsid
+67     32      sigaction                       sys_sigaction                   
compat_sys_sigaction
+67     64      sigaction                       sys_ni_syscall
+68     common  sgetmask                        sys_sgetmask                    
sys_sgetmask                            sys_sgetmask
+69     common  ssetmask                        sys_ssetmask                    
sys_ssetmask                            sys_ssetmask
+70     common  setreuid                        sys_setreuid                    
sys_setreuid                            sys_setreuid
+71     common  setregid                        sys_setregid                    
sys_setregid                            sys_setregid
+72     32      sigsuspend                      sys_sigsuspend                  
sys_sigsuspend
+72     64      sigsuspend                      sys_ni_syscall
+73     32      sigpending                      sys_sigpending                  
compat_sys_sigpending
+73     64      sigpending                      sys_ni_syscall
+74     common  sethostname                     sys_sethostname                 
sys_sethostname                         sys_sethostname
+75     common  setrlimit                       sys_setrlimit                   
compat_sys_setrlimit                    sys_setrlimit
+76     32      getrlimit                       sys_old_getrlimit               
compat_sys_old_getrlimit
+76     64      getrlimit                       sys_ni_syscall
+77     common  getrusage                       sys_getrusage                   
compat_sys_getrusage                    sys_getrusage
+78     common  gettimeofday                    sys_gettimeofday                
compat_sys_gettimeofday                 sys_gettimeofday
+79     common  settimeofday                    sys_settimeofday                
compat_sys_settimeofday                 sys_settimeofday
+80     common  getgroups                       sys_getgroups                   
sys_getgroups                           sys_getgroups
+81     common  setgroups                       sys_setgroups                   
sys_setgroups                           sys_setgroups
+82     32      select                          ppc_select                      
sys_ni_syscall
+82     64      select                          sys_ni_syscall
+83     common  symlink                         sys_symlink                     
sys_symlink                             sys_symlink
+84     32      oldlstat                        sys_lstat                       
sys_ni_syscall
+84     64      oldlstat                        sys_ni_syscall
+85     common  readlink                        sys_readlink                    
sys_readlink                            sys_readlink
+86     common  uselib                          sys_uselib                      
sys_uselib
+87     common  swapon                          sys_swapon                      
sys_swapon
+88     common  reboot                          sys_reboot                      
sys_reboot
+89     32      readdir                         sys_old_readdir                 
compat_sys_old_readdir
+89     64      readdir                         sys_ni_syscall
+90     common  mmap                            sys_mmap                        
sys_mmap                                sys_mmap
+91     common  munmap                          sys_munmap                      
sys_munmap                              sys_munmap
+92     common  truncate                        sys_truncate                    
compat_sys_truncate                     sys_truncate
+93     common  ftruncate                       sys_ftruncate                   
compat_sys_ftruncate                    sys_ftruncate
+94     common  fchmod                          sys_fchmod                      
sys_fchmod                              sys_fchmod
+95     common  fchown                          sys_fchown                      
sys_fchown                              sys_fchown
+96     common  getpriority                     sys_getpriority                 
sys_getpriority                         sys_getpriority
+97     common  setpriority                     sys_setpriority                 
sys_setpriority                         sys_setpriority
+98     common  profil                          sys_ni_syscall                  
sys_ni_syscall
+99     common  statfs                          sys_statfs                      
compat_sys_statfs
+100    common  fstatfs                         sys_fstatfs                     
compat_sys_fstatfs
+101    common  ioperm                          sys_ni_syscall                  
sys_ni_syscall
+102    common  socketcall                      sys_socketcall                  
compat_sys_socketcall                   sys_socketcall
+103    common  syslog                          sys_syslog                      
sys_syslog                              sys_syslog
+104    common  setitimer                       sys_setitimer                   
compat_sys_setitimer                    sys_setitimer
+105    common  getitimer                       sys_getitimer                   
compat_sys_getitimer                    sys_getitimer
+106    common  stat                            sys_newstat                     
compat_sys_newstat                      sys_newstat
+107    32      lstat                           sys_newlstat                    
compat_sys_newlstat                     sys_newlstat
+107    64      lstat                           sys_lstat
+108    32      fstat                           sys_newfstat                    
compat_sys_newfstat                     sys_newfstat
+108    64      fstat                           sys_fstat
+109    32      olduname                        sys_uname                       
sys_uname
+109    64      olduname                        sys_ni_syscall
+110    common  iopl                            sys_ni_syscall                  
sys_ni_syscall
+111    common  vhangup                         sys_vhangup                     
sys_vhangup                             sys_vhangup
+112    common  idle                            sys_ni_syscall                  
sys_ni_syscall
+113    common  vm86                            sys_ni_syscall                  
sys_ni_syscall
+114    common  wait4                           sys_wait4                       
compat_sys_wait4                        sys_wait4
+115    common  swapoff                         sys_swapoff                     
sys_swapoff
+116    common  sysinfo                         sys_sysinfo                     
compat_sys_sysinfo                      sys_sysinfo
+117    common  ipc                             sys_ipc                         
compat_sys_ipc
+118    common  fsync                           sys_fsync                       
sys_fsync                               sys_fsync
+119    32      sigreturn                       sys_sigreturn                   
compat_sys_sigreturn
+119    64      sigreturn                       sys_ni_syscall
+120    common  clone                           ppc_clone                       
ppc_clone
+121    common  setdomainname                   sys_setdomainname               
sys_setdomainname                       sys_setdomainname
+122    common  uname                           sys_newuname                    
sys_newuname                            sys_newuname
+123    common  modify_ldt                      sys_ni_syscall                  
sys_ni_syscall
+124    common  adjtimex                        sys_adjtimex                    
compat_sys_adjtimex                     sys_adjtimex
+125    common  mprotect                        sys_mprotect                    
sys_mprotect                            sys_mprotect
+126    32      sigprocmask                     sys_sigprocmask                 
compat_sys_sigprocmask
+126    64      sigprocmask                     sys_ni_syscall
+127    common  create_module                   sys_ni_syscall                  
sys_ni_syscall
+128    common  init_module                     sys_init_module                 
sys_init_module
+129    common  delete_module                   sys_delete_module               
sys_delete_module
+130    common  get_kernel_syms                 sys_ni_syscall                  
sys_ni_syscall
+131    common  quotactl                        sys_quotactl                    
sys_quotactl
+132    common  getpgid                         sys_getpgid                     
sys_getpgid                             sys_getpgid
+133    common  fchdir                          sys_fchdir                      
sys_fchdir                              sys_fchdir
+134    common  bdflush                         sys_bdflush                     
sys_bdflush                             sys_bdflush
+135    common  sysfs                           sys_sysfs                       
sys_sysfs                               sys_sysfs
+136    32      personality                     sys_personality                 
ppc64_personality                       ppc64_personality
+136    64      personality                     ppc64_personality
+137    common  afs_syscall                     sys_ni_syscall                  
sys_ni_syscall
+138    common  setfsuid                        sys_setfsuid                    
sys_setfsuid                            sys_setfsuid
+139    common  setfsgid                        sys_setfsgid                    
sys_setfsgid                            sys_setfsgid
+140    common  _llseek                         sys_llseek                      
sys_llseek                              sys_llseek
+141    common  getdents                        sys_getdents                    
compat_sys_getdents                     sys_getdents
+142    common  _newselect                      sys_select                      
compat_sys_select                       sys_select
+143    common  flock                           sys_flock                       
sys_flock                               sys_flock
+144    common  msync                           sys_msync                       
sys_msync                               sys_msync
+145    common  readv                           sys_readv                       
compat_sys_readv                        sys_readv
+146    common  writev                          sys_writev                      
compat_sys_writev                       sys_writev
+147    common  getsid                          sys_getsid                      
sys_getsid                              sys_getsid
+148    common  fdatasync                       sys_fdatasync                   
sys_fdatasync                           sys_fdatasync
+149    common  _sysctl                         sys_sysctl                      
compat_sys_sysctl
+150    common  mlock                           sys_mlock                       
sys_mlock                               sys_mlock
+151    common  munlock                         sys_munlock                     
sys_munlock                             sys_munlock
+152    common  mlockall                        sys_mlockall                    
sys_mlockall                            sys_mlockall
+153    common  munlockall                      sys_munlockall                  
sys_munlockall                          sys_munlockall
+154    common  sched_setparam                  sys_sched_setparam              
sys_sched_setparam                      sys_sched_setparam
+155    common  sched_getparam                  sys_sched_getparam              
sys_sched_getparam                      sys_sched_getparam
+156    common  sched_setscheduler              sys_sched_setscheduler          
sys_sched_setscheduler                  sys_sched_setscheduler
+157    common  sched_getscheduler              sys_sched_getscheduler          
sys_sched_getscheduler                  sys_sched_getscheduler
+158    common  sched_yield                     sys_sched_yield                 
sys_sched_yield                         sys_sched_yield
+159    common  sched_get_priority_max          sys_sched_get_priority_max      
sys_sched_get_priority_max              sys_sched_get_priority_max
+160    common  sched_get_priority_min          sys_sched_get_priority_min      
sys_sched_get_priority_min              sys_sched_get_priority_min
+161    common  sched_rr_get_interval           sys_sched_rr_get_interval       
compat_sys_sched_rr_get_interval        sys_sched_rr_get_interval
+162    common  nanosleep                       sys_nanosleep                   
compat_sys_nanosleep                    sys_nanosleep
+163    common  mremap                          sys_mremap                      
sys_mremap                              sys_mremap
+164    common  setresuid                       sys_setresuid                   
sys_setresuid                           sys_setresuid
+165    common  getresuid                       sys_getresuid                   
sys_getresuid                           sys_getresuid
+166    common  query_module                    sys_ni_syscall                  
sys_ni_syscall
+167    common  poll                            sys_poll                        
sys_poll                                sys_poll
+168    common  nfsservctl                      sys_ni_syscall                  
sys_ni_syscall
+169    common  setresgid                       sys_setresgid                   
sys_setresgid                           sys_setresgid
+170    common  getresgid                       sys_getresgid                   
sys_getresgid                           sys_getresgid
+171    common  prctl                           sys_prctl                       
sys_prctl                               sys_prctl
+172    common  rt_sigreturn                    sys_rt_sigreturn                
compat_sys_rt_sigreturn
+173    common  rt_sigaction                    sys_rt_sigaction                
compat_sys_rt_sigaction
+174    common  rt_sigprocmask                  sys_rt_sigprocmask              
compat_sys_rt_sigprocmask
+175    common  rt_sigpending                   sys_rt_sigpending               
compat_sys_rt_sigpending
+176    common  rt_sigtimedwait                 sys_rt_sigtimedwait             
compat_sys_rt_sigtimedwait
+177    common  rt_sigqueueinfo                 sys_rt_sigqueueinfo             
compat_sys_rt_sigqueueinfo
+178    common  rt_sigsuspend                   sys_rt_sigsuspend               
compat_sys_rt_sigsuspend
+179    common  pread64                         sys_pread64                     
compat_sys_pread64                      sys_pread64
+180    common  pwrite64                        sys_pwrite64                    
compat_sys_pwrite64                     sys_pwrite64
+181    common  chown                           sys_chown                       
sys_chown                               sys_chown
+182    common  getcwd                          sys_getcwd                      
sys_getcwd                              sys_getcwd
+183    common  capget                          sys_capget                      
sys_capget                              sys_capget
+184    common  capset                          sys_capset                      
sys_capset                              sys_capset
+185    common  sigaltstack                     sys_sigaltstack                 
compat_sys_sigaltstack
+186    32      sendfile                        sys_sendfile                    
compat_sys_sendfile                     sys_sendfile64
+186    64      sendfile                        sys_sendfile64
+187    common  getpmsg                         sys_ni_syscall                  
sys_ni_syscall
+188    common  putpmsg                         sys_ni_syscall                  
sys_ni_syscall
+189    common  vfork                           ppc_vfork                       
ppc_vfork
+190    common  ugetrlimit                      sys_getrlimit                   
compat_sys_getrlimit                    sys_getrlimit
+191    common  readahead                       sys_readahead                   
compat_sys_readahead                    sys_readahead
+192    32      mmap2                           sys_mmap2                       
compat_sys_mmap2
+193    32      truncate64                      sys_truncate64                  
compat_sys_truncate64
+194    32      ftruncate64                     sys_ftruncate64                 
compat_sys_ftruncate64
+195    32      stat64                          sys_stat64                      
sys_stat64
+196    32      lstat64                         sys_lstat64                     
sys_lstat64
+197    32      fstat64                         sys_fstat64                     
sys_fstat64
+198    common  pciconfig_read                  sys_pciconfig_read              
sys_pciconfig_read
+199    common  pciconfig_write                 sys_pciconfig_write             
sys_pciconfig_write
+200    common  pciconfig_iobase                sys_pciconfig_iobase            
sys_pciconfig_iobase
+201    common  multiplexer                     sys_ni_syscall                  
sys_ni_syscall
+202    common  getdents64                      sys_getdents64                  
sys_getdents64                          sys_getdents64
+203    common  pivot_root                      sys_pivot_root                  
sys_pivot_root                          sys_pivot_root
+204    32      fcntl64                         sys_fcntl64                     
compat_sys_fcntl64
+205    common  madvise                         sys_madvise                     
sys_madvise                             sys_madvise
+206    common  mincore                         sys_mincore                     
sys_mincore                             sys_mincore
+207    common  gettid                          sys_gettid                      
sys_gettid                              sys_gettid
+208    common  tkill                           sys_tkill                       
sys_tkill                               sys_tkill
+209    common  setxattr                        sys_setxattr                    
sys_setxattr                            sys_setxattr
+210    common  lsetxattr                       sys_lsetxattr                   
sys_lsetxattr                           sys_lsetxattr
+211    common  fsetxattr                       sys_fsetxattr                   
sys_fsetxattr                           sys_fsetxattr
+212    common  getxattr                        sys_getxattr                    
sys_getxattr                            sys_getxattr
+213    common  lgetxattr                       sys_lgetxattr                   
sys_lgetxattr                           sys_lgetxattr
+214    common  fgetxattr                       sys_fgetxattr                   
sys_fgetxattr                           sys_fgetxattr
+215    common  listxattr                       sys_listxattr                   
sys_listxattr                           sys_listxattr
+216    common  llistxattr                      sys_llistxattr                  
sys_llistxattr                          sys_llistxattr
+217    common  flistxattr                      sys_flistxattr                  
sys_flistxattr                          sys_flistxattr
+218    common  removexattr                     sys_removexattr                 
sys_removexattr                         sys_removexattr
+219    common  lremovexattr                    sys_lremovexattr                
sys_lremovexattr                        sys_lremovexattr
+220    common  fremovexattr                    sys_fremovexattr                
sys_fremovexattr                        sys_fremovexattr
+221    common  futex                           sys_futex                       
compat_sys_futex                        sys_futex
+222    common  sched_setaffinity               sys_sched_setaffinity           
compat_sys_sched_setaffinity            sys_sched_setaffinity
+223    common  sched_getaffinity               sys_sched_getaffinity           
compat_sys_sched_getaffinity            sys_sched_getaffinity
+# 224 unused
+225    common  tuxcall                         sys_ni_syscall                  
sys_ni_syscall
+226    32      sendfile64                      sys_sendfile64                  
compat_sys_sendfile64
+227    common  io_setup                        sys_io_setup                    
compat_sys_io_setup                     sys_io_setup
+228    common  io_destroy                      sys_io_destroy                  
sys_io_destroy                          sys_io_destroy
+229    common  io_getevents                    sys_io_getevents                
compat_sys_io_getevents                 sys_io_getevents
+230    common  io_submit                       sys_io_submit                   
compat_sys_io_submit                    sys_io_submit
+231    common  io_cancel                       sys_io_cancel                   
sys_io_cancel                           sys_io_cancel
+232    common  set_tid_address                 sys_set_tid_address             
sys_set_tid_address
+233    common  fadvise64                       sys_fadvise64                   
ppc32_fadvise64                         sys_fadvise64
+234    common  exit_group                      sys_exit_group                  
sys_exit_group
+235    common  lookup_dcookie                  sys_lookup_dcookie              
compat_sys_lookup_dcookie
+236    common  epoll_create                    sys_epoll_create                
sys_epoll_create                        sys_epoll_create
+237    common  epoll_ctl                       sys_epoll_ctl                   
sys_epoll_ctl                           sys_epoll_ctl
+238    common  epoll_wait                      sys_epoll_wait                  
sys_epoll_wait                          sys_epoll_wait
+239    common  remap_file_pages                sys_remap_file_pages            
sys_remap_file_pages                    sys_remap_file_pages
+240    common  timer_create                    sys_timer_create                
compat_sys_timer_create                 sys_timer_create
+241    common  timer_settime                   sys_timer_settime               
compat_sys_timer_settime                sys_timer_settime
+242    common  timer_gettime                   sys_timer_gettime               
compat_sys_timer_gettime                sys_timer_gettime
+243    common  timer_getoverrun                sys_timer_getoverrun            
sys_timer_getoverrun                    sys_timer_getoverrun
+244    common  timer_delete                    sys_timer_delete                
sys_timer_delete                        sys_timer_delete
+245    common  clock_settime                   sys_clock_settime               
compat_sys_clock_settime                sys_clock_settime
+246    common  clock_gettime                   sys_clock_gettime               
compat_sys_clock_gettime                sys_clock_gettime
+247    common  clock_getres                    sys_clock_getres                
compat_sys_clock_getres                 sys_clock_getres
+248    common  clock_nanosleep                 sys_clock_nanosleep             
compat_sys_clock_nanosleep              sys_clock_nanosleep
+249    32      swapcontext                     ppc_swapcontext                 
ppc32_swapcontext
+249    64      swapcontext                     ppc64_swapcontext
+250    common  tgkill                          sys_tgkill                      
sys_tgkill                              sys_tgkill
+251    common  utimes                          sys_utimes                      
compat_sys_utimes                       sys_utimes
+252    common  statfs64                        sys_statfs64                    
compat_sys_statfs64                     sys_statfs64
+253    common  fstatfs64                       sys_fstatfs64                   
compat_sys_fstatfs64                    sys_fstatfs64
+254    32      fadvise64_64                    ppc_fadvise64_64                
ppc_fadvise64_64
+255    common  rtas                            sys_rtas                        
sys_rtas                                sys_rtas
+256    32      sys_debug_setcontext            sys_debug_setcontext            
sys_ni_syscall
+256    64      sys_debug_setcontext            sys_ni_syscall
+# 257 reserved for vserver
+258    common  migrate_pages                   sys_ni_syscall                  
sys_ni_syscall
+259    common  mbind                           sys_mbind                       
compat_sys_mbind
+260    common  get_mempolicy                   sys_get_mempolicy               
compat_sys_get_mempolicy
+261    common  set_mempolicy                   sys_set_mempolicy               
compat_sys_set_mempolicy
+262    common  mq_open                         sys_mq_open                     
compat_sys_mq_open
+263    common  mq_unlink                       sys_mq_unlink                   
sys_mq_unlink
+264    common  mq_timedsend                    sys_mq_timedsend                
compat_sys_mq_timedsend
+265    common  mq_timedreceive                 sys_mq_timedreceive             
compat_sys_mq_timedreceive
+266    common  mq_notify                       sys_mq_notify                   
compat_sys_mq_notify
+267    common  mq_getsetattr                   sys_mq_getsetattr               
compat_sys_mq_getsetattr
+268    common  kexec_load                      sys_kexec_load                  
compat_sys_kexec_load
+269    common  add_key                         sys_add_key                     
sys_add_key
+270    common  request_key                     sys_request_key                 
sys_request_key
+271    common  keyctl                          sys_keyctl                      
compat_sys_keyctl
+272    common  waitid                          sys_waitid                      
compat_sys_waitid
+273    common  ioprio_set                      sys_ioprio_set                  
sys_ioprio_set
+274    common  ioprio_get                      sys_ioprio_get                  
sys_ioprio_get
+275    common  inotify_init                    sys_inotify_init                
sys_inotify_init
+276    common  inotify_add_watch               sys_inotify_add_watch           
sys_inotify_add_watch
+277    common  inotify_rm_watch                sys_inotify_rm_watch            
sys_inotify_rm_watch
+278    common  spu_run                         sys_spu_run                     
sys_spu_run
+279    common  spu_create                      sys_spu_create                  
sys_spu_create
+280    common  pselect6                        sys_pselect6                    
compat_sys_pselect6
+281    common  ppoll                           sys_ppoll                       
compat_sys_ppoll
+282    common  unshare                         sys_unshare                     
sys_unshare                             sys_unshare
+283    common  splice                          sys_splice                      
sys_splice                              sys_splice
+284    common  tee                             sys_tee                         
sys_tee                                 sys_tee
+285    common  vmsplice                        sys_vmsplice                    
compat_sys_vmsplice                     sys_vmsplice
+286    common  openat                          sys_openat                      
compat_sys_openat                       sys_openat
+287    common  mkdirat                         sys_mkdirat                     
sys_mkdirat                             sys_mkdirat
+288    common  mknodat                         sys_mknodat                     
sys_mknodat                             sys_mknodat
+289    common  fchownat                        sys_fchownat                    
sys_fchownat                            sys_fchownat
+290    common  futimesat                       sys_futimesat                   
compat_sys_futimesat                    sys_futimesat
+291    32      fstatat64                       sys_fstatat64                   
sys_fstatat64                           sys_newfstatat
+291    64      newfstatat                      sys_newfstatat
+292    common  unlinkat                        sys_unlinkat                    
sys_unlinkat                            sys_unlinkat
+293    common  renameat                        sys_renameat                    
sys_renameat                            sys_renameat
+294    common  linkat                          sys_linkat                      
sys_linkat                              sys_linkat
+295    common  symlinkat                       sys_symlinkat                   
sys_symlinkat                           sys_symlinkat
+296    common  readlinkat                      sys_readlinkat                  
sys_readlinkat                          sys_readlinkat
+297    common  fchmodat                        sys_fchmodat                    
sys_fchmodat                            sys_fchmodat
+298    common  faccessat                       sys_faccessat                   
sys_faccessat                           sys_faccessat
+299    common  get_robust_list                 sys_get_robust_list             
compat_sys_get_robust_list              sys_get_robust_list
+300    common  set_robust_list                 sys_set_robust_list             
compat_sys_set_robust_list              sys_set_robust_list
+301    common  move_pages                      sys_move_pages                  
compat_sys_move_pages                   sys_move_pages
+302    common  getcpu                          sys_getcpu                      
sys_getcpu                              sys_getcpu
+303    common  epoll_pwait                     sys_epoll_pwait                 
compat_sys_epoll_pwait
+304    common  utimensat                       sys_utimensat                   
compat_sys_utimensat                    sys_utimensat
+305    common  signalfd                        sys_signalfd                    
compat_sys_signalfd                     sys_signalfd
+306    common  timerfd_create                  sys_timerfd_create              
sys_timerfd_create                      sys_timerfd_create
+307    common  eventfd                         sys_eventfd                     
sys_eventfd                             sys_eventfd
+308    common  sync_file_range2                sys_sync_file_range2            
compat_sys_sync_file_range2             sys_sync_file_range2
+309    common  fallocate                       sys_fallocate                   
compat_sys_fallocate
+310    common  subpage_prot                    sys_subpage_prot                
sys_subpage_prot
+311    common  timerfd_settime                 sys_timerfd_settime             
compat_sys_timerfd_settime              sys_timerfd_settime
+312    common  timerfd_gettime                 sys_timerfd_gettime             
compat_sys_timerfd_gettime              sys_timerfd_gettime
+313    common  signalfd4                       sys_signalfd4                   
compat_sys_signalfd4                    sys_signalfd4
+314    common  eventfd2                        sys_eventfd2                    
sys_eventfd2                            sys_eventfd2
+315    common  epoll_create1                   sys_epoll_create1               
sys_epoll_create1                       sys_epoll_create1
+316    common  dup3                            sys_dup3                        
sys_dup3                                sys_dup3
+317    common  pipe2                           sys_pipe2                       
sys_pipe2                               sys_pipe2
+318    common  inotify_init1                   sys_inotify_init1               
sys_inotify_init1
+319    common  perf_event_open                 sys_perf_event_open             
sys_perf_event_open                     sys_perf_event_open
+320    common  preadv                          sys_preadv                      
compat_sys_preadv                       sys_preadv
+321    common  pwritev                         sys_pwritev                     
compat_sys_pwritev                      sys_pwritev
+322    common  rt_tgsigqueueinfo               sys_rt_tgsigqueueinfo           
compat_sys_rt_tgsigqueueinfo
+323    common  fanotify_init                   sys_fanotify_init               
sys_fanotify_init
+324    common  fanotify_mark                   sys_fanotify_mark               
compat_sys_fanotify_mark
+325    common  prlimit64                       sys_prlimit64                   
sys_prlimit64                           sys_prlimit64
+326    common  socket                          sys_socket                      
sys_socket                              sys_socket
+327    common  bind                            sys_bind                        
sys_bind                                sys_bind
+328    common  connect                         sys_connect                     
sys_connect                             sys_connect
+329    common  listen                          sys_listen                      
sys_listen                              sys_listen
+330    common  accept                          sys_accept                      
sys_accept                              sys_accept
+331    common  getsockname                     sys_getsockname                 
sys_getsockname                         sys_getsockname
+332    common  getpeername                     sys_getpeername                 
sys_getpeername                         sys_getpeername
+333    common  socketpair                      sys_socketpair                  
sys_socketpair                          sys_socketpair
+334    common  send                            sys_send                        
sys_send                                sys_send
+335    common  sendto                          sys_sendto                      
sys_sendto                              sys_sendto
+336    common  recv                            sys_recv                        
compat_sys_recv                         sys_recv
+337    common  recvfrom                        sys_recvfrom                    
compat_sys_recvfrom                     sys_recvfrom
+338    common  shutdown                        sys_shutdown                    
sys_shutdown                            sys_shutdown
+339    common  setsockopt                      sys_setsockopt                  
compat_sys_setsockopt                   sys_setsockopt
+340    common  getsockopt                      sys_getsockopt                  
compat_sys_getsockopt                   sys_getsockopt
+341    common  sendmsg                         sys_sendmsg                     
compat_sys_sendmsg                      sys_sendmsg
+342    common  recvmsg                         sys_recvmsg                     
compat_sys_recvmsg                      sys_recvmsg
+343    common  recvmmsg                        sys_recvmmsg                    
compat_sys_recvmmsg                     sys_recvmmsg
+344    common  accept4                         sys_accept4                     
sys_accept4                             sys_accept4
+345    common  name_to_handle_at               sys_name_to_handle_at           
sys_name_to_handle_at                   sys_name_to_handle_at
+346    common  open_by_handle_at               sys_open_by_handle_at           
compat_sys_open_by_handle_at            sys_open_by_handle_at
+347    common  clock_adjtime                   sys_clock_adjtime               
compat_sys_clock_adjtime                sys_clock_adjtime
+348    common  syncfs                          sys_syncfs                      
sys_syncfs                              sys_syncfs
+349    common  sendmmsg                        sys_sendmmsg                    
compat_sys_sendmmsg                     sys_sendmmsg
+350    common  setns                           sys_setns                       
sys_setns                               sys_setns
+351    common  process_vm_readv                sys_process_vm_readv            
compat_sys_process_vm_readv
+352    common  process_vm_writev               sys_process_vm_writev           
compat_sys_process_vm_writev
+353    common  finit_module                    sys_finit_module                
sys_finit_module
+354    common  kcmp                            sys_kcmp                        
sys_kcmp
+355    common  sched_setattr                   sys_sched_setattr               
sys_sched_setattr                       sys_sched_setattr
+356    common  sched_getattr                   sys_sched_getattr               
sys_sched_getattr                       sys_sched_getattr
+357    common  renameat2                       sys_renameat2                   
sys_renameat2                           sys_renameat2
+358    common  seccomp                         sys_seccomp                     
sys_seccomp                             sys_seccomp
+359    common  getrandom                       sys_getrandom                   
sys_getrandom                           sys_getrandom
+360    common  memfd_create                    sys_memfd_create                
sys_memfd_create                        sys_memfd_create
+361    common  bpf                             sys_bpf                         
sys_bpf                                 sys_bpf
+362    common  execveat                        sys_execveat                    
compat_sys_execveat
+363    32      switch_endian                   sys_ni_syscall                  
sys_ni_syscall
+363    64      switch_endian                   ppc_switch_endian
+364    common  userfaultfd                     sys_userfaultfd                 
sys_userfaultfd                         sys_userfaultfd
+365    common  membarrier                      sys_membarrier                  
sys_membarrier                          sys_membarrier
+378    common  mlock2                          sys_mlock2                      
sys_mlock2
+379    common  copy_file_range                 sys_copy_file_range             
sys_copy_file_range
+380    common  preadv2                         sys_preadv2                     
compat_sys_preadv2                      sys_preadv2
+381    common  pwritev2                        sys_pwritev2                    
compat_sys_pwritev2                     sys_pwritev2
+382    common  kexec_file_load                 sys_kexec_file_load             
sys_kexec_file_load
+383    common  statx                           sys_statx                       
sys_statx
+384    common  pkey_alloc                      sys_pkey_alloc                  
sys_pkey_alloc
+385    common  pkey_free                       sys_pkey_free                   
sys_pkey_free
+386    common  pkey_mprotect                   sys_pkey_mprotect               
sys_pkey_mprotect
+387    common  rseq                            sys_rseq                        
sys_rseq
+388    common  io_pgetevents                   sys_io_pgetevents               
compat_sys_io_pgetevents
diff --git a/arch/powerpc/kernel/syscalls/syscallhdr.sh 
b/arch/powerpc/kernel/syscalls/syscallhdr.sh
new file mode 100644
index 0000000..74cbb62
--- /dev/null
+++ b/arch/powerpc/kernel/syscalls/syscallhdr.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+
+in="$1"
+out="$2"
+my_abis=`echo "($3)" | tr ',' '|'`
+prefix="$4"
+offset="$5"
+
+fileguard=_UAPI_ASM_POWERPC_`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 | (
+       printf "#ifndef %s\n" "${fileguard}"
+       printf "#define %s\n" "${fileguard}"
+       printf "\n"
+
+       nxt=0
+       while read nr abi name entry compat spu ; do
+               if [ -z "$offset" ]; then
+                       printf "#define __NR_%s%s\t%s\n" \
+                               "${prefix}" "${name}" "${nr}"
+               else
+                       printf "#define __NR_%s%s\t(%s + %s)\n" \
+                               "${prefix}" "${name}" "${offset}" "${nr}"
+               fi
+               nxt=$((nr+1))
+       done
+
+       printf "\n"
+       printf "#ifdef __KERNEL__\n"
+       printf "#define __NR_syscalls\t%s\n" "${nxt}"
+       printf "#endif\n"
+       printf "\n"
+       printf "#endif /* %s */" "${fileguard}"
+) > "$out"
diff --git a/arch/powerpc/kernel/syscalls/syscalltbl.sh 
b/arch/powerpc/kernel/syscalls/syscalltbl.sh
new file mode 100644
index 0000000..80c8524
--- /dev/null
+++ b/arch/powerpc/kernel/syscalls/syscalltbl.sh
@@ -0,0 +1,41 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+
+in="$1"
+out="$2"
+my_abis=`echo "($3)" | tr ',' '|'`
+my_abi="$4"
+offset="$5"
+
+emit() {
+       t_nxt="$1"
+       t_nr="$2"
+       t_entry="$3"
+
+       while [ $t_nxt -lt $t_nr ]; do
+               printf "__SYSCALL(%s, sys_ni_syscall, )\n" "${t_nxt}"
+               t_nxt=$((t_nxt+1))
+       done
+       printf "__SYSCALL(%s, %s, )\n" "${t_nxt}" "${t_entry}"
+}
+
+grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
+       nxt=0
+       if [ -z "$offset" ]; then
+               offset=0
+       fi
+
+       while read nr abi name entry compat spu ; do
+               if [ "$my_abi" = "spu" ]; then
+                       if [ -z "$spu" ]; then
+                               spu="sys_ni_syscall"
+                       fi
+                       emit $((nxt+offset)) $((nr+offset)) $spu
+               elif [ "$my_abi" = "c32" ]; then
+                       emit $((nxt+offset)) $((nr+offset)) $compat
+               else
+                       emit $((nxt+offset)) $((nr+offset)) $entry
+               fi
+               nxt=$((nr+1))
+       done
+) > "$out"
-- 
1.9.1

Reply via email to