diff options
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
| -rw-r--r-- | src/core/hle/kernel/kernel.cpp | 20 |
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 | ||
| 53 | struct KernelCore::Impl { | 53 | struct 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 | ||
| 724 | KScopedAutoObject<KThread> KernelCore::RetrieveThreadFromGlobalHandleTable(Handle handle) const { | 724 | KScopedAutoObject<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 | ||
| 728 | void KernelCore::AppendNewProcess(KProcess* process) { | 728 | void 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 | ||
| 879 | Kernel::HandleTable& KernelCore::GlobalHandleTable() { | 879 | KHandleTable& KernelCore::GlobalHandleTable() { |
| 880 | return impl->global_handle_table; | 880 | return *impl->global_handle_table; |
| 881 | } | 881 | } |
| 882 | 882 | ||
| 883 | const Kernel::HandleTable& KernelCore::GlobalHandleTable() const { | 883 | const KHandleTable& KernelCore::GlobalHandleTable() const { |
| 884 | return impl->global_handle_table; | 884 | return *impl->global_handle_table; |
| 885 | } | 885 | } |
| 886 | 886 | ||
| 887 | void KernelCore::RegisterCoreThread(std::size_t core_id) { | 887 | void KernelCore::RegisterCoreThread(std::size_t core_id) { |