vdso.h 977 B

12345678910111213141516171819202122232425262728293031323334
  1. #ifndef _ASM_X86_VDSO_H
  2. #define _ASM_X86_VDSO_H
  3. #if defined CONFIG_X86_32 || defined CONFIG_COMPAT
  4. extern const char VDSO32_PRELINK[];
  5. /*
  6. * Given a pointer to the vDSO image, find the pointer to VDSO32_name
  7. * as that symbol is defined in the vDSO sources or linker script.
  8. */
  9. #define VDSO32_SYMBOL(base, name) \
  10. ({ \
  11. extern const char VDSO32_##name[]; \
  12. (void __user *)(VDSO32_##name - VDSO32_PRELINK + \
  13. (unsigned long)(base)); \
  14. })
  15. #endif
  16. /*
  17. * These symbols are defined with the addresses in the vsyscall page.
  18. * See vsyscall-sigreturn.S.
  19. */
  20. extern void __user __kernel_sigreturn;
  21. extern void __user __kernel_rt_sigreturn;
  22. /*
  23. * These symbols are defined by vdso32.S to mark the bounds
  24. * of the ELF DSO images included therein.
  25. */
  26. extern const char vdso32_int80_start, vdso32_int80_end;
  27. extern const char vdso32_syscall_start, vdso32_syscall_end;
  28. extern const char vdso32_sysenter_start, vdso32_sysenter_end;
  29. #endif /* _ASM_X86_VDSO_H */