2008-01-30 15:30:41 +03:00
# ifndef _ASM_X86_VDSO_H
# define _ASM_X86_VDSO_H 1
2008-01-30 15:30:42 +03:00
# ifdef CONFIG_X86_64
2008-01-30 15:30:41 +03:00
extern const char VDSO64_PRELINK [ ] ;
/*
* Given a pointer to the vDSO image , find the pointer to VDSO64_name
* as that symbol is defined in the vDSO sources or linker script .
*/
2008-03-23 11:03:56 +03:00
# define VDSO64_SYMBOL(base, name) \
( { \
extern const char VDSO64_ # # name [ ] ; \
( void * ) ( VDSO64_ # # name - VDSO64_PRELINK + ( unsigned long ) ( base ) ) ; \
} )
2008-01-30 15:30:42 +03:00
# endif
# if defined CONFIG_X86_32 || defined CONFIG_COMPAT
extern const char VDSO32_PRELINK [ ] ;
/*
* Given a pointer to the vDSO image , find the pointer to VDSO32_name
* as that symbol is defined in the vDSO sources or linker script .
*/
2008-03-23 11:03:56 +03:00
# define VDSO32_SYMBOL(base, name) \
( { \
extern const char VDSO32_ # # name [ ] ; \
( void * ) ( VDSO32_ # # name - VDSO32_PRELINK + ( unsigned long ) ( base ) ) ; \
} )
2008-01-30 15:30:42 +03:00
# endif
2008-01-30 15:30:41 +03:00
2008-03-06 12:39:07 +03:00
/*
* These symbols are defined with the addresses in the vsyscall page .
* See vsyscall - sigreturn . S .
*/
extern void __user __kernel_sigreturn ;
extern void __user __kernel_rt_sigreturn ;
2008-07-12 13:22:00 +04:00
/*
* These symbols are defined by vdso32 . S to mark the bounds
* of the ELF DSO images included therein .
*/
extern const char vdso32_int80_start , vdso32_int80_end ;
extern const char vdso32_syscall_start , vdso32_syscall_end ;
extern const char vdso32_sysenter_start , vdso32_sysenter_end ;
2008-01-30 15:30:41 +03:00
# endif /* asm-x86/vdso.h */