diff options
author | bunnei <bunneidev@gmail.com> | 2020-01-31 05:33:02 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-31 05:33:02 +0100 |
commit | 6b5b01b29f51cf74c0735867f800afb9672729d9 (patch) | |
tree | 21f251c154835bc82f24a9b82a048f45e0495a7b /src/core | |
parent | Merge pull request #3365 from yuzu-emu/revert-3151-fix-korean (diff) | |
parent | kernel/physical_core: Make use of std::unique_ptr (diff) | |
download | yuzu-6b5b01b29f51cf74c0735867f800afb9672729d9.tar yuzu-6b5b01b29f51cf74c0735867f800afb9672729d9.tar.gz yuzu-6b5b01b29f51cf74c0735867f800afb9672729d9.tar.bz2 yuzu-6b5b01b29f51cf74c0735867f800afb9672729d9.tar.lz yuzu-6b5b01b29f51cf74c0735867f800afb9672729d9.tar.xz yuzu-6b5b01b29f51cf74c0735867f800afb9672729d9.tar.zst yuzu-6b5b01b29f51cf74c0735867f800afb9672729d9.zip |
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/cpu_manager.cpp | 2 | ||||
-rw-r--r-- | src/core/hle/kernel/kernel.cpp | 8 | ||||
-rw-r--r-- | src/core/hle/kernel/physical_core.cpp | 9 | ||||
-rw-r--r-- | src/core/hle/kernel/physical_core.h | 15 |
4 files changed, 17 insertions, 17 deletions
diff --git a/src/core/cpu_manager.cpp b/src/core/cpu_manager.cpp index 752534868..70ddbdcca 100644 --- a/src/core/cpu_manager.cpp +++ b/src/core/cpu_manager.cpp @@ -2,14 +2,12 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included. -#include "common/assert.h" #include "core/arm/exclusive_monitor.h" #include "core/core.h" #include "core/core_manager.h" #include "core/core_timing.h" #include "core/cpu_manager.h" #include "core/gdbstub/gdbstub.h" -#include "core/settings.h" namespace Core { diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index 0cf3c8f70..edd4c4259 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp @@ -101,7 +101,7 @@ struct KernelCore::Impl { void Initialize(KernelCore& kernel) { Shutdown(); - InitializePhysicalCores(kernel); + InitializePhysicalCores(); InitializeSystemResourceLimit(kernel); InitializeThreads(); InitializePreemption(); @@ -131,14 +131,14 @@ struct KernelCore::Impl { } cores.clear(); - exclusive_monitor.reset(nullptr); + exclusive_monitor.reset(); } - void InitializePhysicalCores(KernelCore& kernel) { + void InitializePhysicalCores() { exclusive_monitor = Core::MakeExclusiveMonitor(system.Memory(), global_scheduler.CpuCoresCount()); for (std::size_t i = 0; i < global_scheduler.CpuCoresCount(); i++) { - cores.emplace_back(system, kernel, i, *exclusive_monitor); + cores.emplace_back(system, i, *exclusive_monitor); } } diff --git a/src/core/hle/kernel/physical_core.cpp b/src/core/hle/kernel/physical_core.cpp index 896a1a87a..9303dd273 100644 --- a/src/core/hle/kernel/physical_core.cpp +++ b/src/core/hle/kernel/physical_core.cpp @@ -10,24 +10,23 @@ #include "core/arm/exclusive_monitor.h" #include "core/arm/unicorn/arm_unicorn.h" #include "core/core.h" -#include "core/hle/kernel/kernel.h" #include "core/hle/kernel/physical_core.h" #include "core/hle/kernel/scheduler.h" #include "core/hle/kernel/thread.h" namespace Kernel { -PhysicalCore::PhysicalCore(Core::System& system, KernelCore& kernel, std::size_t id, +PhysicalCore::PhysicalCore(Core::System& system, std::size_t id, Core::ExclusiveMonitor& exclusive_monitor) - : core_index{id}, kernel{kernel} { + : core_index{id} { #ifdef ARCHITECTURE_x86_64 - arm_interface = std::make_shared<Core::ARM_Dynarmic>(system, exclusive_monitor, core_index); + arm_interface = std::make_unique<Core::ARM_Dynarmic>(system, exclusive_monitor, core_index); #else arm_interface = std::make_shared<Core::ARM_Unicorn>(system); LOG_WARNING(Core, "CPU JIT requested, but Dynarmic not available"); #endif - scheduler = std::make_shared<Kernel::Scheduler>(system, *arm_interface, core_index); + scheduler = std::make_unique<Kernel::Scheduler>(system, *arm_interface, core_index); } PhysicalCore::~PhysicalCore() = default; diff --git a/src/core/hle/kernel/physical_core.h b/src/core/hle/kernel/physical_core.h index fbef0801f..4c32c0f1b 100644 --- a/src/core/hle/kernel/physical_core.h +++ b/src/core/hle/kernel/physical_core.h @@ -21,11 +21,15 @@ namespace Kernel { class PhysicalCore { public: - PhysicalCore(Core::System& system, KernelCore& kernel, std::size_t id, - Core::ExclusiveMonitor& exclusive_monitor); - + PhysicalCore(Core::System& system, std::size_t id, Core::ExclusiveMonitor& exclusive_monitor); ~PhysicalCore(); + PhysicalCore(const PhysicalCore&) = delete; + PhysicalCore& operator=(const PhysicalCore&) = delete; + + PhysicalCore(PhysicalCore&&) = default; + PhysicalCore& operator=(PhysicalCore&&) = default; + /// Execute current jit state void Run(); /// Execute a single instruction in current jit. @@ -66,9 +70,8 @@ public: private: std::size_t core_index; - KernelCore& kernel; - std::shared_ptr<Core::ARM_Interface> arm_interface; - std::shared_ptr<Kernel::Scheduler> scheduler; + std::unique_ptr<Core::ARM_Interface> arm_interface; + std::unique_ptr<Kernel::Scheduler> scheduler; }; } // namespace Kernel |