diff options
author | H. Peter Anvin <hpa@zytor.com> | 2012-02-19 14:08:37 -0500 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2012-02-20 15:52:06 -0500 |
commit | a06c9bc0647f66df0534fb887ddf6cddd35f426c (patch) | |
tree | 331f629c2771c81cc280ae8b769f00bdc0fb77d0 | |
parent | d1a797f388d6d30fa502915d1b9937ed758b7137 (diff) |
x32: If configured, add x32 system calls to system call tables
If CONFIG_X86_X32_ABI is defined, add the x32 system calls to the
system call tables.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rw-r--r-- | arch/x86/kernel/asm-offsets_64.c | 6 | ||||
-rw-r--r-- | arch/x86/kernel/syscall_64.c | 7 |
2 files changed, 11 insertions, 2 deletions
diff --git a/arch/x86/kernel/asm-offsets_64.c b/arch/x86/kernel/asm-offsets_64.c index c3354f7b0a06..1b4754f82ba7 100644 --- a/arch/x86/kernel/asm-offsets_64.c +++ b/arch/x86/kernel/asm-offsets_64.c | |||
@@ -2,7 +2,11 @@ | |||
2 | 2 | ||
3 | #define __SYSCALL_64(nr, sym, compat) [nr] = 1, | 3 | #define __SYSCALL_64(nr, sym, compat) [nr] = 1, |
4 | #define __SYSCALL_COMMON(nr, sym, compat) [nr] = 1, | 4 | #define __SYSCALL_COMMON(nr, sym, compat) [nr] = 1, |
5 | #define __SYSCALL_X32(nr, sym, compat) /* Not yet */ | 5 | #ifdef CONFIG_X86_X32_ABI |
6 | # define __SYSCALL_X32(nr, sym, compat) [nr] = 1, | ||
7 | #else | ||
8 | # define __SYSCALL_X32(nr, sym, compat) /* nothing */ | ||
9 | #endif | ||
6 | static char syscalls_64[] = { | 10 | static char syscalls_64[] = { |
7 | #include <asm/syscalls_64.h> | 11 | #include <asm/syscalls_64.h> |
8 | }; | 12 | }; |
diff --git a/arch/x86/kernel/syscall_64.c b/arch/x86/kernel/syscall_64.c index 26c4ca1f20e8..5c7f8c20da74 100644 --- a/arch/x86/kernel/syscall_64.c +++ b/arch/x86/kernel/syscall_64.c | |||
@@ -6,7 +6,12 @@ | |||
6 | #include <asm/asm-offsets.h> | 6 | #include <asm/asm-offsets.h> |
7 | 7 | ||
8 | #define __SYSCALL_COMMON(nr, sym, compat) __SYSCALL_64(nr, sym, compat) | 8 | #define __SYSCALL_COMMON(nr, sym, compat) __SYSCALL_64(nr, sym, compat) |
9 | #define __SYSCALL_X32(nr, sym, compat) /* Not yet */ | 9 | |
10 | #ifdef CONFIG_X86_X32_ABI | ||
11 | # define __SYSCALL_X32(nr, sym, compat) __SYSCALL_64(nr, sym, compat) | ||
12 | #else | ||
13 | # define __SYSCALL_X32(nr, sym, compat) /* nothing */ | ||
14 | #endif | ||
10 | 15 | ||
11 | #define __SYSCALL_64(nr, sym, compat) extern asmlinkage void sym(void) ; | 16 | #define __SYSCALL_64(nr, sym, compat) extern asmlinkage void sym(void) ; |
12 | #include <asm/syscalls_64.h> | 17 | #include <asm/syscalls_64.h> |