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 Frascinostruct 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