vdso.h 961 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 *)(VDSO32_##name - VDSO32_PRELINK + (unsigned long)(base)); \
  13. })
  14. #endif
  15. /*
  16. * These symbols are defined with the addresses in the vsyscall page.
  17. * See vsyscall-sigreturn.S.
  18. */
  19. extern void __user __kernel_sigreturn;
  20. extern void __user __kernel_rt_sigreturn;
  21. /*
  22. * These symbols are defined by vdso32.S to mark the bounds
  23. * of the ELF DSO images included therein.
  24. */
  25. extern const char vdso32_int80_start, vdso32_int80_end;
  26. extern const char vdso32_syscall_start, vdso32_syscall_end;
  27. extern const char vdso32_sysenter_start, vdso32_sysenter_end;
  28. #endif /* _ASM_X86_VDSO_H */