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 */ 21extern unsigned long vdso64_rt_sigtramp; 22extern unsigned long vdso32_sigtramp; 23extern unsigned long vdso32_rt_sigtramp; 24 25int 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