]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
csky: convert to generic syscall table
authorArnd Bergmann <arnd@arndb.de>
Wed, 3 Jul 2024 15:09:22 +0000 (17:09 +0200)
committerArnd Bergmann <arnd@arndb.de>
Wed, 10 Jul 2024 12:23:38 +0000 (14:23 +0200)
The uapi/asm/unistd_32.h and asm/syscall_table_32.h headers can now be
generated from scripts/syscall.tbl, which makes this consistent with
the other architectures that have their own syscall.tbl.

csky has two architecture specific system calls, which I add to
the generic table.  The time32, stat64 and rlimit entries in the
syscall_abis_32 line are for system calls that were part of the generic
ABI when arch/csky got added but are no longer enabled by default for
new architectures.

Both the user visible side of asm/unistd.h and the internal syscall
table in the kernel should have the same effective contents after this.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/csky/include/asm/Kbuild
arch/csky/include/asm/unistd.h
arch/csky/include/uapi/asm/Kbuild
arch/csky/include/uapi/asm/unistd.h
arch/csky/kernel/Makefile.syscalls [new file with mode: 0644]
arch/csky/kernel/syscall_table.c
scripts/syscall.tbl

index 13ebc5e343601f7362cd12c545b7b12e8cd4b75f..9a9bc65b57a9d73dadc9d597700d7229f8554ddf 100644 (file)
@@ -1,4 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
+syscall-y := syscall_table_32.h
+
 generic-y += asm-offsets.h
 generic-y += extable.h
 generic-y += kvm_para.h
index 9cf97de9a26df0acad24137cdc3f531a81efeb07..2c2c24de95d89c3ecd8cdb4ae5b9caeea1de4fba 100644 (file)
@@ -2,4 +2,7 @@
 
 #include <uapi/asm/unistd.h>
 
+#define __ARCH_WANT_STAT64
+#define __ARCH_WANT_SYS_CLONE
+
 #define NR_syscalls (__NR_syscalls)
index e784701419321708ae16255f963b5afdcfbcc3f7..2501e82a1a0a9432e0e7c7a7cfdb29cb91d76303 100644 (file)
@@ -1,2 +1,4 @@
 # SPDX-License-Identifier: GPL-2.0
+syscall-y += unistd_32.h
+
 generic-y += ucontext.h
index d529d04328765cf750b65371b748f3accca93b61..44882179a6e164c01e86aca29a1f2985acff11db 100644 (file)
@@ -1,14 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 
-#define __ARCH_WANT_STAT64
-#define __ARCH_WANT_NEW_STAT
-#define __ARCH_WANT_SYS_CLONE
-#define __ARCH_WANT_SET_GET_RLIMIT
-#define __ARCH_WANT_TIME32_SYSCALLS
-#define __ARCH_WANT_SYNC_FILE_RANGE2
-#include <asm-generic/unistd.h>
+#include <asm/unistd_32.h>
 
-#define __NR_set_thread_area   (__NR_arch_specific_syscall + 0)
-__SYSCALL(__NR_set_thread_area, sys_set_thread_area)
-#define __NR_cacheflush                (__NR_arch_specific_syscall + 1)
-__SYSCALL(__NR_cacheflush, sys_cacheflush)
+#define __NR_sync_file_range2 84
+#undef __NR_sync_file_range
diff --git a/arch/csky/kernel/Makefile.syscalls b/arch/csky/kernel/Makefile.syscalls
new file mode 100644 (file)
index 0000000..3df3b58
--- /dev/null
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0
+
+syscall_abis_32 += csky time32 stat64 rlimit
+
index a0c238c5377a6f0373a1c738adaddb4eb195db80..a6eb91a0e2f68ab5257bb6d99fe6ff67da0bcf0c 100644 (file)
@@ -6,9 +6,11 @@
 
 #undef __SYSCALL
 #define __SYSCALL(nr, call)[nr] = (call),
+#define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, native)
 
 #define sys_fadvise64_64 sys_csky_fadvise64_64
+#define sys_sync_file_range sys_sync_file_range2
 void * const sys_call_table[__NR_syscalls] __page_aligned_data = {
        [0 ... __NR_syscalls - 1] = sys_ni_syscall,
-#include <asm/unistd.h>
+#include <asm/syscall_table_32.h>
 };
index 13f4c79ba5c2b1bda155d27cd4ec0f575fdd18e2..ed0ecba8fea475a596e27ac36062ae9bc47a76aa 100644 (file)
 246    arc     arc_gettls                      sys_arc_gettls
 247    arc     sysfs                           sys_sysfs
 248    arc     arc_usr_cmpxchg                 sys_arc_usr_cmpxchg
+
+244    csky    set_thread_area                 sys_set_thread_area
+245    csky    cacheflush                      sys_cacheflush
+
 260    time32  wait4                           sys_wait4                       compat_sys_wait4
 260    64      wait4                           sys_wait4
 261    common  prlimit64                       sys_prlimit64