|
|
|
@ -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; |
|
|
|
|