diff options
author | John Stultz <john.stultz@linaro.org> | 2014-11-07 14:03:20 -0500 |
---|---|---|
committer | John Stultz <john.stultz@linaro.org> | 2014-11-21 14:59:58 -0500 |
commit | cdba2ec538d9843c42cac15ff4ec54dc2ac53f8a (patch) | |
tree | 1cfc0b8f6dffe1acf1737ba46385a11b6f7d1efb | |
parent | 90b6ce9c4066e0b2098dff65e52e6e7df1a51079 (diff) |
time: Expose getrawmonotonic64 for in-kernel uses
Adds a timespec64 based getrawmonotonic64() implementation
that can be used as we convert internal users of
getrawmonotonic away from using timespecs.
Signed-off-by: John Stultz <john.stultz@linaro.org>
-rw-r--r-- | include/linux/timekeeping.h | 15 | ||||
-rw-r--r-- | kernel/time/timekeeping.c | 11 |
2 files changed, 20 insertions, 6 deletions
diff --git a/include/linux/timekeeping.h b/include/linux/timekeeping.h index 6d76c6502892..e40a8d60fb21 100644 --- a/include/linux/timekeeping.h +++ b/include/linux/timekeeping.h | |||
@@ -26,7 +26,7 @@ struct timespec __current_kernel_time(void); | |||
26 | * timespec based interfaces | 26 | * timespec based interfaces |
27 | */ | 27 | */ |
28 | struct timespec get_monotonic_coarse(void); | 28 | struct timespec get_monotonic_coarse(void); |
29 | extern void getrawmonotonic(struct timespec *ts); | 29 | extern void getrawmonotonic64(struct timespec64 *ts); |
30 | extern void ktime_get_ts64(struct timespec64 *ts); | 30 | extern void ktime_get_ts64(struct timespec64 *ts); |
31 | 31 | ||
32 | extern int __getnstimeofday64(struct timespec64 *tv); | 32 | extern int __getnstimeofday64(struct timespec64 *tv); |
@@ -61,6 +61,11 @@ static inline void ktime_get_real_ts(struct timespec *ts) | |||
61 | getnstimeofday64(ts); | 61 | getnstimeofday64(ts); |
62 | } | 62 | } |
63 | 63 | ||
64 | static inline void getrawmonotonic(struct timespec *ts) | ||
65 | { | ||
66 | getrawmonotonic64(ts); | ||
67 | } | ||
68 | |||
64 | #else | 69 | #else |
65 | /** | 70 | /** |
66 | * Deprecated. Use do_settimeofday64(). | 71 | * Deprecated. Use do_settimeofday64(). |
@@ -105,6 +110,14 @@ static inline void ktime_get_real_ts(struct timespec *ts) | |||
105 | getnstimeofday64(&ts64); | 110 | getnstimeofday64(&ts64); |
106 | *ts = timespec64_to_timespec(ts64); | 111 | *ts = timespec64_to_timespec(ts64); |
107 | } | 112 | } |
113 | |||
114 | static inline void getrawmonotonic(struct timespec *ts) | ||
115 | { | ||
116 | struct timespec64 ts64; | ||
117 | |||
118 | getrawmonotonic64(&ts64); | ||
119 | *ts = timespec64_to_timespec(ts64); | ||
120 | } | ||
108 | #endif | 121 | #endif |
109 | 122 | ||
110 | extern void getboottime(struct timespec *ts); | 123 | extern void getboottime(struct timespec *ts); |
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index 2bde974437fd..2e5f63212269 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c | |||
@@ -894,12 +894,12 @@ int timekeeping_notify(struct clocksource *clock) | |||
894 | } | 894 | } |
895 | 895 | ||
896 | /** | 896 | /** |
897 | * getrawmonotonic - Returns the raw monotonic time in a timespec | 897 | * getrawmonotonic64 - Returns the raw monotonic time in a timespec |
898 | * @ts: pointer to the timespec to be set | 898 | * @ts: pointer to the timespec64 to be set |
899 | * | 899 | * |
900 | * Returns the raw monotonic time (completely un-modified by ntp) | 900 | * Returns the raw monotonic time (completely un-modified by ntp) |
901 | */ | 901 | */ |
902 | void getrawmonotonic(struct timespec *ts) | 902 | void getrawmonotonic64(struct timespec64 *ts) |
903 | { | 903 | { |
904 | struct timekeeper *tk = &tk_core.timekeeper; | 904 | struct timekeeper *tk = &tk_core.timekeeper; |
905 | struct timespec64 ts64; | 905 | struct timespec64 ts64; |
@@ -914,9 +914,10 @@ void getrawmonotonic(struct timespec *ts) | |||
914 | } while (read_seqcount_retry(&tk_core.seq, seq)); | 914 | } while (read_seqcount_retry(&tk_core.seq, seq)); |
915 | 915 | ||
916 | timespec64_add_ns(&ts64, nsecs); | 916 | timespec64_add_ns(&ts64, nsecs); |
917 | *ts = timespec64_to_timespec(ts64); | 917 | *ts = ts64; |
918 | } | 918 | } |
919 | EXPORT_SYMBOL(getrawmonotonic); | 919 | EXPORT_SYMBOL(getrawmonotonic64); |
920 | |||
920 | 921 | ||
921 | /** | 922 | /** |
922 | * timekeeping_valid_for_hres - Check if timekeeping is suitable for hres | 923 | * timekeeping_valid_for_hres - Check if timekeeping is suitable for hres |