summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2020-01-31 05:33:02 +0100
committerGitHub <noreply@github.com>2020-01-31 05:33:02 +0100
commit6b5b01b29f51cf74c0735867f800afb9672729d9 (patch)
tree21f251c154835bc82f24a9b82a048f45e0495a7b
parentMerge pull request #3365 from yuzu-emu/revert-3151-fix-korean (diff)
parentkernel/physical_core: Make use of std::unique_ptr (diff)
downloadyuzu-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
-rw-r--r--src/core/cpu_manager.cpp2
-rw-r--r--src/core/hle/kernel/kernel.cpp8
-rw-r--r--src/core/hle/kernel/physical_core.cpp9
-rw-r--r--src/core/hle/kernel/physical_core.h15
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