summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2019-06-21 16:32:49 -0400
committerThomas Gleixner <tglx@linutronix.de>2019-06-22 06:11:28 -0400
commit4c54294d01e605a9f992361b924c5d8b12822a6d (patch)
tree0024e485e66736bd1d571793196d08e09374ad36
parent9285ec4c8b61d4930a575081abeba2cd4f449a74 (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.rst10
-rw-r--r--include/linux/timekeeping.h28
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
100Some additional variants exist for more specialized cases: 100Some 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
116static 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
124static inline u64 ktime_get_coarse_ns(void)
125{
126 return ktime_to_ns(ktime_get_coarse());
127}
128
129static inline u64 ktime_get_coarse_real_ns(void)
130{
131 return ktime_to_ns(ktime_get_coarse_real());
132}
133
134static inline u64 ktime_get_coarse_boot_ns(void)
135{
136 return ktime_to_ns(ktime_get_coarse_boottime());
137}
138
139static 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 */