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