diff options
Diffstat (limited to 'arch/powerpc/include/asm/vdso.h')
-rw-r--r-- | arch/powerpc/include/asm/vdso.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/vdso.h b/arch/powerpc/include/asm/vdso.h new file mode 100644 index 000000000000..26fc449bd989 --- /dev/null +++ b/arch/powerpc/include/asm/vdso.h | |||
@@ -0,0 +1,78 @@ | |||
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 | |||
21 | /* Offsets relative to thread->vdso_base */ | ||
22 | extern unsigned long vdso64_rt_sigtramp; | ||
23 | extern unsigned long vdso32_sigtramp; | ||
24 | extern unsigned long vdso32_rt_sigtramp; | ||
25 | |||
26 | #else /* __ASSEMBLY__ */ | ||
27 | |||
28 | #ifdef __VDSO64__ | ||
29 | #ifdef VDS64_HAS_DESCRIPTORS | ||
30 | #define V_FUNCTION_BEGIN(name) \ | ||
31 | .globl name; \ | ||
32 | .section ".opd","a"; \ | ||
33 | .align 3; \ | ||
34 | name: \ | ||
35 | .quad .name,.TOC.@tocbase,0; \ | ||
36 | .previous; \ | ||
37 | .globl .name; \ | ||
38 | .type .name,@function; \ | ||
39 | .name: \ | ||
40 | |||
41 | #define V_FUNCTION_END(name) \ | ||
42 | .size .name,.-.name; | ||
43 | |||
44 | #define V_LOCAL_FUNC(name) (.name) | ||
45 | |||
46 | #else /* VDS64_HAS_DESCRIPTORS */ | ||
47 | |||
48 | #define V_FUNCTION_BEGIN(name) \ | ||
49 | .globl name; \ | ||
50 | name: \ | ||
51 | |||
52 | #define V_FUNCTION_END(name) \ | ||
53 | .size name,.-name; | ||
54 | |||
55 | #define V_LOCAL_FUNC(name) (name) | ||
56 | |||
57 | #endif /* VDS64_HAS_DESCRIPTORS */ | ||
58 | #endif /* __VDSO64__ */ | ||
59 | |||
60 | #ifdef __VDSO32__ | ||
61 | |||
62 | #define V_FUNCTION_BEGIN(name) \ | ||
63 | .globl name; \ | ||
64 | .type name,@function; \ | ||
65 | name: \ | ||
66 | |||
67 | #define V_FUNCTION_END(name) \ | ||
68 | .size name,.-name; | ||
69 | |||
70 | #define V_LOCAL_FUNC(name) (name) | ||
71 | |||
72 | #endif /* __VDSO32__ */ | ||
73 | |||
74 | #endif /* __ASSEMBLY__ */ | ||
75 | |||
76 | #endif /* __KERNEL__ */ | ||
77 | |||
78 | #endif /* __PPC64_VDSO_H__ */ | ||