xref: /linux/arch/x86/include/asm/vdso.h (revision 6f121e548f83674ab4920a4e60afb58d4f61b829)
11965aae3SH. Peter Anvin #ifndef _ASM_X86_VDSO_H
21965aae3SH. Peter Anvin #define _ASM_X86_VDSO_H
3bb898558SAl Viro 
49e6f450fSAndy Lutomirski #include <asm/page_types.h>
59e6f450fSAndy Lutomirski #include <linux/linkage.h>
6*6f121e54SAndy Lutomirski #include <linux/init.h>
79e6f450fSAndy Lutomirski 
8*6f121e54SAndy Lutomirski #ifndef __ASSEMBLER__
99e6f450fSAndy Lutomirski 
10*6f121e54SAndy Lutomirski struct vdso_image {
11*6f121e54SAndy Lutomirski 	void *data;
12*6f121e54SAndy Lutomirski 	unsigned long size;   /* Always a multiple of PAGE_SIZE */
13*6f121e54SAndy Lutomirski 	struct page **pages;  /* Big enough for data/size page pointers */
149e6f450fSAndy Lutomirski 
15*6f121e54SAndy Lutomirski 	unsigned long alt, alt_len;
169e6f450fSAndy Lutomirski 
17*6f121e54SAndy Lutomirski 	unsigned long sym_VDSO32_NOTE_MASK;
18*6f121e54SAndy Lutomirski 	unsigned long sym___kernel_sigreturn;
19*6f121e54SAndy Lutomirski 	unsigned long sym___kernel_rt_sigreturn;
20*6f121e54SAndy Lutomirski 	unsigned long sym___kernel_vsyscall;
21*6f121e54SAndy Lutomirski 	unsigned long sym_VDSO32_SYSENTER_RETURN;
22*6f121e54SAndy Lutomirski };
23*6f121e54SAndy Lutomirski 
24*6f121e54SAndy Lutomirski #ifdef CONFIG_X86_64
25*6f121e54SAndy Lutomirski extern const struct vdso_image vdso_image_64;
26*6f121e54SAndy Lutomirski #endif
27*6f121e54SAndy Lutomirski 
28*6f121e54SAndy Lutomirski #ifdef CONFIG_X86_X32
29*6f121e54SAndy Lutomirski extern const struct vdso_image vdso_image_x32;
30*6f121e54SAndy Lutomirski #endif
319e6f450fSAndy Lutomirski 
32bb898558SAl Viro #if defined CONFIG_X86_32 || defined CONFIG_COMPAT
33*6f121e54SAndy Lutomirski extern const struct vdso_image vdso_image_32_int80;
349e6f450fSAndy Lutomirski #ifdef CONFIG_COMPAT
35*6f121e54SAndy Lutomirski extern const struct vdso_image vdso_image_32_syscall;
369e6f450fSAndy Lutomirski #endif
37*6f121e54SAndy Lutomirski extern const struct vdso_image vdso_image_32_sysenter;
389e6f450fSAndy Lutomirski 
39*6f121e54SAndy Lutomirski extern const struct vdso_image *selected_vdso32;
40bb898558SAl Viro #endif
41bb898558SAl Viro 
42*6f121e54SAndy Lutomirski extern void __init init_vdso_image(const struct vdso_image *image);
43b4b541a6SAndy Lutomirski 
449e6f450fSAndy Lutomirski #endif /* __ASSEMBLER__ */
459e6f450fSAndy Lutomirski 
461965aae3SH. Peter Anvin #endif /* _ASM_X86_VDSO_H */
47