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