1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __PPC64_VDSO_H__
3#define __PPC64_VDSO_H__
4
5#ifdef __KERNEL__
6
7/* Default link addresses for the vDSOs */
8#define VDSO32_LBASE	0x0
9#define VDSO64_LBASE	0x0
10
11/* Default map addresses for 32bit vDSO */
12#define VDSO32_MBASE	0x100000
13
14#define VDSO_VERSION_STRING	LINUX_2.6.15
15
16#ifndef __ASSEMBLY__
17
18/* Offsets relative to thread->vdso_base */
19extern unsigned long vdso64_rt_sigtramp;
20extern unsigned long vdso32_sigtramp;
21extern unsigned long vdso32_rt_sigtramp;
22
23int vdso_getcpu_init(void);
24
25#else /* __ASSEMBLY__ */
26
27#ifdef __VDSO64__
28#define V_FUNCTION_BEGIN(name)		\
29	.globl name;			\
30	name:				\
31
32#define V_FUNCTION_END(name)		\
33	.size name,.-name;
34
35#define V_LOCAL_FUNC(name) (name)
36#endif /* __VDSO64__ */
37
38#ifdef __VDSO32__
39
40#define V_FUNCTION_BEGIN(name)		\
41	.globl name;			\
42	.type name,@function; 		\
43	name:				\
44
45#define V_FUNCTION_END(name)		\
46	.size name,.-name;
47
48#define V_LOCAL_FUNC(name) (name)
49
50#endif /* __VDSO32__ */
51
52#endif /* __ASSEMBLY__ */
53
54#endif /* __KERNEL__ */
55
56#endif /* __PPC64_VDSO_H__ */
57