blob: 8b38be2de9e15a7cf149b3c088aac074f1be0463 [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;
20 u32 wall_time_nsec;
21 u32 monotonic_time_nsec;
22 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 */