1 // SPDX-License-Identifier: GPL-2.0 2 /* System call table for x86-64. */ 3 4 #include <linux/linkage.h> 5 #include <linux/sys.h> 6 #include <linux/cache.h> 7 #include <linux/syscalls.h> 8 #include <asm/syscall.h> 9 10 #define __SYSCALL(nr, sym) extern long __x64_##sym(const struct pt_regs *); 11 #include <asm/syscalls_64.h> 12 #undef __SYSCALL 13 14 /* 15 * The sys_call_table[] is no longer used for system calls, but 16 * kernel/trace/trace_syscalls.c still wants to know the system 17 * call address. 18 */ 19 #define __SYSCALL(nr, sym) __x64_##sym, 20 const sys_call_ptr_t sys_call_table[] = { 21 #include <asm/syscalls_64.h> 22 }; 23 #undef __SYSCALL 24 25 #define __SYSCALL(nr, sym) case nr: return __x64_##sym(regs); 26 x64_sys_call(const struct pt_regs * regs,unsigned int nr)27long x64_sys_call(const struct pt_regs *regs, unsigned int nr) 28 { 29 switch (nr) { 30 #include <asm/syscalls_64.h> 31 default: return __x64_sys_ni_syscall(regs); 32 } 33 }; 34