at v2.6.18-rc2 83 lines 1.6 kB view raw
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 21extern unsigned int vdso64_pages; 22extern unsigned int vdso32_pages; 23 24/* Offsets relative to thread->vdso_base */ 25extern unsigned long vdso64_rt_sigtramp; 26extern unsigned long vdso32_sigtramp; 27extern unsigned long vdso32_rt_sigtramp; 28 29extern void vdso_init(void); 30 31#else /* __ASSEMBLY__ */ 32 33#ifdef __VDSO64__ 34#ifdef VDS64_HAS_DESCRIPTORS 35#define V_FUNCTION_BEGIN(name) \ 36 .globl name; \ 37 .section ".opd","a"; \ 38 .align 3; \ 39 name: \ 40 .quad .name,.TOC.@tocbase,0; \ 41 .previous; \ 42 .globl .name; \ 43 .type .name,@function; \ 44 .name: \ 45 46#define V_FUNCTION_END(name) \ 47 .size .name,.-.name; 48 49#define V_LOCAL_FUNC(name) (.name) 50 51#else /* VDS64_HAS_DESCRIPTORS */ 52 53#define V_FUNCTION_BEGIN(name) \ 54 .globl name; \ 55 name: \ 56 57#define V_FUNCTION_END(name) \ 58 .size name,.-name; 59 60#define V_LOCAL_FUNC(name) (name) 61 62#endif /* VDS64_HAS_DESCRIPTORS */ 63#endif /* __VDSO64__ */ 64 65#ifdef __VDSO32__ 66 67#define V_FUNCTION_BEGIN(name) \ 68 .globl name; \ 69 .type name,@function; \ 70 name: \ 71 72#define V_FUNCTION_END(name) \ 73 .size name,.-name; 74 75#define V_LOCAL_FUNC(name) (name) 76 77#endif /* __VDSO32__ */ 78 79#endif /* __ASSEMBLY__ */ 80 81#endif /* __KERNEL__ */ 82 83#endif /* __PPC64_VDSO_H__ */