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; 20650ea024SJohn Stultz u64 wall_time_snsec; 21650ea024SJohn Stultz u64 monotonic_time_snsec; 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