-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
time: Move timekeeper structure to timekeeper_internal.h for vsyscall…
… changes We're going to need to access the timekeeper in update_vsyscall, so make the structure available for those who need it. Cc: Tony Luck <tony.luck@intel.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Andy Lutomirski <luto@amacapital.net> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Paul Turner <pjt@google.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Richard Cochran <richardcochran@gmail.com> Cc: Prarit Bhargava <prarit@redhat.com> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: John Stultz <john.stultz@linaro.org>
- Loading branch information
John Stultz
committed
Sep 24, 2012
1 parent
b3c869d
commit d7b4202
Showing
2 changed files
with
69 additions
and
55 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
/* | ||
* You SHOULD NOT be including this unless you're vsyscall | ||
* handling code or timekeeping internal code! | ||
*/ | ||
|
||
#ifndef _LINUX_TIMEKEEPER_INTERNAL_H | ||
#define _LINUX_TIMEKEEPER_INTERNAL_H | ||
|
||
#include <linux/clocksource.h> | ||
#include <linux/jiffies.h> | ||
#include <linux/time.h> | ||
|
||
/* Structure holding internal timekeeping values. */ | ||
struct timekeeper { | ||
/* Current clocksource used for timekeeping. */ | ||
struct clocksource *clock; | ||
/* NTP adjusted clock multiplier */ | ||
u32 mult; | ||
/* The shift value of the current clocksource. */ | ||
u32 shift; | ||
/* Number of clock cycles in one NTP interval. */ | ||
cycle_t cycle_interval; | ||
/* Number of clock shifted nano seconds in one NTP interval. */ | ||
u64 xtime_interval; | ||
/* shifted nano seconds left over when rounding cycle_interval */ | ||
s64 xtime_remainder; | ||
/* Raw nano seconds accumulated per NTP interval. */ | ||
u32 raw_interval; | ||
|
||
/* Current CLOCK_REALTIME time in seconds */ | ||
u64 xtime_sec; | ||
/* Clock shifted nano seconds */ | ||
u64 xtime_nsec; | ||
|
||
/* Difference between accumulated time and NTP time in ntp | ||
* shifted nano seconds. */ | ||
s64 ntp_error; | ||
/* Shift conversion between clock shifted nano seconds and | ||
* ntp shifted nano seconds. */ | ||
u32 ntp_error_shift; | ||
|
||
/* | ||
* wall_to_monotonic is what we need to add to xtime (or xtime corrected | ||
* for sub jiffie times) to get to monotonic time. Monotonic is pegged | ||
* at zero at system boot time, so wall_to_monotonic will be negative, | ||
* however, we will ALWAYS keep the tv_nsec part positive so we can use | ||
* the usual normalization. | ||
* | ||
* wall_to_monotonic is moved after resume from suspend for the | ||
* monotonic time not to jump. We need to add total_sleep_time to | ||
* wall_to_monotonic to get the real boot based time offset. | ||
* | ||
* - wall_to_monotonic is no longer the boot time, getboottime must be | ||
* used instead. | ||
*/ | ||
struct timespec wall_to_monotonic; | ||
/* Offset clock monotonic -> clock realtime */ | ||
ktime_t offs_real; | ||
/* time spent in suspend */ | ||
struct timespec total_sleep_time; | ||
/* Offset clock monotonic -> clock boottime */ | ||
ktime_t offs_boot; | ||
/* The raw monotonic time for the CLOCK_MONOTONIC_RAW posix clock. */ | ||
struct timespec raw_time; | ||
/* Seqlock for all timekeeper values */ | ||
seqlock_t lock; | ||
}; | ||
#endif /* _LINUX_TIMEKEEPER_INTERNAL_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters