vdso.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef _ASM_X86_VDSO_H
  2. #define _ASM_X86_VDSO_H
  3. #include <asm/page_types.h>
  4. #include <linux/linkage.h>
  5. #include <linux/init.h>
  6. #ifndef __ASSEMBLER__
  7. #include <linux/mm_types.h>
  8. struct vdso_image {
  9. void *data;
  10. unsigned long size; /* Always a multiple of PAGE_SIZE */
  11. unsigned long alt, alt_len;
  12. long sym_vvar_start; /* Negative offset to the vvar area */
  13. long sym_vvar_page;
  14. long sym_hpet_page;
  15. long sym_pvclock_page;
  16. long sym_VDSO32_NOTE_MASK;
  17. long sym___kernel_sigreturn;
  18. long sym___kernel_rt_sigreturn;
  19. long sym___kernel_vsyscall;
  20. long sym_int80_landing_pad;
  21. };
  22. #ifdef CONFIG_X86_64
  23. extern const struct vdso_image vdso_image_64;
  24. #endif
  25. #ifdef CONFIG_X86_X32
  26. extern const struct vdso_image vdso_image_x32;
  27. #endif
  28. #if defined CONFIG_X86_32 || defined CONFIG_COMPAT
  29. extern const struct vdso_image vdso_image_32;
  30. #endif
  31. extern void __init init_vdso_image(const struct vdso_image *image);
  32. extern int map_vdso_once(const struct vdso_image *image, unsigned long addr);
  33. #endif /* __ASSEMBLER__ */
  34. #endif /* _ASM_X86_VDSO_H */