Commit | Line | Data |
---|---|---|
b2441318 | 1 | // SPDX-License-Identifier: GPL-2.0 |
303395ac PA |
2 | /* System call table for i386. */ |
3 | ||
4 | #include <linux/linkage.h> | |
5 | #include <linux/sys.h> | |
6 | #include <linux/cache.h> | |
25c619e5 | 7 | #include <linux/syscalls.h> |
034042cc | 8 | #include <asm/syscall.h> |
303395ac | 9 | |
6218d0f6 MY |
10 | #ifdef CONFIG_IA32_EMULATION |
11 | #define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, compat) | |
12 | #else | |
13 | #define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, native) | |
14 | #endif | |
15 | ||
16 | #define __SYSCALL(nr, sym) extern long __ia32_##sym(const struct pt_regs *); | |
ebeb8c82 | 17 | |
303395ac | 18 | #include <asm/syscalls_32.h> |
6218d0f6 | 19 | #undef __SYSCALL |
303395ac | 20 | |
1e3ad783 LT |
21 | /* |
22 | * The sys_call_table[] is no longer used for system calls, but | |
23 | * kernel/trace/trace_syscalls.c still wants to know the system | |
24 | * call address. | |
25 | */ | |
26 | #ifdef CONFIG_X86_32 | |
44fe4895 | 27 | #define __SYSCALL(nr, sym) __ia32_##sym, |
1e3ad783 | 28 | const sys_call_ptr_t sys_call_table[] = { |
303395ac PA |
29 | #include <asm/syscalls_32.h> |
30 | }; | |
1e3ad783 LT |
31 | #undef __SYSCALL |
32 | #endif | |
33 | ||
34 | #define __SYSCALL(nr, sym) case nr: return __ia32_##sym(regs); | |
35 | ||
36 | long ia32_sys_call(const struct pt_regs *regs, unsigned int nr) | |
37 | { | |
38 | switch (nr) { | |
39 | #include <asm/syscalls_32.h> | |
40 | default: return __ia32_sys_ni_syscall(regs); | |
41 | } | |
42 | }; |