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 for 32bit vDSO */ 11#define VDSO32_MBASE VDSO32_LBASE 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 25#else /* __ASSEMBLY__ */ 26 27#ifdef __VDSO64__ 28#ifdef VDS64_HAS_DESCRIPTORS 29#define V_FUNCTION_BEGIN(name) \ 30 .globl name; \ 31 .section ".opd","a"; \ 32 .align 3; \ 33 name: \ 34 .quad .name,.TOC.@tocbase,0; \ 35 .previous; \ 36 .globl .name; \ 37 .type .name,@function; \ 38 .name: \ 39 40#define V_FUNCTION_END(name) \ 41 .size .name,.-.name; 42 43#define V_LOCAL_FUNC(name) (.name) 44 45#else /* VDS64_HAS_DESCRIPTORS */ 46 47#define V_FUNCTION_BEGIN(name) \ 48 .globl name; \ 49 name: \ 50 51#define V_FUNCTION_END(name) \ 52 .size name,.-name; 53 54#define V_LOCAL_FUNC(name) (name) 55 56#endif /* VDS64_HAS_DESCRIPTORS */ 57#endif /* __VDSO64__ */ 58 59#ifdef __VDSO32__ 60 61#define V_FUNCTION_BEGIN(name) \ 62 .globl name; \ 63 .type name,@function; \ 64 name: \ 65 66#define V_FUNCTION_END(name) \ 67 .size name,.-name; 68 69#define V_LOCAL_FUNC(name) (name) 70 71#endif /* __VDSO32__ */ 72 73#endif /* __ASSEMBLY__ */ 74 75#endif /* __KERNEL__ */ 76 77#endif /* __PPC64_VDSO_H__ */ 78