1
2 #ifndef __PPC64_VDSO_H__
3 #define __PPC64_VDSO_H__
4
5 #ifdef __KERNEL__
6
7
8 #define VDSO32_LBASE 0x0
9 #define VDSO64_LBASE 0x0
10
11
12 #define VDSO32_MBASE 0x100000
13
14 #define VDSO_VERSION_STRING LINUX_2.6.15
15
16
17 #undef VDS64_HAS_DESCRIPTORS
18
19 #ifndef __ASSEMBLY__
20
21
22 extern unsigned long vdso64_rt_sigtramp;
23 extern unsigned long vdso32_sigtramp;
24 extern unsigned long vdso32_rt_sigtramp;
25
26 int vdso_getcpu_init(void);
27
28 #else
29
30 #ifdef __VDSO64__
31 #ifdef VDS64_HAS_DESCRIPTORS
32 #define V_FUNCTION_BEGIN(name) \
33 .globl name; \
34 .section ".opd","a"; \
35 .align 3; \
36 name: \
37 .quad .name,.TOC.@tocbase,0; \
38 .previous; \
39 .globl .name; \
40 .type .name,@function; \
41 .name: \
42
43 #define V_FUNCTION_END(name) \
44 .size .name,.-.name;
45
46 #define V_LOCAL_FUNC(name) (.name)
47
48 #else
49
50 #define V_FUNCTION_BEGIN(name) \
51 .globl name; \
52 name: \
53
54 #define V_FUNCTION_END(name) \
55 .size name,.-name;
56
57 #define V_LOCAL_FUNC(name) (name)
58
59 #endif
60 #endif
61
62 #ifdef __VDSO32__
63
64 #define V_FUNCTION_BEGIN(name) \
65 .globl name; \
66 .type name,@function; \
67 name: \
68
69 #define V_FUNCTION_END(name) \
70 .size name,.-name;
71
72 #define V_LOCAL_FUNC(name) (name)
73
74 #endif
75
76 #endif
77
78 #endif
79
80 #endif