Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp578029imm; Fri, 12 Oct 2018 03:19:01 -0700 (PDT) X-Google-Smtp-Source: ACcGV62/LrkI6XfjIIxPjyMjT9vAGo7VkCUknPoxk786attJE2CVF91WCMxY/vgb/2mrjmkmdPWb X-Received: by 2002:a63:1342:: with SMTP id 2-v6mr4923569pgt.19.1539339541352; Fri, 12 Oct 2018 03:19:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539339541; cv=none; d=google.com; s=arc-20160816; b=CAoQ6GPhsjuC+2vDqVyT9dLXtxZc7F0HdJvUAON8l8dwBDDrXhgP5YGUjbJU9OxsH3 vqg5JZk6WOKHNYiGRUHMvXBKNruRWgMaUtQplH37YYOYYokdDUtLl28qDBuVW9TUvdgm atBwCJdsW0jKMGnSc6YvFvM0odfkCMUR4SgbWfuQntXfnougofea+QRzNWX7tEohR9sO R9sqBeJPBlJk4DqCch+yPmXQSuPaQkYRHPN4THiBEfj3t2qE3m6FbfrMqj8OTzYX9SK+ xK80eJafWQNBMiX/kQ1HAt94Ryb3xn703zP+c7XcN2QoMEik+lgsb5a6CA/slH3669Za XFmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=uenBfcaqhK1Yu5V1+3pkPbgMHuLcFUsVO+/w9CoJm+c=; b=zjmOmce6aq/jE+3fyAXitzW4ycNVZu3DpCqiMY2ykIft64UwVz+SqbkLcWO5dAEASU 7rlKdnw0fb6igP32kAyjld8XDQ1HVcQH7sEOQDmUNX/zfC9r4j8JyGHE9RK7JpXjxmP/ JQRnv7vkwIAjoUhgYlsHrbV7syWUQF4FimEXVpv137ZIwdUTwQxW6i7n4ufOjhQEQB4v 9CWtCFKLIz+H+PKS399wY23YYx+OyLd0vLtLWy6FYjJzUtGevzvBrc85r5JILzRGAWMe B2GDFO1bGHOI5AVnK7Vcya5vDZjTSdwkSRd2glO4PXUFGuv3nfKTGvIgE+WjweoXdeZ2 p+Yg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=hAQYkG7q; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x128-v6si875761pgb.129.2018.10.12.03.18.46; Fri, 12 Oct 2018 03:19:01 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=hAQYkG7q; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728423AbeJLRt7 (ORCPT + 99 others); Fri, 12 Oct 2018 13:49:59 -0400 Received: from mail-yw1-f67.google.com ([209.85.161.67]:34271 "EHLO mail-yw1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728284AbeJLRt6 (ORCPT ); Fri, 12 Oct 2018 13:49:58 -0400 Received: by mail-yw1-f67.google.com with SMTP id m129-v6so4764283ywc.1 for ; Fri, 12 Oct 2018 03:18:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=uenBfcaqhK1Yu5V1+3pkPbgMHuLcFUsVO+/w9CoJm+c=; b=hAQYkG7qMSkfnvKGU2NKgeZVPiCs9K9XDv5pO1AaR+ZbND/2WyxYoPFvQCu6TQ9Xp+ BDNA2+TqAE7bv0LLaCNqhjx+9GmRe1RdH1x4dB6OwLuGZz6WcCbv+qRH3OklKd6138+B c7YTKo8nTu8EzIVYzyLVqiFLyqXsS2l7h5bsU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=uenBfcaqhK1Yu5V1+3pkPbgMHuLcFUsVO+/w9CoJm+c=; b=o4Yw3ySp/znblUawB/1AIUNb4IMzHuuqTKkB6FRlInTFDgAUX/os+5e9lJ1DBB1fIA dByHrZP4e0LwUO6sjS8LZbIKsZ5LYPrA1t877+WaQI7MwzuVXaCNfmslV6TBNhm0/hNc z1VdmltHyTp0+DLZv4MuqR5JLNrSIjKz9ADIWhPaE+Klh5SHnECyopGwVYqJGX8GTsBH xuza9zzpyecB73NGxhBKSNqpzJFoBJgxb0hxracvO4jdzeo8u4pDq3vx0S9bjJ+BvQdd OxwQtR2m2rvyFMgGB5Xc7fPZ797/hPCELsrDL07TVLTNAlG60CRvxXvdCc/9obnOIYgg ozqg== X-Gm-Message-State: ABuFfoiX+lhTD78CoAaeMmJC02Ubut0SlkghM3YzgnvyXzBq0oUKeQo2 wrIBF9MfknCtTZnUkKpoNIajp5AfhX7sThUemLTqng== X-Received: by 2002:a81:3bc4:: with SMTP id i187-v6mr2764861ywa.82.1539339495812; Fri, 12 Oct 2018 03:18:15 -0700 (PDT) MIME-Version: 1.0 References: <1539337442-3676-1-git-send-email-firoz.khan@linaro.org> <1539337442-3676-4-git-send-email-firoz.khan@linaro.org> In-Reply-To: <1539337442-3676-4-git-send-email-firoz.khan@linaro.org> From: Firoz Khan Date: Fri, 12 Oct 2018 15:48:04 +0530 Message-ID: Subject: Re: [PATCH v4 3/6] parisc: add system call table generation support To: linux-parisc@vger.kernel.org, "James E . J . Bottomley" , Helge Deller , Thomas Gleixner , Greg Kroah-Hartman , Philippe Ombredanne , Kate Stewart Cc: y2038 Mailman List , Linux Kernel Mailing List , Linux-Arch , Arnd Bergmann , Deepa Dinamani , Marcin Juszkiewicz Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Arnd, Helge, everyone, On Fri, 12 Oct 2018 at 15:14, Firoz Khan wrote: > > The system call tables are in different format in all > architecture and it will be difficult to manually add or > modify the system calls in the respective files. To make > it easy by keeping a script and which'll generate the > header file and syscall table file so this change will > unify them across all architectures. > > The system call table generation script is added in > syscalls directory which contain the script to generate > both uapi header file system call table generation file > and syscall.tbl file which'll be the input for the > scripts. > > syscall.tbl contains the list of available system calls > along with system call number and corresponding entry point. > Add a new system call in this architecture will be possible > by adding new entry in the syscall.tbl file. > > Adding a new table entry consisting of: > - System call number. > - ABI. > - System call name. > - Entry point name. > - 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 > --- > 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: > +# > +# > +# The 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 >