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 | |
27 | long 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 |