Re: [PATCH v3 3/6] parisc: add system call table generation support

From: Eugene Syromiatnikov
Date: Mon Oct 08 2018 - 09:02:33 EST


> On Mon, 8 Oct 2018 at 10:47, Firoz Khan <firoz.khan@xxxxxxxxxx> wrote:
> > diff --git a/arch/parisc/kernel/syscalls/syscall.tbl b/arch/parisc/kernel/syscalls/syscall.tbl
> > new file mode 100644
> > index 0000000..4e85293
> > --- /dev/null
> > +++ b/arch/parisc/kernel/syscalls/syscall.tbl
> > @@ -0,0 +1,352 @@
> > +# 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

Why uselib is declared, contrary to all the skipped syscalls below,
that were sys_ni_syscall previously? Only __NR_socketcall was explicitly
undefined in arch/parisc/include/uapi/asm/unistd.h.

> > +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

It is probably worth adding a comment here that syscall 102 was
socketcall, in order to make reason for this jump in syscall numeration
self-evident.

> > +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 parisc_pread64

It would be probably nice to have some syntax that would allow avoid
this duplication (as compat handler on 64 bit and native on 32 bit are
the same).

> > +109 32 pwrite64 parisc_pwrite64
> > +109 64 pwrite64 sys_pwrite64 parisc_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 - create_module

> > +128 common init_module sys_init_module
> > +129 common delete_module sys_delete_module

130 - 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 parisc_personality

136 - 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 - query_module

> > +168 common poll sys_poll

169 - nfsservctl

> > +170 common setresgid sys_setresgid
> > +171 common getresgid sys_getresgid
> > +172 common prctl sys_prctl
> > +173 common rt_sigreturn sys_rt_sigreturn
> > +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 - getpmsg
187 - putpmsg

> > +198 common lstat64 sys_lstat64
> > +199 32 truncate64 parisc_truncate64
> > +199 64 truncate64 sys_truncate64 parisc_truncate64
> > +200 32 ftruncate64 parisc_ftruncate64
> > +200 64 ftruncate64 sys_ftruncate64 parisc_ftruncate64
> > +201 common getdents64 sys_getdents64
> > +202 common fcntl64 sys_fcntl64 compat_sys_fcntl64

203 - attrctl
204 - acl_get
205 - acl_set

> > +206 common gettid sys_gettid
> > +207 32 readahead parisc_readahead
> > +207 64 readahead sys_readahead parisc_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 - set_thread_area
214 - 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 - alloc_hugepages
221 - 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 parisc_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 - 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 parisc_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 - timerfd

> > +304 common eventfd sys_eventfd
> > +305 32 fallocate parisc_fallocate
> > +305 64 fallocate sys_fallocate parisc_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