Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | #ifndef __PPC64_VDSO_H__ |
2 | #define __PPC64_VDSO_H__ | |
3 | ||
4 | #ifdef __KERNEL__ | |
5 | ||
6 | /* Default link addresses for the vDSOs */ | |
547ee84c BH |
7 | #define VDSO32_LBASE 0x100000 |
8 | #define VDSO64_LBASE 0x100000 | |
1da177e4 LT |
9 | |
10 | /* Default map addresses */ | |
547ee84c BH |
11 | #define VDSO32_MBASE VDSO32_LBASE |
12 | #define VDSO64_MBASE VDSO64_LBASE | |
1da177e4 LT |
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__ */ |