1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * This file contains the table of syscall-handling functions.
4  *    Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
5  *
6  * Largely rewritten by Cort Dougan (cort@cs.nmt.edu)
7  * and Paul Mackerras.
8  *
9  * Adapted for iSeries by Mike Corrigan (mikejc@us.ibm.com)
10  * PPC64 updates by Dave Engebretsen (engebret@us.ibm.com)
11  */
12 
13 #include <linux/syscalls.h>
14 #include <linux/compat.h>
15 #include <asm/unistd.h>
16 #include <asm/syscalls.h>
17 
18 #undef __SYSCALL_WITH_COMPAT
19 #define __SYSCALL_WITH_COMPAT(nr, entry, compat) __SYSCALL(nr, entry)
20 
21 #undef __SYSCALL
22 #ifdef CONFIG_ARCH_HAS_SYSCALL_WRAPPER
23 #define __SYSCALL(nr, entry) [nr] = entry,
24 #else
25 /*
26  * Coerce syscall handlers with arbitrary parameters to common type
27  * requires cast to void* to avoid -Wcast-function-type.
28  */
29 #define __SYSCALL(nr, entry) [nr] = (void *) entry,
30 #endif
31 
32 const syscall_fn sys_call_table[] = {
33 #ifdef CONFIG_PPC64
34 #include <asm/syscall_table_64.h>
35 #else
36 #include <asm/syscall_table_32.h>
37 #endif
38 };
39 
40 #ifdef CONFIG_COMPAT
41 #undef __SYSCALL_WITH_COMPAT
42 #define __SYSCALL_WITH_COMPAT(nr, native, compat)	__SYSCALL(nr, compat)
43 const syscall_fn compat_sys_call_table[] = {
44 #include <asm/syscall_table_32.h>
45 };
46 #endif /* CONFIG_COMPAT */
47