summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/kernel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
-rw-r--r--src/core/hle/kernel/kernel.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index f64e07081..825fab694 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -26,9 +26,9 @@
26#include "core/cpu_manager.h" 26#include "core/cpu_manager.h"
27#include "core/device_memory.h" 27#include "core/device_memory.h"
28#include "core/hardware_properties.h" 28#include "core/hardware_properties.h"
29#include "core/hle/kernel/handle_table.h"
30#include "core/hle/kernel/init/init_slab_setup.h" 29#include "core/hle/kernel/init/init_slab_setup.h"
31#include "core/hle/kernel/k_client_port.h" 30#include "core/hle/kernel/k_client_port.h"
31#include "core/hle/kernel/k_handle_table.h"
32#include "core/hle/kernel/k_memory_layout.h" 32#include "core/hle/kernel/k_memory_layout.h"
33#include "core/hle/kernel/k_memory_manager.h" 33#include "core/hle/kernel/k_memory_manager.h"
34#include "core/hle/kernel/k_process.h" 34#include "core/hle/kernel/k_process.h"
@@ -52,8 +52,7 @@ namespace Kernel {
52 52
53struct KernelCore::Impl { 53struct KernelCore::Impl {
54 explicit Impl(Core::System& system, KernelCore& kernel) 54 explicit Impl(Core::System& system, KernelCore& kernel)
55 : time_manager{system}, global_handle_table{kernel}, 55 : time_manager{system}, object_list_container{kernel}, system{system} {}
56 object_list_container{kernel}, system{system} {}
57 56
58 void SetMulticore(bool is_multicore) { 57 void SetMulticore(bool is_multicore) {
59 this->is_multicore = is_multicore; 58 this->is_multicore = is_multicore;
@@ -61,6 +60,7 @@ struct KernelCore::Impl {
61 60
62 void Initialize(KernelCore& kernel) { 61 void Initialize(KernelCore& kernel) {
63 global_scheduler_context = std::make_unique<Kernel::GlobalSchedulerContext>(kernel); 62 global_scheduler_context = std::make_unique<Kernel::GlobalSchedulerContext>(kernel);
63 global_handle_table = std::make_unique<Kernel::KHandleTable>(kernel);
64 64
65 service_thread_manager = 65 service_thread_manager =
66 std::make_unique<Common::ThreadWorker>(1, "yuzu:ServiceThreadManager"); 66 std::make_unique<Common::ThreadWorker>(1, "yuzu:ServiceThreadManager");
@@ -118,7 +118,7 @@ struct KernelCore::Impl {
118 current_process = nullptr; 118 current_process = nullptr;
119 } 119 }
120 120
121 global_handle_table.Clear(); 121 global_handle_table.reset();
122 122
123 preemption_event = nullptr; 123 preemption_event = nullptr;
124 124
@@ -648,7 +648,7 @@ struct KernelCore::Impl {
648 648
649 // This is the kernel's handle table or supervisor handle table which 649 // This is the kernel's handle table or supervisor handle table which
650 // stores all the objects in place. 650 // stores all the objects in place.
651 HandleTable global_handle_table; 651 std::unique_ptr<KHandleTable> global_handle_table;
652 652
653 KAutoObjectWithListContainer object_list_container; 653 KAutoObjectWithListContainer object_list_container;
654 654
@@ -722,7 +722,7 @@ KResourceLimit* KernelCore::GetSystemResourceLimit() {
722} 722}
723 723
724KScopedAutoObject<KThread> KernelCore::RetrieveThreadFromGlobalHandleTable(Handle handle) const { 724KScopedAutoObject<KThread> KernelCore::RetrieveThreadFromGlobalHandleTable(Handle handle) const {
725 return impl->global_handle_table.GetObject<KThread>(handle); 725 return impl->global_handle_table->GetObject<KThread>(handle);
726} 726}
727 727
728void KernelCore::AppendNewProcess(KProcess* process) { 728void KernelCore::AppendNewProcess(KProcess* process) {
@@ -876,12 +876,12 @@ u64 KernelCore::CreateNewUserProcessID() {
876 return impl->next_user_process_id++; 876 return impl->next_user_process_id++;
877} 877}
878 878
879Kernel::HandleTable& KernelCore::GlobalHandleTable() { 879KHandleTable& KernelCore::GlobalHandleTable() {
880 return impl->global_handle_table; 880 return *impl->global_handle_table;
881} 881}
882 882
883const Kernel::HandleTable& KernelCore::GlobalHandleTable() const { 883const KHandleTable& KernelCore::GlobalHandleTable() const {
884 return impl->global_handle_table; 884 return *impl->global_handle_table;
885} 885}
886 886
887void KernelCore::RegisterCoreThread(std::size_t core_id) { 887void KernelCore::RegisterCoreThread(std::size_t core_id) {