From 450341b397766caa32138882acb52790f4120963 Mon Sep 17 00:00:00 2001 From: Fernando Sahmkow Date: Sun, 26 Jan 2020 10:28:23 -0400 Subject: ArmInterface: Delegate Exclusive monitor factory to exclusive monitor interfasce. --- src/core/arm/exclusive_monitor.cpp | 13 +++++++++++++ src/core/arm/exclusive_monitor.h | 10 +++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) (limited to 'src/core/arm') diff --git a/src/core/arm/exclusive_monitor.cpp b/src/core/arm/exclusive_monitor.cpp index abd59ff4b..00e6a19d5 100644 --- a/src/core/arm/exclusive_monitor.cpp +++ b/src/core/arm/exclusive_monitor.cpp @@ -2,10 +2,23 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included. +#ifdef ARCHITECTURE_x86_64 +#include "core/arm/dynarmic/arm_dynarmic.h" +#endif #include "core/arm/exclusive_monitor.h" +#include "core/memory.h" namespace Core { ExclusiveMonitor::~ExclusiveMonitor() = default; +std::unique_ptr MakeExclusiveMonitor(Memory::Memory& memory, std::size_t num_cores) { +#ifdef ARCHITECTURE_x86_64 + return std::make_unique(memory, num_cores); +#else + // TODO(merry): Passthrough exclusive monitor + return nullptr; +#endif +} + } // namespace Core diff --git a/src/core/arm/exclusive_monitor.h b/src/core/arm/exclusive_monitor.h index f59aca667..18461f296 100644 --- a/src/core/arm/exclusive_monitor.h +++ b/src/core/arm/exclusive_monitor.h @@ -1,11 +1,17 @@ -// Copyright 2018 yuzu emulator team +// Copyright 2020 yuzu emulator team // Licensed under GPLv2 or any later version // Refer to the license.txt file included. #pragma once +#include + #include "common/common_types.h" +namespace Memory { +class Memory; +} + namespace Core { class ExclusiveMonitor { @@ -22,4 +28,6 @@ public: virtual bool ExclusiveWrite128(std::size_t core_index, VAddr vaddr, u128 value) = 0; }; +std::unique_ptr MakeExclusiveMonitor(Memory::Memory& memory, std::size_t num_cores); + } // namespace Core -- cgit v1.2.3 From e4a1ead897575ee9222b4fc1021aaa9cc58f12c8 Mon Sep 17 00:00:00 2001 From: Fernando Sahmkow Date: Sun, 26 Jan 2020 14:07:22 -0400 Subject: Core: Refactor CpuCoreManager to CpuManager and Cpu to Core Manager. This commit instends on better naming the new purpose of this classes. --- src/core/arm/dynarmic/arm_dynarmic.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/core/arm') diff --git a/src/core/arm/dynarmic/arm_dynarmic.cpp b/src/core/arm/dynarmic/arm_dynarmic.cpp index e825c0526..f468e57e4 100644 --- a/src/core/arm/dynarmic/arm_dynarmic.cpp +++ b/src/core/arm/dynarmic/arm_dynarmic.cpp @@ -10,7 +10,7 @@ #include "common/microprofile.h" #include "core/arm/dynarmic/arm_dynarmic.h" #include "core/core.h" -#include "core/core_cpu.h" +#include "core/core_manager.h" #include "core/core_timing.h" #include "core/core_timing_util.h" #include "core/gdbstub/gdbstub.h" -- cgit v1.2.3 From 2d1984c20c75e03ec79eeb3806b12efa1679b977 Mon Sep 17 00:00:00 2001 From: Fernando Sahmkow Date: Sun, 26 Jan 2020 16:14:18 -0400 Subject: System: Address Feedback --- src/core/arm/exclusive_monitor.cpp | 3 ++- src/core/arm/exclusive_monitor.h | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'src/core/arm') diff --git a/src/core/arm/exclusive_monitor.cpp b/src/core/arm/exclusive_monitor.cpp index 00e6a19d5..94570e520 100644 --- a/src/core/arm/exclusive_monitor.cpp +++ b/src/core/arm/exclusive_monitor.cpp @@ -12,7 +12,8 @@ namespace Core { ExclusiveMonitor::~ExclusiveMonitor() = default; -std::unique_ptr MakeExclusiveMonitor(Memory::Memory& memory, std::size_t num_cores) { +std::unique_ptr MakeExclusiveMonitor(Memory::Memory& memory, + std::size_t num_cores) { #ifdef ARCHITECTURE_x86_64 return std::make_unique(memory, num_cores); #else diff --git a/src/core/arm/exclusive_monitor.h b/src/core/arm/exclusive_monitor.h index 18461f296..4ef418b90 100644 --- a/src/core/arm/exclusive_monitor.h +++ b/src/core/arm/exclusive_monitor.h @@ -1,4 +1,4 @@ -// Copyright 2020 yuzu emulator team +// Copyright 2018 yuzu emulator team // Licensed under GPLv2 or any later version // Refer to the license.txt file included. @@ -28,6 +28,7 @@ public: virtual bool ExclusiveWrite128(std::size_t core_index, VAddr vaddr, u128 value) = 0; }; -std::unique_ptr MakeExclusiveMonitor(Memory::Memory& memory, std::size_t num_cores); +std::unique_ptr MakeExclusiveMonitor(Memory::Memory& memory, + std::size_t num_cores); } // namespace Core -- cgit v1.2.3