timekeeper
struct timekeeper *tk = priv;
void update_vsyscall(struct timekeeper *tk)
static void update_pvclock_gtod(struct timekeeper *tk)
struct timekeeper *tk = priv;
struct timekeeper *tk = priv;
extern void update_vsyscall(struct timekeeper *tk);
static inline void update_vsyscall(struct timekeeper *tk)
extern void vdso_time_update_aux(struct timekeeper *tk);
static inline void vdso_time_update_aux(struct timekeeper *tk) { }
struct timekeeper *tk = &tk_core.timekeeper;
struct timekeeper *tk = &tk_core.timekeeper;
struct timekeeper *tk = &tk_core.timekeeper;
tk_core.timekeeper.offs_real);
tk_core.timekeeper.offs_boot);
struct timekeeper *tk = &tk_core.timekeeper;
struct clocksource *cs = tk_core.timekeeper.tkr_mono.clock;
struct clocksource *cs = tk_core.timekeeper.tkr_mono.clock;
struct tk_read_base *tkr = &tk_core.timekeeper.tkr_mono;
struct timekeeper *tk = &tk_core.timekeeper;
struct timekeeper *tk = &tk_core.timekeeper;
tk_core.timekeeper.offs_real);
struct clocksource_base *base = READ_ONCE(tk_core.timekeeper.tkr_mono.clock->base);
struct timekeeper *tks = &tk_core.shadow_timekeeper;
static inline bool timekeeper_is_core_tk(struct timekeeper *tk)
struct timekeeper *tks = &tkd->shadow_timekeeper;
static void __timekeeping_set_tai_offset(struct timekeeper *tk, s32 tai_offset)
struct timekeeper *tks = &tk_core.shadow_timekeeper;
struct timekeeper *tk = &tk_core.timekeeper;
struct timekeeper *tk = &tk_core.timekeeper;
struct timekeeper *tk = &tk_core.timekeeper;
struct timekeeper *tk = &tk_core.timekeeper;
tkd->timekeeper.id = tkd->shadow_timekeeper.id = tk_id;
tkd->timekeeper.clock_valid = tkd->shadow_timekeeper.clock_valid = valid;
struct timekeeper *tks = &tk_core.shadow_timekeeper;
static void __timekeeping_inject_sleeptime(struct timekeeper *tk,
static inline void tk_normalize_xtime(struct timekeeper *tk)
struct timekeeper *tks = &tk_core.shadow_timekeeper;
struct timekeeper *tks = &tk_core.shadow_timekeeper;
struct timekeeper *tks = &tk_core.shadow_timekeeper;
static inline struct timespec64 tk_xtime(const struct timekeeper *tk)
static __always_inline void timekeeping_apply_adjustment(struct timekeeper *tk,
static inline struct timespec64 tk_xtime_coarse(const struct timekeeper *tk)
static void timekeeping_adjust(struct timekeeper *tk, s64 offset)
static inline unsigned int accumulate_nsecs_to_secs(struct timekeeper *tk)
static u64 logarithmic_accumulation(struct timekeeper *tk, u64 offset,
static inline void tk_update_coarse_nsecs(struct timekeeper *tk)
struct timekeeper *tk = &tkd->shadow_timekeeper;
struct timekeeper *real_tk = &tkd->timekeeper;
static void tk_set_xtime(struct timekeeper *tk, const struct timespec64 *ts)
static void tk_xtime_add(struct timekeeper *tk, const struct timespec64 *ts)
struct timekeeper *tk = &tk_core.timekeeper;
struct timekeeper *tk = &tk_core.timekeeper;
struct timekeeper *tk = &tk_core.timekeeper;
offset = tk_core.timekeeper.offs_real;
struct timekeeper *tk = &tk_core.timekeeper;
static void tk_set_wall_to_mono(struct timekeeper *tk, struct timespec64 wtm)
offset = tk_core.timekeeper.offs_real;
struct timekeeper *tk = &tk_core.timekeeper;
struct timekeeper *tk = &tk_core.timekeeper;
static inline void tk_update_sleep_time(struct timekeeper *tk, ktime_t delta)
struct tk_read_base *tkr = &tk_core.timekeeper.tkr_mono;
struct timekeeper *tks = &tkd->shadow_timekeeper;
tk_get_aux_ts64(tkd->timekeeper.id, &ts);
return timekeeper_data[id].timekeeper.xtime_sec;
struct timekeeper *tks = &tkd->shadow_timekeeper;
tk_setup_internals(tks, tk_core.timekeeper.tkr_mono.clock);
struct timekeeper *aux_tk;
aux_tk = &aux_tkd->timekeeper;
struct timekeeper *aux_tks;
struct tk_read_base *tkr_raw = &tk_core.timekeeper.tkr_raw;
struct timekeeper *aux_tks = &aux_tkd->shadow_timekeeper;
aux_tks->id = aux_tkd->timekeeper.id;
static void tk_setup_internals(struct timekeeper *tk, struct clocksource *clock)
struct timekeeper *tk = &tk_core.timekeeper;
struct timekeeper timekeeper;
struct timekeeper shadow_timekeeper;
struct timekeeper *tk = &tk_core.timekeeper;
static void halt_fast_timekeeper(const struct timekeeper *tk)
static void update_pvclock_gtod(struct timekeeper *tk, bool was_set)
struct timekeeper *tk = &tk_core.timekeeper;
static inline void tk_update_leap_state(struct timekeeper *tk)
tkd->timekeeper.next_leap_ktime = tkd->shadow_timekeeper.next_leap_ktime;
static inline void tk_update_ktime_data(struct timekeeper *tk)
static inline bool tk_is_aux(const struct timekeeper *tk)
memcpy(&tkd->shadow_timekeeper, &tkd->timekeeper, sizeof(tkd->timekeeper));
struct timekeeper *tk = &tkd->shadow_timekeeper;
memcpy(&tkd->timekeeper, tk, sizeof(*tk));
static void timekeeping_forward_now(struct timekeeper *tk)
struct timekeeper *tk = &tk_core.timekeeper;
static inline bool tk_is_aux(const struct timekeeper *tk)
struct timekeeper *tk = &tk_core.timekeeper;
struct timekeeper *tk = &tk_core.timekeeper;
[TK_OFFS_REAL] = &tk_core.timekeeper.offs_real,
[TK_OFFS_BOOT] = &tk_core.timekeeper.offs_boot,
[TK_OFFS_TAI] = &tk_core.timekeeper.offs_tai,
struct timekeeper *tk = &tk_core.timekeeper;
static inline void tk_update_aux_offs(struct timekeeper *tk, ktime_t offs)
struct timekeeper *tk = &tk_core.timekeeper;
struct timekeeper *tk = &tk_core.timekeeper;
struct timekeeper *tk = &tk_core.timekeeper;
struct timekeeper *tk = &tk_core.timekeeper;
void vdso_time_update_aux(struct timekeeper *tk)
static inline void update_vdso_time_data(struct vdso_time_data *vdata, struct timekeeper *tk)
void update_vsyscall(struct timekeeper *tk)