blob: 46e24d36b7da12dc641e4718d0d80e42ca923751 [file] [log] [blame]
H. Peter Anvin1965aae2008-10-22 22:26:29 -07001#ifndef _ASM_X86_VGTOD_H
2#define _ASM_X86_VGTOD_H
Andi Kleen2aae9502007-07-21 17:10:01 +02003
4#include <asm/vsyscall.h>
5#include <linux/clocksource.h>
6
7struct vsyscall_gtod_data {
Thomas Gleixner2ab51652012-02-28 19:46:04 +00008 seqcount_t seq;
Andi Kleen2aae9502007-07-21 17:10:01 +02009
Andi Kleen2aae9502007-07-21 17:10:01 +020010 struct { /* extract of a clocksource struct */
Andy Lutomirski98d0ac32011-07-14 06:47:22 -040011 int vclock_mode;
Andi Kleen2aae9502007-07-21 17:10:01 +020012 cycle_t cycle_last;
13 cycle_t mask;
14 u32 mult;
15 u32 shift;
16 } clock;
Andy Lutomirski91ec87d2012-03-22 21:15:51 -070017
18 /* open coded 'struct timespec' */
19 time_t wall_time_sec;
John Stultz650ea022012-09-04 16:14:46 -040020 u64 wall_time_snsec;
21 u64 monotonic_time_snsec;
Andy Lutomirski91ec87d2012-03-22 21:15:51 -070022 time_t monotonic_time_sec;
23
24 struct timezone sys_tz;
john stultzda15cfd2009-08-19 19:13:34 -070025 struct timespec wall_time_coarse;
Andy Lutomirski91ec87d2012-03-22 21:15:51 -070026 struct timespec monotonic_time_coarse;
Andi Kleen2aae9502007-07-21 17:10:01 +020027};
Andi Kleen2aae9502007-07-21 17:10:01 +020028extern struct vsyscall_gtod_data vsyscall_gtod_data;
29
H. Peter Anvin1965aae2008-10-22 22:26:29 -070030#endif /* _ASM_X86_VGTOD_H */