lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CALxhOnjB8_-qtvPCY9fNjN1V5tSXq8ObivfhyOLAJ0849Bnvtw@mail.gmail.com>
Date:   Fri, 12 Oct 2018 15:48:04 +0530
From:   Firoz Khan <firoz.khan@...aro.org>
To:     linux-parisc@...r.kernel.org,
        "James E . J . Bottomley" <jejb@...isc-linux.org>,
        Helge Deller <deller@....de>,
        Thomas Gleixner <tglx@...utronix.de>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Philippe Ombredanne <pombredanne@...b.com>,
        Kate Stewart <kstewart@...uxfoundation.org>
Cc:     y2038 Mailman List <y2038@...ts.linaro.org>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        Linux-Arch <linux-arch@...r.kernel.org>,
        Arnd Bergmann <arnd@...db.de>,
        Deepa Dinamani <deepa.kernel@...il.com>,
        Marcin Juszkiewicz <marcin.juszkiewicz@...aro.org>
Subject: Re: [PATCH v4 3/6] parisc: add system call table generation support

Hi Arnd, Helge, everyone,

On Fri, 12 Oct 2018 at 15:14, Firoz Khan <firoz.khan@...aro.org> 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.
>         - 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.khan@...aro.org>
> ---
>  arch/parisc/kernel/syscalls/Makefile      |  55 +++++
>  arch/parisc/kernel/syscalls/syscall.tbl   | 369 ++++++++++++++++++++++++++++++
>  arch/parisc/kernel/syscalls/syscallhdr.sh |  35 +++
>  arch/parisc/kernel/syscalls/syscalltbl.sh |  46 ++++
>  4 files changed, 505 insertions(+)
>  create mode 100644 arch/parisc/kernel/syscalls/Makefile
>  create mode 100644 arch/parisc/kernel/syscalls/syscall.tbl
>  create mode 100644 arch/parisc/kernel/syscalls/syscallhdr.sh
>  create mode 100644 arch/parisc/kernel/syscalls/syscalltbl.sh
>
> diff --git a/arch/parisc/kernel/syscalls/Makefile b/arch/parisc/kernel/syscalls/Makefile
> new file mode 100644
> index 0000000..a0af5a3
> --- /dev/null
> +++ b/arch/parisc/kernel/syscalls/Makefile
> @@ -0,0 +1,55 @@
> +# 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_abi_$(basetarget))'          \
> +                  '$(syshdr_pfx_$(basetarget))'          \
> +                  '$(syshdr_offset_$(basetarget))'
> +
> +quiet_cmd_systbl = SYSTBL  $@
> +      cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@'  \
> +                   '$(systbl_abi_$(basetarget))'          \
> +                  '$(systbl_offset_$(basetarget))'
> +
> +syshdr_abi_unistd_32 := common,32
> +syshdr_offset_unistd_32 := __NR_Linux
> +$(uapi)/unistd_32.h: $(syscall) $(syshdr)
> +       $(call if_changed,syshdr)
> +
> +syshdr_abi_unistd_64 := common,64
> +syshdr_offset_unistd_64 := __NR_Linux
> +$(uapi)/unistd_64.h: $(syscall) $(syshdr)
> +       $(call if_changed,syshdr)
> +
> +systbl_abi_syscall_table_32 := common,32
> +$(kapi)/syscall_table_32.h: $(syscall) $(systbl)
> +       $(call if_changed,systbl)
> +
> +systbl_abi_syscall_table_64 := common,64
> +$(kapi)/syscall_table_64.h: $(syscall) $(systbl)
> +       $(call if_changed,systbl)
> +
> +systbl_abi_syscall_table_c32 := common,compat,32
> +$(kapi)/syscall_table_c32.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
> +
> +targets        += $(uapisyshdr-y) $(kapisyshdr-y)
> +
> +PHONY += all
> +all: $(addprefix $(uapi)/,$(uapisyshdr-y))
> +all: $(addprefix $(kapi)/,$(kapisyshdr-y))
> +       @:
> diff --git a/arch/parisc/kernel/syscalls/syscall.tbl b/arch/parisc/kernel/syscalls/syscall.tbl
> new file mode 100644
> index 0000000..7c9f268
> --- /dev/null
> +++ b/arch/parisc/kernel/syscalls/syscall.tbl
> @@ -0,0 +1,369 @@
> +# SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
> +#
> +# system call numbers and entry vectors for parisc
> +#
> +# The format is:
> +# <number> <abi> <name> <entry point> <compat entry point>
> +#
> +# The <abi> can be common, 64, or 32 for this file.
> +#
> +0       common  restart_syscall                 sys_restart_syscall
> +1       common  exit                            sys_exit
> +2       common  fork                            sys_fork_wrapper
> +3       common  read                            sys_read
> +4       common  write                           sys_write
> +5       common  open                            sys_open                        compat_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                      compat_sys_execve
> +12      common  chdir                           sys_chdir
> +13      common  time                            sys_time                        compat_sys_time
> +14      common  mknod                           sys_mknod
> +15      common  chmod                           sys_chmod
> +16      common  lchown                          sys_lchown
> +17      common  socket                          sys_socket
> +18      common  stat                            sys_newstat                     compat_sys_newstat
> +19      common  lseek                           sys_lseek                       compat_sys_lseek
> +20      common  getpid                          sys_getpid
> +21      common  mount                           sys_mount                       compat_sys_mount
> +22      common  bind                            sys_bind
> +23      common  setuid                          sys_setuid
> +24      common  getuid                          sys_getuid
> +25      common  stime                           sys_stime                       compat_sys_stime
> +26      common  ptrace                          sys_ptrace                      compat_sys_ptrace
> +27      common  alarm                           sys_alarm
> +28      common  fstat                           sys_newfstat                    compat_sys_newfstat
> +29      common  pause                           sys_pause
> +30      common  utime                           sys_utime                       compat_sys_utime
> +31      common  connect                         sys_connect
> +32      common  listen                          sys_listen
> +33      common  access                          sys_access
> +34      common  nice                            sys_nice
> +35      common  accept                          sys_accept
> +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                       compat_sys_times
> +44      common  getsockname                     sys_getsockname
> +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  getpeername                     sys_getpeername
> +54      common  ioctl                           sys_ioctl                       compat_sys_ioctl
> +55      common  fcntl                           sys_fcntl                       compat_sys_fcntl
> +56      common  socketpair                      sys_socketpair
> +57      common  setpgid                         sys_setpgid
> +58      common  send                            sys_send
> +59      common  uname                           sys_newuname
> +60      common  umask                           sys_umask
> +61      common  chroot                          sys_chroot
> +62      common  ustat                           sys_ustat                       compat_sys_ustat
> +63      common  dup2                            sys_dup2
> +64      common  getppid                         sys_getppid
> +65      common  getpgrp                         sys_getpgrp
> +66      common  setsid                          sys_setsid
> +67      common  pivot_root                      sys_pivot_root
> +68      common  sgetmask                        sys_sgetmask                    sys32_unimplemented
> +69      common  ssetmask                        sys_ssetmask                    sys32_unimplemented
> +70      common  setreuid                        sys_setreuid
> +71      common  setregid                        sys_setregid
> +72      common  mincore                         sys_mincore
> +73      common  sigpending                      sys_sigpending                  compat_sys_sigpending
> +74      common  sethostname                     sys_sethostname
> +75      common  setrlimit                       sys_setrlimit                   compat_sys_setrlimit
> +76      common  getrlimit                       sys_getrlimit                   compat_sys_getrlimit
> +77      common  getrusage                       sys_getrusage                   compat_sys_getrusage
> +78      common  gettimeofday                    sys_gettimeofday                compat_sys_gettimeofday
> +79      common  settimeofday                    sys_settimeofday                compat_sys_settimeofday
> +80      common  getgroups                       sys_getgroups
> +81      common  setgroups                       sys_setgroups
> +82      common  sendto                          sys_sendto
> +83      common  symlink                         sys_symlink
> +84      common  lstat                           sys_newlstat                    compat_sys_newlstat
> +85      common  readlink                        sys_readlink
> +86      common  uselib                          sys_ni_syscall
> +87      common  swapon                          sys_swapon
> +88      common  reboot                          sys_reboot
> +89      common  mmap2                           sys_mmap2
> +90      common  mmap                            sys_mmap
> +91      common  munmap                          sys_munmap
> +92      common  truncate                        sys_truncate                    compat_sys_truncate
> +93      common  ftruncate                       sys_ftruncate                   compat_sys_ftruncate
> +94      common  fchmod                          sys_fchmod
> +95      common  fchown                          sys_fchown
> +96      common  getpriority                     sys_getpriority
> +97      common  setpriority                     sys_setpriority
> +98      common  recv                            sys_recv
> +99      common  statfs                          sys_statfs                      compat_sys_statfs
> +100     common  fstatfs                         sys_fstatfs                     compat_sys_fstatfs
> +101     common  stat64                          sys_stat64
> +# 102 was socketcall
> +103     common  syslog                          sys_syslog
> +104     common  setitimer                       sys_setitimer                   compat_sys_setitimer
> +105     common  getitimer                       sys_getitimer                   compat_sys_getitimer
> +106     common  capget                          sys_capget
> +107     common  capset                          sys_capset
> +108     32      pread64                         parisc_pread64
> +108     64      pread64                         sys_pread64
> +109     32      pwrite64                        parisc_pwrite64
> +109     64      pwrite64                        sys_pwrite64
> +110     common  getcwd                          sys_getcwd
> +111     common  vhangup                         sys_vhangup
> +112     common  fstat64                         sys_fstat64
> +113     common  vfork                           sys_vfork_wrapper
> +114     common  wait4                           sys_wait4                       compat_sys_wait4
> +115     common  swapoff                         sys_swapoff
> +116     common  sysinfo                         sys_sysinfo                     compat_sys_sysinfo
> +117     common  shutdown                        sys_shutdown
> +118     common  fsync                           sys_fsync
> +119     common  madvise                         sys_madvise
> +120     common  clone                           sys_clone_wrapper
> +121     common  setdomainname                   sys_setdomainname
> +122     common  sendfile                        sys_sendfile                    compat_sys_sendfile
> +123     common  recvfrom                        sys_recvfrom
> +124     common  adjtimex                        sys_adjtimex                    compat_sys_adjtimex
> +125     common  mprotect                        sys_mprotect
> +126     common  sigprocmask                     sys_sigprocmask                 compat_sys_sigprocmask
> +# 127 was create_module
> +128     common  init_module                     sys_init_module
> +129     common  delete_module                   sys_delete_module
> +# 130 was get_kernel_syms
> +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     32      personality                     parisc_personality
> +136     64      personality                     sys_personality
> +# 137 was afs_syscall
> +138     common  setfsuid                        sys_setfsuid
> +139     common  setfsgid                        sys_setfsgid
> +140     common  _llseek                         sys_llseek
> +141     common  getdents                        sys_getdents                    compat_sys_getdents
> +142     common  _newselect                      sys_select                      compat_sys_select
> +143     common  flock                           sys_flock
> +144     common  msync                           sys_msync
> +145     common  readv                           sys_readv                       compat_sys_readv
> +146     common  writev                          sys_writev                      compat_sys_writev
> +147     common  getsid                          sys_getsid
> +148     common  fdatasync                       sys_fdatasync
> +149     common  _sysctl                         sys_sysctl                      compat_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       compat_sys_sched_rr_get_interval
> +162     common  nanosleep                       sys_nanosleep                   compat_sys_nanosleep
> +163     common  mremap                          sys_mremap
> +164     common  setresuid                       sys_setresuid
> +165     common  getresuid                       sys_getresuid
> +166     common  sigaltstack                     sys_sigaltstack                 compat_sys_sigaltstack
> +# 167 was query_module
> +168     common  poll                            sys_poll
> +# 169 was nfsservctl
> +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                compat_sys_rt_sigaction
> +175     common  rt_sigprocmask                  sys_rt_sigprocmask              compat_sys_rt_sigprocmask
> +176     common  rt_sigpending                   sys_rt_sigpending               compat_sys_rt_sigpending
> +177     common  rt_sigtimedwait                 sys_rt_sigtimedwait             compat_sys_rt_sigtimedwait
> +178     common  rt_sigqueueinfo                 sys_rt_sigqueueinfo             compat_sys_rt_sigqueueinfo
> +179     common  rt_sigsuspend                   sys_rt_sigsuspend               compat_sys_rt_sigsuspend
> +180     common  chown                           sys_chown
> +181     common  setsockopt                      sys_setsockopt                  compat_sys_setsockopt
> +182     common  getsockopt                      sys_getsockopt                  compat_sys_getsockopt
> +183     common  sendmsg                         sys_sendmsg                     compat_sys_sendmsg
> +184     common  recvmsg                         sys_recvmsg                     compat_sys_recvmsg
> +185     common  semop                           sys_semop
> +186     common  semget                          sys_semget
> +187     common  semctl                          sys_semctl                      compat_sys_semctl
> +188     common  msgsnd                          sys_msgsnd                      compat_sys_msgsnd
> +189     common  msgrcv                          sys_msgrcv                      compat_sys_msgrcv
> +190     common  msgget                          sys_msgget
> +191     common  msgctl                          sys_msgctl                      compat_sys_msgctl
> +192     common  shmat                           sys_shmat                       compat_sys_shmat
> +193     common  shmdt                           sys_shmdt
> +194     common  shmget                          sys_shmget
> +195     common  shmctl                          sys_shmctl                      compat_sys_shmctl
> +# 196 was getpmsg
> +# 197 was putpmsg
> +198     common  lstat64                         sys_lstat64
> +199     32      truncate64                      parisc_truncate64
> +199     64      truncate64                      sys_truncate64
> +200     32      ftruncate64                     parisc_ftruncate64
> +200     64      ftruncate64                     sys_ftruncate64
> +201     common  getdents64                      sys_getdents64
> +202     common  fcntl64                         sys_fcntl64                     compat_sys_fcntl64
> +# 203 was attrctl
> +# 204 was acl_get
> +# 205 was acl_set
> +206     common  gettid                          sys_gettid
> +207     32      readahead                       parisc_readahead
> +207     64      readahead                       sys_readahead
> +208     common  tkill                           sys_tkill
> +209     common  sendfile64                      sys_sendfile64                  compat_sys_sendfile64
> +210     common  futex                           sys_futex                       compat_sys_futex
> +211     common  sched_setaffinity               sys_sched_setaffinity           compat_sys_sched_setaffinity
> +212     common  sched_getaffinity               sys_sched_getaffinity           compat_sys_sched_getaffinity
> +# 213 was set_thread_area
> +# 214 was get_thread_area
> +215     common  io_setup                        sys_io_setup                    compat_sys_io_setup
> +216     common  io_destroy                      sys_io_destroy
> +217     common  io_getevents                    sys_io_getevents                compat_sys_io_getevents
> +218     common  io_submit                       sys_io_submit                   compat_sys_io_submit
> +219     common  io_cancel                       sys_io_cancel
> +# 220 was alloc_hugepages
> +# 221 was free_hugepages
> +222     common  exit_group                      sys_exit_group
> +223     common  lookup_dcookie                  sys_lookup_dcookie              compat_sys_lookup_dcookie
> +224     common  epoll_create                    sys_epoll_create
> +225     common  epoll_ctl                       sys_epoll_ctl
> +226     common  epoll_wait                      sys_epoll_wait
> +227     common  remap_file_pages                sys_remap_file_pages
> +228     common  semtimedop                      sys_semtimedop                  compat_sys_semtimedop
> +229     common  mq_open                         sys_mq_open                     compat_sys_mq_open
> +230     common  mq_unlink                       sys_mq_unlink
> +231     common  mq_timedsend                    sys_mq_timedsend                compat_sys_mq_timedsend
> +232     common  mq_timedreceive                 sys_mq_timedreceive             compat_sys_mq_timedreceive
> +233     common  mq_notify                       sys_mq_notify                   compat_sys_mq_notify
> +234     common  mq_getsetattr                   sys_mq_getsetattr               compat_sys_mq_getsetattr
> +235     common  waitid                          sys_waitid                      compat_sys_waitid
> +236     32      fadvise64_64                    parisc_fadvise64_64
> +236     64      fadvise64_64                    sys_fadvise64_64
> +237     common  set_tid_address                 sys_set_tid_address
> +238     common  setxattr                        sys_setxattr
> +239     common  lsetxattr                       sys_lsetxattr
> +240     common  fsetxattr                       sys_fsetxattr
> +241     common  getxattr                        sys_getxattr
> +242     common  lgetxattr                       sys_lgetxattr
> +243     common  fgetxattr                       sys_fgetxattr
> +244     common  listxattr                       sys_listxattr
> +245     common  llistxattr                      sys_llistxattr
> +246     common  flistxattr                      sys_flistxattr
> +247     common  removexattr                     sys_removexattr
> +248     common  lremovexattr                    sys_lremovexattr
> +249     common  fremovexattr                    sys_fremovexattr
> +250     common  timer_create                    sys_timer_create                compat_sys_timer_create
> +251     common  timer_settime                   sys_timer_settime               compat_sys_timer_settime
> +252     common  timer_gettime                   sys_timer_gettime               compat_sys_timer_gettime
> +253     common  timer_getoverrun                sys_timer_getoverrun
> +254     common  timer_delete                    sys_timer_delete
> +255     common  clock_settime                   sys_clock_settime               compat_sys_clock_settime
> +256     common  clock_gettime                   sys_clock_gettime               compat_sys_clock_gettime
> +257     common  clock_getres                    sys_clock_getres                compat_sys_clock_getres
> +258     common  clock_nanosleep                 sys_clock_nanosleep             compat_sys_clock_nanosleep
> +259     common  tgkill                          sys_tgkill
> +260     common  mbind                           sys_mbind                       compat_sys_mbind
> +261     common  get_mempolicy                   sys_get_mempolicy               compat_sys_get_mempolicy
> +262     common  set_mempolicy                   sys_set_mempolicy               compat_sys_set_mempolicy
> +# 263 was vserver
> +264     common  add_key                         sys_add_key
> +265     common  request_key                     sys_request_key
> +266     common  keyctl                          sys_keyctl                      compat_sys_keyctl
> +267     common  ioprio_set                      sys_ioprio_set
> +268     common  ioprio_get                      sys_ioprio_get
> +269     common  inotify_init                    sys_inotify_init
> +270     common  inotify_add_watch               sys_inotify_add_watch
> +271     common  inotify_rm_watch                sys_inotify_rm_watch
> +272     common  migrate_pages                   sys_migrate_pages
> +273     common  pselect6                        sys_pselect6                    compat_sys_pselect6
> +274     common  ppoll                           sys_ppoll                       compat_sys_ppoll
> +275     common  openat                          sys_openat                      compat_sys_openat
> +276     common  mkdirat                         sys_mkdirat
> +277     common  mknodat                         sys_mknodat
> +278     common  fchownat                        sys_fchownat
> +279     common  futimesat                       sys_futimesat                   compat_sys_futimesat
> +280     common  fstatat64                       sys_fstatat64
> +281     common  unlinkat                        sys_unlinkat
> +282     common  renameat                        sys_renameat
> +283     common  linkat                          sys_linkat
> +284     common  symlinkat                       sys_symlinkat
> +285     common  readlinkat                      sys_readlinkat
> +286     common  fchmodat                        sys_fchmodat
> +287     common  faccessat                       sys_faccessat
> +288     common  unshare                         sys_unshare
> +289     common  set_robust_list                 sys_set_robust_list             compat_sys_set_robust_list
> +290     common  get_robust_list                 sys_get_robust_list             compat_sys_get_robust_list
> +291     common  splice                          sys_splice
> +292     32      sync_file_range                 parisc_sync_file_range
> +292     64      sync_file_range                 sys_sync_file_range
> +293     common  tee                             sys_tee
> +294     common  vmsplice                        sys_vmsplice                    compat_sys_vmsplice
> +295     common  move_pages                      sys_move_pages                  compat_sys_move_pages
> +296     common  getcpu                          sys_getcpu
> +297     common  epoll_pwait                     sys_epoll_pwait                 compat_sys_epoll_pwait
> +298     common  statfs64                        sys_statfs64                    compat_sys_statfs64
> +299     common  fstatfs64                       sys_fstatfs64                   compat_sys_fstatfs64
> +300     common  kexec_load                      sys_kexec_load                  compat_sys_kexec_load
> +301     common  utimensat                       sys_utimensat                   compat_sys_utimensat
> +302     common  signalfd                        sys_signalfd                    compat_sys_signalfd
> +# 303 was timerfd
> +304     common  eventfd                         sys_eventfd
> +305     32      fallocate                       parisc_fallocate
> +305     64      fallocate                       sys_fallocate
> +306     common  timerfd_create                  sys_timerfd_create
> +307     common  timerfd_settime                 sys_timerfd_settime             compat_sys_timerfd_settime
> +308     common  timerfd_gettime                 sys_timerfd_gettime             compat_sys_timerfd_gettime
> +309     common  signalfd4                       sys_signalfd4                   compat_sys_signalfd4
> +310     common  eventfd2                        sys_eventfd2
> +311     common  epoll_create1                   sys_epoll_create1
> +312     common  dup3                            sys_dup3
> +313     common  pipe2                           sys_pipe2
> +314     common  inotify_init1                   sys_inotify_init1
> +315     common  preadv                          sys_preadv                      compat_sys_preadv
> +316     common  pwritev                         sys_pwritev                     compat_sys_pwritev
> +317     common  rt_tgsigqueueinfo               sys_rt_tgsigqueueinfo           compat_sys_rt_tgsigqueueinfo
> +318     common  perf_event_open                 sys_perf_event_open
> +319     common  recvmmsg                        sys_recvmmsg                    compat_sys_recvmmsg
> +320     common  accept4                         sys_accept4
> +321     common  prlimit64                       sys_prlimit64
> +322     common  fanotify_init                   sys_fanotify_init
> +323     common  fanotify_mark                   sys_fanotify_mark               sys32_fanotify_mark
> +324     common  clock_adjtime                   sys_clock_adjtime               compat_sys_clock_adjtime
> +325     common  name_to_handle_at               sys_name_to_handle_at
> +326     common  open_by_handle_at               sys_open_by_handle_at           compat_sys_open_by_handle_at
> +327     common  syncfs                          sys_syncfs
> +328     common  setns                           sys_setns
> +329     common  sendmmsg                        sys_sendmmsg                    compat_sys_sendmmsg
> +330     common  process_vm_readv                sys_process_vm_readv            compat_sys_process_vm_readv
> +331     common  process_vm_writev               sys_process_vm_writev           compat_sys_process_vm_writev
> +332     common  kcmp                            sys_kcmp
> +333     common  finit_module                    sys_finit_module
> +334     common  sched_setattr                   sys_sched_setattr
> +335     common  sched_getattr                   sys_sched_getattr
> +336     common  utimes                          sys_utimes                      compat_sys_utimes
> +337     common  renameat2                       sys_renameat2
> +338     common  seccomp                         sys_seccomp
> +339     common  getrandom                       sys_getrandom
> +340     common  memfd_create                    sys_memfd_create
> +341     common  bpf                             sys_bpf
> +342     common  execveat                        sys_execveat                    compat_sys_execveat
> +343     common  membarrier                      sys_membarrier
> +344     common  userfaultfd                     sys_userfaultfd
> +345     common  mlock2                          sys_mlock2
> +346     common  copy_file_range                 sys_copy_file_range
> +347     common  preadv2                         sys_preadv2                     compat_sys_preadv2
> +348     common  pwritev2                        sys_pwritev2                    compat_sys_pwritev2
> +349     common  statx                           sys_statx
> +350    common  io_pgetevents                   sys_io_pgetevents               compat_sys_io_pgetevents
> \ No newline at end of file
> diff --git a/arch/parisc/kernel/syscalls/syscallhdr.sh b/arch/parisc/kernel/syscalls/syscallhdr.sh
> new file mode 100644
> index 0000000..607d4ca
> --- /dev/null
> +++ b/arch/parisc/kernel/syscalls/syscallhdr.sh
> @@ -0,0 +1,35 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL-2.0
> +
> +in="$1"
> +out="$2"
> +my_abis=`echo "($3)" | tr ',' '|'`
> +prefix="$4"
> +offset="$5"
> +
> +fileguard=_UAPI_ASM_PARISC_`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 compat ; 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 "#ifdef __KERNEL__"
> +    echo -e "#define __NR_syscalls\t$nxt"
> +    echo "#endif"
> +    echo ""
> +    echo "#endif /* ${fileguard} */"
> +) > "$out"
> diff --git a/arch/parisc/kernel/syscalls/syscalltbl.sh b/arch/parisc/kernel/syscalls/syscalltbl.sh
> new file mode 100644
> index 0000000..04abde7
> --- /dev/null
> +++ b/arch/parisc/kernel/syscalls/syscalltbl.sh
> @@ -0,0 +1,46 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL-2.0
> +
> +in="$1"
> +out="$2"
> +my_abis=`echo "($3)" | tr ',' '|'`
> +offset="$4"
> +
> +emit() {
> +    nxt="$1"
> +    if [ -z "$offset" ]; then
> +       nr="$2"
> +    else
> +       nr="$2"
> +       nr=$((nr+offset))
> +    fi
> +    entry="$3"
> +
> +    while [ $nxt -lt $nr ]; do
> +       echo "__SYSCALL($nxt, sys_ni_syscall, )"
> +        let nxt=nxt+1
> +    done
> +    echo "__SYSCALL($nxt, $entry, )"
> +}
> +
> +grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
> +    if [ -z "$offset" ]; then
> +       nxt=0
> +    else
> +       nxt=$offset
> +    fi
> +
> +    my_abi="$(cut -d'|' -f2 <<< $my_abis)"
> +    while read nr abi name entry compat ; do
> +       if [ $my_abi = "compat" ]; then
> +           if [ -z "$compat" ]; then
> +               emit $nxt $nr $entry
> +           else
> +               emit $nxt $nr $compat
> +           fi
> +       else
> +           emit $nxt $nr $entry
> +       fi
> +        let nxt=nxt+1
> +    done
> +) > "$out"

Appreciate if someone can review this script!

Firoz

> --
> 1.9.1
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ