diff options
Diffstat (limited to 'include/asm-powerpc/vdso.h')
| -rw-r--r-- | include/asm-powerpc/vdso.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/include/asm-powerpc/vdso.h b/include/asm-powerpc/vdso.h new file mode 100644 index 000000000000..85d8a7be25c4 --- /dev/null +++ b/include/asm-powerpc/vdso.h | |||
| @@ -0,0 +1,83 @@ | |||
| 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.12 | ||
| 15 | |||
| 16 | /* Define if 64 bits VDSO has procedure descriptors */ | ||
| 17 | #undef VDS64_HAS_DESCRIPTORS | ||
| 18 | |||
| 19 | #ifndef __ASSEMBLY__ | ||
| 20 | |||
| 21 | extern unsigned int vdso64_pages; | ||
| 22 | extern unsigned int vdso32_pages; | ||
| 23 | |||
| 24 | /* Offsets relative to thread->vdso_base */ | ||
| 25 | extern unsigned long vdso64_rt_sigtramp; | ||
| 26 | extern unsigned long vdso32_sigtramp; | ||
| 27 | extern unsigned long vdso32_rt_sigtramp; | ||
| 28 | |||
| 29 | extern 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__ */ | ||
