vdso.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. /* text_mapping.pages is big enough for data/size page pointers */
  12. struct vm_special_mapping text_mapping;
  13. unsigned long alt, alt_len;
  14. long sym_vvar_start; /* Negative offset to the vvar area */
  15. long sym_vvar_page;
  16. long sym_hpet_page;
  17. long sym_VDSO32_NOTE_MASK;
  18. long sym___kernel_sigreturn;
  19. long sym___kernel_rt_sigreturn;
  20. long sym___kernel_vsyscall;
  21. long sym_VDSO32_SYSENTER_RETURN;
  22. };
  23. #ifdef CONFIG_X86_64
  24. extern const struct vdso_image vdso_image_64;
  25. #endif
  26. #ifdef CONFIG_X86_X32
  27. extern const struct vdso_image vdso_image_x32;
  28. #endif
  29. #if defined CONFIG_X86_32 || defined CONFIG_COMPAT
  30. extern const struct vdso_image vdso_image_32_int80;
  31. #ifdef CONFIG_COMPAT
  32. extern const struct vdso_image vdso_image_32_syscall;
  33. #endif
  34. extern const struct vdso_image vdso_image_32_sysenter;
  35. extern const struct vdso_image *selected_vdso32;
  36. #endif
  37. extern void __init init_vdso_image(const struct vdso_image *image);
  38. #endif /* __ASSEMBLER__ */
  39. #endif /* _ASM_X86_VDSO_H */