xref: /openbmc/linux/arch/x86/include/asm/vgtod.h (revision 91ec87d5)
11965aae3SH. Peter Anvin #ifndef _ASM_X86_VGTOD_H
21965aae3SH. Peter Anvin #define _ASM_X86_VGTOD_H
3bb898558SAl Viro 
4bb898558SAl Viro #include <asm/vsyscall.h>
5bb898558SAl Viro #include <linux/clocksource.h>
6bb898558SAl Viro 
7bb898558SAl Viro struct vsyscall_gtod_data {
82ab51657SThomas Gleixner 	seqcount_t	seq;
9bb898558SAl Viro 
10bb898558SAl Viro 	struct { /* extract of a clocksource struct */
1198d0ac38SAndy Lutomirski 		int vclock_mode;
12bb898558SAl Viro 		cycle_t	cycle_last;
13bb898558SAl Viro 		cycle_t	mask;
14bb898558SAl Viro 		u32	mult;
15bb898558SAl Viro 		u32	shift;
16bb898558SAl Viro 	} clock;
1791ec87d5SAndy Lutomirski 
1891ec87d5SAndy Lutomirski 	/* open coded 'struct timespec' */
1991ec87d5SAndy Lutomirski 	time_t		wall_time_sec;
2091ec87d5SAndy Lutomirski 	u32		wall_time_nsec;
2191ec87d5SAndy Lutomirski 	u32		monotonic_time_nsec;
2291ec87d5SAndy Lutomirski 	time_t		monotonic_time_sec;
2391ec87d5SAndy Lutomirski 
2491ec87d5SAndy Lutomirski 	struct timezone sys_tz;
25da15cfdaSjohn stultz 	struct timespec wall_time_coarse;
2691ec87d5SAndy Lutomirski 	struct timespec monotonic_time_coarse;
27bb898558SAl Viro };
28bb898558SAl Viro extern struct vsyscall_gtod_data vsyscall_gtod_data;
29bb898558SAl Viro 
301965aae3SH. Peter Anvin #endif /* _ASM_X86_VGTOD_H */
31