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 10*a62c34bdSAndy Lutomirski #include <linux/mm_types.h> 11*a62c34bdSAndy Lutomirski 126f121e54SAndy Lutomirski struct vdso_image { 136f121e54SAndy Lutomirski void *data; 146f121e54SAndy Lutomirski unsigned long size; /* Always a multiple of PAGE_SIZE */ 15*a62c34bdSAndy Lutomirski 16*a62c34bdSAndy Lutomirski /* text_mapping.pages is big enough for data/size page pointers */ 17*a62c34bdSAndy Lutomirski struct vm_special_mapping text_mapping; 189e6f450fSAndy Lutomirski 196f121e54SAndy Lutomirski unsigned long alt, alt_len; 209e6f450fSAndy Lutomirski 2118d0a6fdSAndy Lutomirski unsigned long sym_end_mapping; /* Total size of the mapping */ 2218d0a6fdSAndy Lutomirski 2318d0a6fdSAndy Lutomirski unsigned long sym_vvar_page; 2418d0a6fdSAndy Lutomirski unsigned long sym_hpet_page; 256f121e54SAndy Lutomirski unsigned long sym_VDSO32_NOTE_MASK; 266f121e54SAndy Lutomirski unsigned long sym___kernel_sigreturn; 276f121e54SAndy Lutomirski unsigned long sym___kernel_rt_sigreturn; 286f121e54SAndy Lutomirski unsigned long sym___kernel_vsyscall; 296f121e54SAndy Lutomirski unsigned long sym_VDSO32_SYSENTER_RETURN; 306f121e54SAndy Lutomirski }; 316f121e54SAndy Lutomirski 326f121e54SAndy Lutomirski #ifdef CONFIG_X86_64 336f121e54SAndy Lutomirski extern const struct vdso_image vdso_image_64; 346f121e54SAndy Lutomirski #endif 356f121e54SAndy Lutomirski 366f121e54SAndy Lutomirski #ifdef CONFIG_X86_X32 376f121e54SAndy Lutomirski extern const struct vdso_image vdso_image_x32; 386f121e54SAndy Lutomirski #endif 399e6f450fSAndy Lutomirski 40bb898558SAl Viro #if defined CONFIG_X86_32 || defined CONFIG_COMPAT 416f121e54SAndy Lutomirski extern const struct vdso_image vdso_image_32_int80; 429e6f450fSAndy Lutomirski #ifdef CONFIG_COMPAT 436f121e54SAndy Lutomirski extern const struct vdso_image vdso_image_32_syscall; 449e6f450fSAndy Lutomirski #endif 456f121e54SAndy Lutomirski extern const struct vdso_image vdso_image_32_sysenter; 469e6f450fSAndy Lutomirski 476f121e54SAndy Lutomirski extern const struct vdso_image *selected_vdso32; 48bb898558SAl Viro #endif 49bb898558SAl Viro 506f121e54SAndy Lutomirski extern void __init init_vdso_image(const struct vdso_image *image); 51b4b541a6SAndy Lutomirski 529e6f450fSAndy Lutomirski #endif /* __ASSEMBLER__ */ 539e6f450fSAndy Lutomirski 541965aae3SH. Peter Anvin #endif /* _ASM_X86_VDSO_H */ 55