aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/time/timekeeping.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/time/timekeeping.c')
-rw-r--r--kernel/time/timekeeping.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index c1a178ca0f50..c50aaf6cd01d 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -958,3 +958,19 @@ void do_timer(unsigned long ticks)
958 update_wall_time(); 958 update_wall_time();
959 calc_global_load(ticks); 959 calc_global_load(ticks);
960} 960}
961
962/**
963 * get_xtime_and_monotonic_offset() - get xtime and wall_to_monotonic
964 * @xtim: pointer to timespec to be set with xtime
965 * @wtom: pointer to timespec to be set with wall_to_monotonic
966 */
967void get_xtime_and_monotonic_offset(struct timespec *xtim, struct timespec *wtom)
968{
969 unsigned long seq;
970
971 do {
972 seq = read_seqbegin(&xtime_lock);
973 *xtim = xtime;
974 *wtom = wall_to_monotonic;
975 } while (read_seqretry(&xtime_lock, seq));
976}