vdso.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #ifndef __PPC64_VDSO_H__
  2. #define __PPC64_VDSO_H__
  3. #ifdef __KERNEL__
  4. /* Default link addresses for the vDSOs */
  5. #define VDSO32_LBASE 0x0
  6. #define VDSO64_LBASE 0x0
  7. /* Default map addresses for 32bit vDSO */
  8. #define VDSO32_MBASE 0x100000
  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. int vdso_getcpu_init(void);
  18. #else /* __ASSEMBLY__ */
  19. #ifdef __VDSO64__
  20. #ifdef VDS64_HAS_DESCRIPTORS
  21. #define V_FUNCTION_BEGIN(name) \
  22. .globl name; \
  23. .section ".opd","a"; \
  24. .align 3; \
  25. name: \
  26. .quad .name,.TOC.@tocbase,0; \
  27. .previous; \
  28. .globl .name; \
  29. .type .name,@function; \
  30. .name: \
  31. #define V_FUNCTION_END(name) \
  32. .size .name,.-.name;
  33. #define V_LOCAL_FUNC(name) (.name)
  34. #else /* VDS64_HAS_DESCRIPTORS */
  35. #define V_FUNCTION_BEGIN(name) \
  36. .globl name; \
  37. name: \
  38. #define V_FUNCTION_END(name) \
  39. .size name,.-name;
  40. #define V_LOCAL_FUNC(name) (name)
  41. #endif /* VDS64_HAS_DESCRIPTORS */
  42. #endif /* __VDSO64__ */
  43. #ifdef __VDSO32__
  44. #define V_FUNCTION_BEGIN(name) \
  45. .globl name; \
  46. .type name,@function; \
  47. name: \
  48. #define V_FUNCTION_END(name) \
  49. .size name,.-name;
  50. #define V_LOCAL_FUNC(name) (name)
  51. #endif /* __VDSO32__ */
  52. #endif /* __ASSEMBLY__ */
  53. #endif /* __KERNEL__ */
  54. #endif /* __PPC64_VDSO_H__ */