1 | // SPDX-License-Identifier: GPL-2.0 |
2 | /* |
3 | * System call table for UML/x86-64, copied from arch/x86/kernel/syscall_*.c |
4 | * with some changes for UML. |
5 | */ |
6 | |
7 | #include <linux/linkage.h> |
8 | #include <linux/sys.h> |
9 | #include <linux/cache.h> |
10 | #include <asm/syscall.h> |
11 | |
12 | /* |
13 | * Below you can see, in terms of #define's, the differences between the x86-64 |
14 | * and the UML syscall table. |
15 | */ |
16 | |
17 | /* Not going to be implemented by UML, since we have no hardware. */ |
18 | #define sys_iopl sys_ni_syscall |
19 | #define sys_ioperm sys_ni_syscall |
20 | |
21 | #define __SYSCALL(nr, sym) extern asmlinkage long sym(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long); |
22 | #include <asm/syscalls_64.h> |
23 | |
24 | #undef __SYSCALL |
25 | #define __SYSCALL(nr, sym) sym, |
26 | |
27 | extern asmlinkage long sys_ni_syscall(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long); |
28 | |
29 | const sys_call_ptr_t sys_call_table[] ____cacheline_aligned = { |
30 | #include <asm/syscalls_64.h> |
31 | }; |
32 | |
33 | int syscall_table_size = sizeof(sys_call_table); |
34 | |