vdso.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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 */
  8. #define VDSO32_MBASE VDSO32_LBASE
  9. #define VDSO64_MBASE VDSO64_LBASE
  10. #define VDSO_VERSION_STRING LINUX_2.6.15
  11. /* Define if 64 bits VDSO has procedure descriptors */
  12. #undef VDS64_HAS_DESCRIPTORS
  13. #ifndef __ASSEMBLY__
  14. extern unsigned int vdso64_pages;
  15. extern unsigned int vdso32_pages;
  16. /* Offsets relative to thread->vdso_base */
  17. extern unsigned long vdso64_rt_sigtramp;
  18. extern unsigned long vdso32_sigtramp;
  19. extern unsigned long vdso32_rt_sigtramp;
  20. extern void vdso_init(void);
  21. #else /* __ASSEMBLY__ */
  22. #ifdef __VDSO64__
  23. #ifdef VDS64_HAS_DESCRIPTORS
  24. #define V_FUNCTION_BEGIN(name) \
  25. .globl name; \
  26. .section ".opd","a"; \
  27. .align 3; \
  28. name: \
  29. .quad .name,.TOC.@tocbase,0; \
  30. .previous; \
  31. .globl .name; \
  32. .type .name,@function; \
  33. .name: \
  34. #define V_FUNCTION_END(name) \
  35. .size .name,.-.name;
  36. #define V_LOCAL_FUNC(name) (.name)
  37. #else /* VDS64_HAS_DESCRIPTORS */
  38. #define V_FUNCTION_BEGIN(name) \
  39. .globl name; \
  40. name: \
  41. #define V_FUNCTION_END(name) \
  42. .size name,.-name;
  43. #define V_LOCAL_FUNC(name) (name)
  44. #endif /* VDS64_HAS_DESCRIPTORS */
  45. #endif /* __VDSO64__ */
  46. #ifdef __VDSO32__
  47. #define V_FUNCTION_BEGIN(name) \
  48. .globl name; \
  49. .type name,@function; \
  50. name: \
  51. #define V_FUNCTION_END(name) \
  52. .size name,.-name;
  53. #define V_LOCAL_FUNC(name) (name)
  54. #endif /* __VDSO32__ */
  55. #endif /* __ASSEMBLY__ */
  56. #endif /* __KERNEL__ */
  57. #endif /* __PPC64_VDSO_H__ */