diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-06-21 16:32:49 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2019-06-22 06:11:28 -0400 |
commit | 4c54294d01e605a9f992361b924c5d8b12822a6d (patch) | |
tree | 0024e485e66736bd1d571793196d08e09374ad36 | |
parent | 9285ec4c8b61d4930a575081abeba2cd4f449a74 (diff) |
timekeeping: Add missing _ns functions for coarse accessors
This further unifies the accessors for the fast and coarse functions, so
that the same types of functions are available for each. There was also
a bit of confusion with the documentation, which prior advertised a
function that has never existed. Finally, the vanilla ktime_get_coarse()
was omitted from the API originally, so this fills this oversight.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lkml.kernel.org/r/20190621203249.3909-3-Jason@zx2c4.com
-rw-r--r-- | Documentation/core-api/timekeeping.rst | 10 | ||||
-rw-r--r-- | include/linux/timekeeping.h | 28 |
2 files changed, 35 insertions, 3 deletions
diff --git a/Documentation/core-api/timekeeping.rst b/Documentation/core-api/timekeeping.rst index 4d92b1ac8024..15fc58e85ef9 100644 --- a/Documentation/core-api/timekeeping.rst +++ b/Documentation/core-api/timekeeping.rst | |||
@@ -99,16 +99,20 @@ Coarse and fast_ns access | |||
99 | 99 | ||
100 | Some additional variants exist for more specialized cases: | 100 | Some additional variants exist for more specialized cases: |
101 | 101 | ||
102 | .. c:function:: ktime_t ktime_get_coarse_boottime( void ) | 102 | .. c:function:: ktime_t ktime_get_coarse( void ) |
103 | ktime_t ktime_get_coarse_boottime( void ) | ||
103 | ktime_t ktime_get_coarse_real( void ) | 104 | ktime_t ktime_get_coarse_real( void ) |
104 | ktime_t ktime_get_coarse_clocktai( void ) | 105 | ktime_t ktime_get_coarse_clocktai( void ) |
105 | ktime_t ktime_get_coarse_raw( void ) | 106 | |
107 | .. c:function:: u64 ktime_get_coarse_ns( void ) | ||
108 | u64 ktime_get_coarse_boot_ns( void ) | ||
109 | u64 ktime_get_coarse_real_ns( void ) | ||
110 | u64 ktime_get_coarse_clocktai_ns( void ) | ||
106 | 111 | ||
107 | .. c:function:: void ktime_get_coarse_ts64( struct timespec64 * ) | 112 | .. c:function:: void ktime_get_coarse_ts64( struct timespec64 * ) |
108 | void ktime_get_coarse_boottime_ts64( struct timespec64 * ) | 113 | void ktime_get_coarse_boottime_ts64( struct timespec64 * ) |
109 | void ktime_get_coarse_real_ts64( struct timespec64 * ) | 114 | void ktime_get_coarse_real_ts64( struct timespec64 * ) |
110 | void ktime_get_coarse_clocktai_ts64( struct timespec64 * ) | 115 | void ktime_get_coarse_clocktai_ts64( struct timespec64 * ) |
111 | void ktime_get_coarse_raw_ts64( struct timespec64 * ) | ||
112 | 116 | ||
113 | These are quicker than the non-coarse versions, but less accurate, | 117 | These are quicker than the non-coarse versions, but less accurate, |
114 | corresponding to CLOCK_MONONOTNIC_COARSE and CLOCK_REALTIME_COARSE | 118 | corresponding to CLOCK_MONONOTNIC_COARSE and CLOCK_REALTIME_COARSE |
diff --git a/include/linux/timekeeping.h b/include/linux/timekeeping.h index fd6123722ea8..dcffc00755f2 100644 --- a/include/linux/timekeeping.h +++ b/include/linux/timekeeping.h | |||
@@ -113,6 +113,34 @@ static inline ktime_t ktime_get_coarse_clocktai(void) | |||
113 | return ktime_get_coarse_with_offset(TK_OFFS_TAI); | 113 | return ktime_get_coarse_with_offset(TK_OFFS_TAI); |
114 | } | 114 | } |
115 | 115 | ||
116 | static inline ktime_t ktime_get_coarse(void) | ||
117 | { | ||
118 | struct timespec64 ts; | ||
119 | |||
120 | ktime_get_coarse_ts64(&ts); | ||
121 | return timespec64_to_ktime(ts); | ||
122 | } | ||
123 | |||
124 | static inline u64 ktime_get_coarse_ns(void) | ||
125 | { | ||
126 | return ktime_to_ns(ktime_get_coarse()); | ||
127 | } | ||
128 | |||
129 | static inline u64 ktime_get_coarse_real_ns(void) | ||
130 | { | ||
131 | return ktime_to_ns(ktime_get_coarse_real()); | ||
132 | } | ||
133 | |||
134 | static inline u64 ktime_get_coarse_boot_ns(void) | ||
135 | { | ||
136 | return ktime_to_ns(ktime_get_coarse_boottime()); | ||
137 | } | ||
138 | |||
139 | static inline u64 ktime_get_coarse_clocktai_ns(void) | ||
140 | { | ||
141 | return ktime_to_ns(ktime_get_coarse_clocktai()); | ||
142 | } | ||
143 | |||
116 | /** | 144 | /** |
117 | * ktime_mono_to_real - Convert monotonic time to clock realtime | 145 | * ktime_mono_to_real - Convert monotonic time to clock realtime |
118 | */ | 146 | */ |