extern ktime_t ktime_get_real(void);
extern ktime_t ktime_get_boottime(void);
extern ktime_t ktime_get_monotonic_offset(void);
-extern ktime_t ktime_get_update_offsets(ktime_t *offs_real, ktime_t *offs_boot);
DECLARE_PER_CPU(struct tick_device, tick_cpu_device);
} while (read_seqretry(&xtime_lock, seq));
}
-#ifdef CONFIG_HIGH_RES_TIMERS
-/**
- * ktime_get_update_offsets - hrtimer helper
- * @real: pointer to storage for monotonic -> realtime offset
- * @_boot: pointer to storage for monotonic -> boottime offset
- *
- * Returns current monotonic time and updates the offsets
- * Called from hrtimer_interupt() or retrigger_next_event()
- */
-ktime_t ktime_get_update_offsets(ktime_t *real, ktime_t *boot)
-{
- ktime_t now;
- unsigned int seq;
- u64 secs, nsecs;
-
- do {
- seq = read_seqbegin(&xtime_lock);
-
- secs = xtime.tv_sec;
- nsecs = xtime.tv_nsec;
- nsecs += timekeeping_get_ns();
- /* If arch requires, add in gettimeoffset() */
- nsecs += arch_gettimeoffset();
-
- *real = offs_real;
- *boot = offs_boot;
- } while (read_seqretry(&xtime_lock, seq));
-
- now = ktime_add_ns(ktime_set(secs, 0), nsecs);
- now = ktime_sub(now, *real);
- return now;
-}
-#endif
-
/**
* ktime_get_monotonic_offset() - get wall_to_monotonic in ktime_t format
*/