]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
timekeeping: Add missing _ns functions for coarse accessors
authorJason A. Donenfeld <Jason@zx2c4.com>
Fri, 21 Jun 2019 20:32:49 +0000 (22:32 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Sat, 22 Jun 2019 10:11:28 +0000 (12:11 +0200)
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
Documentation/core-api/timekeeping.rst
include/linux/timekeeping.h

index 4d92b1ac8024a19dfdfb14240eab0dbd6b1c9d76..15fc58e85ef9e625afdda2d534bba454b5819e62 100644 (file)
@@ -99,16 +99,20 @@ Coarse and fast_ns access
 
 Some additional variants exist for more specialized cases:
 
-.. c:function:: ktime_t ktime_get_coarse_boottime( void )
+.. c:function:: ktime_t ktime_get_coarse( void )
+               ktime_t ktime_get_coarse_boottime( void )
                ktime_t ktime_get_coarse_real( void )
                ktime_t ktime_get_coarse_clocktai( void )
-               ktime_t ktime_get_coarse_raw( void )
+
+.. c:function:: u64 ktime_get_coarse_ns( void )
+               u64 ktime_get_coarse_boot_ns( void )
+               u64 ktime_get_coarse_real_ns( void )
+               u64 ktime_get_coarse_clocktai_ns( void )
 
 .. c:function:: void ktime_get_coarse_ts64( struct timespec64 * )
                void ktime_get_coarse_boottime_ts64( struct timespec64 * )
                void ktime_get_coarse_real_ts64( struct timespec64 * )
                void ktime_get_coarse_clocktai_ts64( struct timespec64 * )
-               void ktime_get_coarse_raw_ts64( struct timespec64 * )
 
        These are quicker than the non-coarse versions, but less accurate,
        corresponding to CLOCK_MONONOTNIC_COARSE and CLOCK_REALTIME_COARSE
index fd6123722ea80ea1d8cce517335cb826ea07d353..dcffc00755f22c525576f85e5fc68a06d9e5153f 100644 (file)
@@ -113,6 +113,34 @@ static inline ktime_t ktime_get_coarse_clocktai(void)
        return ktime_get_coarse_with_offset(TK_OFFS_TAI);
 }
 
+static inline ktime_t ktime_get_coarse(void)
+{
+       struct timespec64 ts;
+
+       ktime_get_coarse_ts64(&ts);
+       return timespec64_to_ktime(ts);
+}
+
+static inline u64 ktime_get_coarse_ns(void)
+{
+       return ktime_to_ns(ktime_get_coarse());
+}
+
+static inline u64 ktime_get_coarse_real_ns(void)
+{
+       return ktime_to_ns(ktime_get_coarse_real());
+}
+
+static inline u64 ktime_get_coarse_boot_ns(void)
+{
+       return ktime_to_ns(ktime_get_coarse_boottime());
+}
+
+static inline u64 ktime_get_coarse_clocktai_ns(void)
+{
+       return ktime_to_ns(ktime_get_coarse_clocktai());
+}
+
 /**
  * ktime_mono_to_real - Convert monotonic time to clock realtime
  */