Loading...
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __ASM_VDSO_VSYSCALL_H
3#define __ASM_VDSO_VSYSCALL_H
4
5#ifndef __ASSEMBLY__
6
7#include <linux/timekeeper_internal.h>
8#include <vdso/datapage.h>
9
10extern struct vdso_data *vdso_data;
11
12/*
13 * Update the vDSO data page to keep in sync with kernel timekeeping.
14 */
15static __always_inline
16struct vdso_data *__mips_get_k_vdso_data(void)
17{
18 return vdso_data;
19}
20#define __arch_get_k_vdso_data __mips_get_k_vdso_data
21
22static __always_inline
23int __mips_get_clock_mode(struct timekeeper *tk)
24{
25 u32 clock_mode = tk->tkr_mono.clock->archdata.vdso_clock_mode;
26
27 return clock_mode;
28}
29#define __arch_get_clock_mode __mips_get_clock_mode
30
31/* The asm-generic header needs to be included after the definitions above */
32#include <asm-generic/vdso/vsyscall.h>
33
34#endif /* !__ASSEMBLY__ */
35
36#endif /* __ASM_VDSO_VSYSCALL_H */
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __ASM_VDSO_VSYSCALL_H
3#define __ASM_VDSO_VSYSCALL_H
4
5#ifndef __ASSEMBLY__
6
7#include <vdso/datapage.h>
8
9extern struct vdso_data *vdso_data;
10
11/*
12 * Update the vDSO data page to keep in sync with kernel timekeeping.
13 */
14static __always_inline
15struct vdso_data *__mips_get_k_vdso_data(void)
16{
17 return vdso_data;
18}
19#define __arch_get_k_vdso_data __mips_get_k_vdso_data
20
21/* The asm-generic header needs to be included after the definitions above */
22#include <asm-generic/vdso/vsyscall.h>
23
24#endif /* !__ASSEMBLY__ */
25
26#endif /* __ASM_VDSO_VSYSCALL_H */