xref: /linux/arch/x86/include/asm/vdso.h (revision 2eefd8789698e89c4a5d610921dc3c1b66e3bd0d)
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>
66f121e54SAndy Lutomirski #include <linux/init.h>
79e6f450fSAndy Lutomirski 
86f121e54SAndy Lutomirski #ifndef __ASSEMBLER__
99e6f450fSAndy Lutomirski 
10a62c34bdSAndy Lutomirski #include <linux/mm_types.h>
11a62c34bdSAndy Lutomirski 
126f121e54SAndy Lutomirski struct vdso_image {
136f121e54SAndy Lutomirski 	void *data;
146f121e54SAndy Lutomirski 	unsigned long size;   /* Always a multiple of PAGE_SIZE */
15a62c34bdSAndy Lutomirski 
166f121e54SAndy Lutomirski 	unsigned long alt, alt_len;
179e6f450fSAndy Lutomirski 
18e6577a7cSAndy Lutomirski 	long sym_vvar_start;  /* Negative offset to the vvar area */
1918d0a6fdSAndy Lutomirski 
20e6577a7cSAndy Lutomirski 	long sym_vvar_page;
21e6577a7cSAndy Lutomirski 	long sym_hpet_page;
22dac16fbaSAndy Lutomirski 	long sym_pvclock_page;
23e6577a7cSAndy Lutomirski 	long sym_VDSO32_NOTE_MASK;
24e6577a7cSAndy Lutomirski 	long sym___kernel_sigreturn;
25e6577a7cSAndy Lutomirski 	long sym___kernel_rt_sigreturn;
26e6577a7cSAndy Lutomirski 	long sym___kernel_vsyscall;
278242c6c8SAndy Lutomirski 	long sym_int80_landing_pad;
286f121e54SAndy Lutomirski };
296f121e54SAndy Lutomirski 
306f121e54SAndy Lutomirski #ifdef CONFIG_X86_64
316f121e54SAndy Lutomirski extern const struct vdso_image vdso_image_64;
326f121e54SAndy Lutomirski #endif
336f121e54SAndy Lutomirski 
346f121e54SAndy Lutomirski #ifdef CONFIG_X86_X32
356f121e54SAndy Lutomirski extern const struct vdso_image vdso_image_x32;
366f121e54SAndy Lutomirski #endif
379e6f450fSAndy Lutomirski 
38bb898558SAl Viro #if defined CONFIG_X86_32 || defined CONFIG_COMPAT
390a6d1fa0SAndy Lutomirski extern const struct vdso_image vdso_image_32;
40bb898558SAl Viro #endif
41bb898558SAl Viro 
426f121e54SAndy Lutomirski extern void __init init_vdso_image(const struct vdso_image *image);
43b4b541a6SAndy Lutomirski 
44*2eefd878SDmitry Safonov extern int map_vdso_once(const struct vdso_image *image, unsigned long addr);
45*2eefd878SDmitry Safonov 
469e6f450fSAndy Lutomirski #endif /* __ASSEMBLER__ */
479e6f450fSAndy Lutomirski 
481965aae3SH. Peter Anvin #endif /* _ASM_X86_VDSO_H */
49