xref: /openbmc/linux/arch/x86/include/asm/vgtod.h (revision da15cfda)
1 #ifndef _ASM_X86_VGTOD_H
2 #define _ASM_X86_VGTOD_H
3 
4 #include <asm/vsyscall.h>
5 #include <linux/clocksource.h>
6 
7 struct vsyscall_gtod_data {
8 	seqlock_t	lock;
9 
10 	/* open coded 'struct timespec' */
11 	time_t		wall_time_sec;
12 	u32		wall_time_nsec;
13 
14 	int		sysctl_enabled;
15 	struct timezone sys_tz;
16 	struct { /* extract of a clocksource struct */
17 		cycle_t (*vread)(void);
18 		cycle_t	cycle_last;
19 		cycle_t	mask;
20 		u32	mult;
21 		u32	shift;
22 	} clock;
23 	struct timespec wall_to_monotonic;
24 	struct timespec wall_time_coarse;
25 };
26 extern struct vsyscall_gtod_data __vsyscall_gtod_data
27 __section_vsyscall_gtod_data;
28 extern struct vsyscall_gtod_data vsyscall_gtod_data;
29 
30 #endif /* _ASM_X86_VGTOD_H */
31