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