diff options
| author | 2022-12-18 16:50:02 -0500 | |
|---|---|---|
| committer | 2022-12-18 20:21:24 -0500 | |
| commit | c770f25ccb4755f6a6861037fbfdfdac55191348 (patch) | |
| tree | eccc5140afa7a979800e8c27c1f4a2847adb283f /src/core/hle/kernel/kernel.cpp | |
| parent | kernel: add KHardwareTimer (diff) | |
| download | yuzu-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.cpp | 20 |
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 | ||
| 1022 | Kernel::TimeManager& KernelCore::TimeManager() { | 1028 | Kernel::KHardwareTimer& KernelCore::HardwareTimer() { |
| 1023 | return impl->time_manager; | 1029 | return *impl->hardware_timer; |
| 1024 | } | ||
| 1025 | |||
| 1026 | const Kernel::TimeManager& KernelCore::TimeManager() const { | ||
| 1027 | return impl->time_manager; | ||
| 1028 | } | 1030 | } |
| 1029 | 1031 | ||
| 1030 | Core::ExclusiveMonitor& KernelCore::GetExclusiveMonitor() { | 1032 | Core::ExclusiveMonitor& KernelCore::GetExclusiveMonitor() { |