162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2012 ARM Limited
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci#ifndef __ASM_VDSO_H
662306a36Sopenharmony_ci#define __ASM_VDSO_H
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci/*
962306a36Sopenharmony_ci * Default link address for the vDSO.
1062306a36Sopenharmony_ci * Since we randomise the VDSO mapping, there's little point in trying
1162306a36Sopenharmony_ci * to prelink this.
1262306a36Sopenharmony_ci */
1362306a36Sopenharmony_ci#define VDSO_LBASE	0x0
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#define __VVAR_PAGES    2
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci#ifndef __ASSEMBLY__
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci#include <generated/vdso-offsets.h>
2062306a36Sopenharmony_ci#ifdef CONFIG_COMPAT_VDSO
2162306a36Sopenharmony_ci#include <generated/vdso32-offsets.h>
2262306a36Sopenharmony_ci#endif
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci#define VDSO_SYMBOL(base, name)						   \
2562306a36Sopenharmony_ci({									   \
2662306a36Sopenharmony_ci	(void *)(vdso_offset_##name - VDSO_LBASE + (unsigned long)(base)); \
2762306a36Sopenharmony_ci})
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciextern char vdso_start[], vdso_end[];
3062306a36Sopenharmony_ciextern char vdso32_start[], vdso32_end[];
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci#endif /* !__ASSEMBLY__ */
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci#endif /* __ASM_VDSO_H */
35