From 2d35810e0a4d71a12efc33f23f6c79333f91d139 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 16 May 2020 11:33:24 +0200 Subject: [PATCH] Kernel: Add TimeManagement::now_as_timeval() Hide the implementation of time-of-day computation in TimeManagement. --- Kernel/Scheduler.cpp | 3 +-- Kernel/Time/TimeManagement.cpp | 5 +++++ Kernel/Time/TimeManagement.h | 2 ++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Kernel/Scheduler.cpp b/Kernel/Scheduler.cpp index 1523caf0dc..bd630ee4cf 100644 --- a/Kernel/Scheduler.cpp +++ b/Kernel/Scheduler.cpp @@ -597,8 +597,7 @@ void Scheduler::timer_tick(const RegisterState& regs) ++g_uptime; - g_timeofday.tv_sec = TimeManagement::the().epoch_time(); - g_timeofday.tv_usec = TimeManagement::the().ticks_this_second() * 1000; + g_timeofday = TimeManagement::now_as_timeval(); if (Process::current->is_profiling()) { SmapDisabler disabler; diff --git a/Kernel/Time/TimeManagement.cpp b/Kernel/Time/TimeManagement.cpp index afafd24fd1..d97cf26c46 100644 --- a/Kernel/Time/TimeManagement.cpp +++ b/Kernel/Time/TimeManagement.cpp @@ -115,6 +115,11 @@ TimeManagement::TimeManagement(bool probe_non_legacy_hardware_timers) ASSERT_NOT_REACHED(); } +timeval TimeManagement::now_as_timeval() +{ + return { s_time_management->epoch_time(), (suseconds_t)s_time_management->ticks_this_second() * (suseconds_t)1000 }; +} + Vector TimeManagement::scan_and_initialize_periodic_timers() { bool should_enable = is_hpet_periodic_mode_allowed(); diff --git a/Kernel/Time/TimeManagement.h b/Kernel/Time/TimeManagement.h index 7571295424..c09159cc6c 100644 --- a/Kernel/Time/TimeManagement.h +++ b/Kernel/Time/TimeManagement.h @@ -60,6 +60,8 @@ public: static bool is_hpet_periodic_mode_allowed(); + static timeval now_as_timeval(); + private: explicit TimeManagement(bool probe_non_legacy_hardware_timers); bool probe_and_set_legacy_hardware_timers();