xref: /openbmc/linux/arch/x86/include/asm/vdso/vsyscall.h (revision b95a8a27)
17ac87074SVincenzo Frascino /* SPDX-License-Identifier: GPL-2.0 */
27ac87074SVincenzo Frascino #ifndef __ASM_VDSO_VSYSCALL_H
37ac87074SVincenzo Frascino #define __ASM_VDSO_VSYSCALL_H
47ac87074SVincenzo Frascino 
57ac87074SVincenzo Frascino #ifndef __ASSEMBLY__
67ac87074SVincenzo Frascino 
77ac87074SVincenzo Frascino #include <linux/hrtimer.h>
87ac87074SVincenzo Frascino #include <linux/timekeeper_internal.h>
97ac87074SVincenzo Frascino #include <vdso/datapage.h>
107ac87074SVincenzo Frascino #include <asm/vgtod.h>
117ac87074SVincenzo Frascino #include <asm/vvar.h>
127ac87074SVincenzo Frascino 
137ac87074SVincenzo Frascino DEFINE_VVAR(struct vdso_data, _vdso_data);
147ac87074SVincenzo Frascino /*
157ac87074SVincenzo Frascino  * Update the vDSO data page to keep in sync with kernel timekeeping.
167ac87074SVincenzo Frascino  */
177ac87074SVincenzo Frascino static __always_inline
__x86_get_k_vdso_data(void)187ac87074SVincenzo Frascino struct vdso_data *__x86_get_k_vdso_data(void)
197ac87074SVincenzo Frascino {
207ac87074SVincenzo Frascino 	return _vdso_data;
217ac87074SVincenzo Frascino }
227ac87074SVincenzo Frascino #define __arch_get_k_vdso_data __x86_get_k_vdso_data
237ac87074SVincenzo Frascino 
247ac87074SVincenzo Frascino /* The asm-generic header needs to be included after the definitions above */
257ac87074SVincenzo Frascino #include <asm-generic/vdso/vsyscall.h>
267ac87074SVincenzo Frascino 
277ac87074SVincenzo Frascino #endif /* !__ASSEMBLY__ */
287ac87074SVincenzo Frascino 
297ac87074SVincenzo Frascino #endif /* __ASM_VDSO_VSYSCALL_H */
30