summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/kernel.cpp
diff options
context:
space:
mode:
authorGravatar Liam2022-12-18 16:50:02 -0500
committerGravatar Liam2022-12-18 20:21:24 -0500
commitc770f25ccb4755f6a6861037fbfdfdac55191348 (patch)
treeeccc5140afa7a979800e8c27c1f4a2847adb283f /src/core/hle/kernel/kernel.cpp
parentkernel: add KHardwareTimer (diff)
downloadyuzu-c770f25ccb4755f6a6861037fbfdfdac55191348.tar.gz
yuzu-c770f25ccb4755f6a6861037fbfdfdac55191348.tar.xz
yuzu-c770f25ccb4755f6a6861037fbfdfdac55191348.zip
kernel: remove TimeManager
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
-rw-r--r--src/core/hle/kernel/kernel.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index 0eb74a422..b75bac5df 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -26,6 +26,7 @@
26#include "core/hle/kernel/k_client_port.h" 26#include "core/hle/kernel/k_client_port.h"
27#include "core/hle/kernel/k_dynamic_resource_manager.h" 27#include "core/hle/kernel/k_dynamic_resource_manager.h"
28#include "core/hle/kernel/k_handle_table.h" 28#include "core/hle/kernel/k_handle_table.h"
29#include "core/hle/kernel/k_hardware_timer.h"
29#include "core/hle/kernel/k_memory_layout.h" 30#include "core/hle/kernel/k_memory_layout.h"
30#include "core/hle/kernel/k_memory_manager.h" 31#include "core/hle/kernel/k_memory_manager.h"
31#include "core/hle/kernel/k_page_buffer.h" 32#include "core/hle/kernel/k_page_buffer.h"
@@ -39,7 +40,6 @@
39#include "core/hle/kernel/kernel.h" 40#include "core/hle/kernel/kernel.h"
40#include "core/hle/kernel/physical_core.h" 41#include "core/hle/kernel/physical_core.h"
41#include "core/hle/kernel/service_thread.h" 42#include "core/hle/kernel/service_thread.h"
42#include "core/hle/kernel/time_manager.h"
43#include "core/hle/result.h" 43#include "core/hle/result.h"
44#include "core/hle/service/sm/sm.h" 44#include "core/hle/service/sm/sm.h"
45#include "core/memory.h" 45#include "core/memory.h"
@@ -55,7 +55,7 @@ struct KernelCore::Impl {
55 static constexpr size_t ReservedDynamicPageCount = 64; 55 static constexpr size_t ReservedDynamicPageCount = 64;
56 56
57 explicit Impl(Core::System& system_, KernelCore& kernel_) 57 explicit Impl(Core::System& system_, KernelCore& kernel_)
58 : time_manager{system_}, service_threads_manager{1, "ServiceThreadsManager"}, 58 : service_threads_manager{1, "ServiceThreadsManager"},
59 service_thread_barrier{2}, system{system_} {} 59 service_thread_barrier{2}, system{system_} {}
60 60
61 void SetMulticore(bool is_multi) { 61 void SetMulticore(bool is_multi) {
@@ -63,6 +63,9 @@ struct KernelCore::Impl {
63 } 63 }
64 64
65 void Initialize(KernelCore& kernel) { 65 void Initialize(KernelCore& kernel) {
66 hardware_timer = std::make_unique<Kernel::KHardwareTimer>(kernel);
67 hardware_timer->Initialize();
68
66 global_object_list_container = std::make_unique<KAutoObjectWithListContainer>(kernel); 69 global_object_list_container = std::make_unique<KAutoObjectWithListContainer>(kernel);
67 global_scheduler_context = std::make_unique<Kernel::GlobalSchedulerContext>(kernel); 70 global_scheduler_context = std::make_unique<Kernel::GlobalSchedulerContext>(kernel);
68 global_handle_table = std::make_unique<Kernel::KHandleTable>(kernel); 71 global_handle_table = std::make_unique<Kernel::KHandleTable>(kernel);
@@ -193,6 +196,9 @@ struct KernelCore::Impl {
193 // Ensure that the object list container is finalized and properly shutdown. 196 // Ensure that the object list container is finalized and properly shutdown.
194 global_object_list_container->Finalize(); 197 global_object_list_container->Finalize();
195 global_object_list_container.reset(); 198 global_object_list_container.reset();
199
200 hardware_timer->Finalize();
201 hardware_timer.reset();
196 } 202 }
197 203
198 void CloseServices() { 204 void CloseServices() {
@@ -832,7 +838,7 @@ struct KernelCore::Impl {
832 std::vector<KProcess*> process_list; 838 std::vector<KProcess*> process_list;
833 std::atomic<KProcess*> current_process{}; 839 std::atomic<KProcess*> current_process{};
834 std::unique_ptr<Kernel::GlobalSchedulerContext> global_scheduler_context; 840 std::unique_ptr<Kernel::GlobalSchedulerContext> global_scheduler_context;
835 Kernel::TimeManager time_manager; 841 std::unique_ptr<Kernel::KHardwareTimer> hardware_timer;
836 842
837 Init::KSlabResourceCounts slab_resource_counts{}; 843 Init::KSlabResourceCounts slab_resource_counts{};
838 KResourceLimit* system_resource_limit{}; 844 KResourceLimit* system_resource_limit{};
@@ -1019,12 +1025,8 @@ Kernel::KScheduler* KernelCore::CurrentScheduler() {
1019 return impl->schedulers[core_id].get(); 1025 return impl->schedulers[core_id].get();
1020} 1026}
1021 1027
1022Kernel::TimeManager& KernelCore::TimeManager() { 1028Kernel::KHardwareTimer& KernelCore::HardwareTimer() {
1023 return impl->time_manager; 1029 return *impl->hardware_timer;
1024}
1025
1026const Kernel::TimeManager& KernelCore::TimeManager() const {
1027 return impl->time_manager;
1028} 1030}
1029 1031
1030Core::ExclusiveMonitor& KernelCore::GetExclusiveMonitor() { 1032Core::ExclusiveMonitor& KernelCore::GetExclusiveMonitor() {