162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef _ASM_POWERPC_VDSO_H
362306a36Sopenharmony_ci#define _ASM_POWERPC_VDSO_H
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#define VDSO_VERSION_STRING	LINUX_2.6.15
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci#ifndef __ASSEMBLY__
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#ifdef CONFIG_PPC64
1062306a36Sopenharmony_ci#include <generated/vdso64-offsets.h>
1162306a36Sopenharmony_ci#endif
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#ifdef CONFIG_VDSO32
1462306a36Sopenharmony_ci#include <generated/vdso32-offsets.h>
1562306a36Sopenharmony_ci#endif
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci#define VDSO64_SYMBOL(base, name) ((unsigned long)(base) + (vdso64_offset_##name))
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci#define VDSO32_SYMBOL(base, name) ((unsigned long)(base) + (vdso32_offset_##name))
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ciint vdso_getcpu_init(void);
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci#else /* __ASSEMBLY__ */
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci#ifdef __VDSO64__
2662306a36Sopenharmony_ci#define V_FUNCTION_BEGIN(name)		\
2762306a36Sopenharmony_ci	.globl name;			\
2862306a36Sopenharmony_ci	name:				\
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci#define V_FUNCTION_END(name)		\
3162306a36Sopenharmony_ci	.size name,.-name;
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci#define V_LOCAL_FUNC(name) (name)
3462306a36Sopenharmony_ci#endif /* __VDSO64__ */
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci#ifdef __VDSO32__
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci#define V_FUNCTION_BEGIN(name)		\
3962306a36Sopenharmony_ci	.globl name;			\
4062306a36Sopenharmony_ci	.type name,@function; 		\
4162306a36Sopenharmony_ci	name:				\
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci#define V_FUNCTION_END(name)		\
4462306a36Sopenharmony_ci	.size name,.-name;
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci#define V_LOCAL_FUNC(name) (name)
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci#endif /* __VDSO32__ */
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci#endif /* __ASSEMBLY__ */
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci#endif /* _ASM_POWERPC_VDSO_H */
53