diff options
Diffstat (limited to 'arch/x86/include/asm/vdso.h')
-rw-r--r-- | arch/x86/include/asm/vdso.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/arch/x86/include/asm/vdso.h b/arch/x86/include/asm/vdso.h new file mode 100644 index 000000000000..4ab320913ea3 --- /dev/null +++ b/arch/x86/include/asm/vdso.h | |||
@@ -0,0 +1,47 @@ | |||
1 | #ifndef ASM_X86__VDSO_H | ||
2 | #define ASM_X86__VDSO_H | ||
3 | |||
4 | #ifdef CONFIG_X86_64 | ||
5 | extern const char VDSO64_PRELINK[]; | ||
6 | |||
7 | /* | ||
8 | * Given a pointer to the vDSO image, find the pointer to VDSO64_name | ||
9 | * as that symbol is defined in the vDSO sources or linker script. | ||
10 | */ | ||
11 | #define VDSO64_SYMBOL(base, name) \ | ||
12 | ({ \ | ||
13 | extern const char VDSO64_##name[]; \ | ||
14 | (void *)(VDSO64_##name - VDSO64_PRELINK + (unsigned long)(base)); \ | ||
15 | }) | ||
16 | #endif | ||
17 | |||
18 | #if defined CONFIG_X86_32 || defined CONFIG_COMPAT | ||
19 | extern const char VDSO32_PRELINK[]; | ||
20 | |||
21 | /* | ||
22 | * Given a pointer to the vDSO image, find the pointer to VDSO32_name | ||
23 | * as that symbol is defined in the vDSO sources or linker script. | ||
24 | */ | ||
25 | #define VDSO32_SYMBOL(base, name) \ | ||
26 | ({ \ | ||
27 | extern const char VDSO32_##name[]; \ | ||
28 | (void *)(VDSO32_##name - VDSO32_PRELINK + (unsigned long)(base)); \ | ||
29 | }) | ||
30 | #endif | ||
31 | |||
32 | /* | ||
33 | * These symbols are defined with the addresses in the vsyscall page. | ||
34 | * See vsyscall-sigreturn.S. | ||
35 | */ | ||
36 | extern void __user __kernel_sigreturn; | ||
37 | extern void __user __kernel_rt_sigreturn; | ||
38 | |||
39 | /* | ||
40 | * These symbols are defined by vdso32.S to mark the bounds | ||
41 | * of the ELF DSO images included therein. | ||
42 | */ | ||
43 | extern const char vdso32_int80_start, vdso32_int80_end; | ||
44 | extern const char vdso32_syscall_start, vdso32_syscall_end; | ||
45 | extern const char vdso32_sysenter_start, vdso32_sysenter_end; | ||
46 | |||
47 | #endif /* ASM_X86__VDSO_H */ | ||