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