^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #ifndef _KERNEL_TIME_TIMEKEEPING_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #define _KERNEL_TIME_TIMEKEEPING_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) * Internal interfaces for kernel/time/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) extern ktime_t ktime_get_update_offsets_now(unsigned int *cwsseq,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) ktime_t *offs_real,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) ktime_t *offs_boot,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) ktime_t *offs_tai);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) extern int timekeeping_valid_for_hres(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) extern u64 timekeeping_max_deferment(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) extern void timekeeping_warp_clock(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) extern int timekeeping_suspend(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) extern void timekeeping_resume(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #ifdef CONFIG_GENERIC_SCHED_CLOCK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) extern int sched_clock_suspend(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) extern void sched_clock_resume(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) static inline int sched_clock_suspend(void) { return 0; }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) static inline void sched_clock_resume(void) { }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) extern void do_timer(unsigned long ticks);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) extern void update_wall_time(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) extern raw_spinlock_t jiffies_lock;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) extern seqcount_t jiffies_seq;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) #define CS_NAME_LEN 32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) #endif