vdso.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #ifndef __PPC64_VDSO_H__
  2. #define __PPC64_VDSO_H__
  3. #ifdef __KERNEL__
  4. /* Default link addresses for the vDSOs */
  5. #define VDSO32_LBASE 0x100000
  6. #define VDSO64_LBASE 0x100000
  7. /* Default map addresses for 32bit vDSO */
  8. #define VDSO32_MBASE VDSO32_LBASE
  9. #define VDSO_VERSION_STRING LINUX_2.6.15
  10. /* Define if 64 bits VDSO has procedure descriptors */
  11. #undef VDS64_HAS_DESCRIPTORS
  12. #ifndef __ASSEMBLY__
  13. /* Offsets relative to thread->vdso_base */
  14. extern unsigned long vdso64_rt_sigtramp;
  15. extern unsigned long vdso32_sigtramp;
  16. extern unsigned long vdso32_rt_sigtramp;
  17. #else /* __ASSEMBLY__ */
  18. #ifdef __VDSO64__
  19. #ifdef VDS64_HAS_DESCRIPTORS
  20. #define V_FUNCTION_BEGIN(name) \
  21. .globl name; \
  22. .section ".opd","a"; \
  23. .align 3; \
  24. name: \
  25. .quad .name,.TOC.@tocbase,0; \
  26. .previous; \
  27. .globl .name; \
  28. .type .name,@function; \
  29. .name: \
  30. #define V_FUNCTION_END(name) \
  31. .size .name,.-.name;
  32. #define V_LOCAL_FUNC(name) (.name)
  33. #else /* VDS64_HAS_DESCRIPTORS */
  34. #define V_FUNCTION_BEGIN(name) \
  35. .globl name; \
  36. name: \
  37. #define V_FUNCTION_END(name) \
  38. .size name,.-name;
  39. #define V_LOCAL_FUNC(name) (name)
  40. #endif /* VDS64_HAS_DESCRIPTORS */
  41. #endif /* __VDSO64__ */
  42. #ifdef __VDSO32__
  43. #define V_FUNCTION_BEGIN(name) \
  44. .globl name; \
  45. .type name,@function; \
  46. name: \
  47. #define V_FUNCTION_END(name) \
  48. .size name,.-name;
  49. #define V_LOCAL_FUNC(name) (name)
  50. #endif /* __VDSO32__ */
  51. #endif /* __ASSEMBLY__ */
  52. #endif /* __KERNEL__ */
  53. #endif /* __PPC64_VDSO_H__ */