LCOV - code coverage report
Current view: top level - kernel/time - timekeeping_internal.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 1 100.0 %
Date: 2023-08-24 13:40:31 Functions: 0 0 -

          Line data    Source code
       1             : /* SPDX-License-Identifier: GPL-2.0 */
       2             : #ifndef _TIMEKEEPING_INTERNAL_H
       3             : #define _TIMEKEEPING_INTERNAL_H
       4             : 
       5             : #include <linux/clocksource.h>
       6             : #include <linux/spinlock.h>
       7             : #include <linux/time.h>
       8             : 
       9             : /*
      10             :  * timekeeping debug functions
      11             :  */
      12             : #ifdef CONFIG_DEBUG_FS
      13             : extern void tk_debug_account_sleep_time(const struct timespec64 *t);
      14             : #else
      15             : #define tk_debug_account_sleep_time(x)
      16             : #endif
      17             : 
      18             : #ifdef CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE
      19             : static inline u64 clocksource_delta(u64 now, u64 last, u64 mask)
      20             : {
      21             :         u64 ret = (now - last) & mask;
      22             : 
      23             :         /*
      24             :          * Prevent time going backwards by checking the MSB of mask in
      25             :          * the result. If set, return 0.
      26             :          */
      27             :         return ret & ~(mask >> 1) ? 0 : ret;
      28             : }
      29             : #else
      30             : static inline u64 clocksource_delta(u64 now, u64 last, u64 mask)
      31             : {
      32         365 :         return (now - last) & mask;
      33             : }
      34             : #endif
      35             : 
      36             : /* Semi public for serialization of non timekeeper VDSO updates. */
      37             : extern raw_spinlock_t timekeeper_lock;
      38             : 
      39             : #endif /* _TIMEKEEPING_INTERNAL_H */

Generated by: LCOV version 1.14