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