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/core_manager.h | 65 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/core/core_manager.h (limited to 'src/core/core_manager.h') diff --git a/src/core/core_manager.h b/src/core/core_manager.h new file mode 100644 index 000000000..7bc9679c1 --- /dev/null +++ b/src/core/core_manager.h @@ -0,0 +1,65 @@ +// Copyright 2018 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include +#include +#include +#include +#include +#include "common/common_types.h" + +namespace Kernel { +class GlobalScheduler; +class PhysicalCore; +} // namespace Kernel + +namespace Core { +class System; +} + +namespace Core::Timing { +class CoreTiming; +} + +namespace Memory { +class Memory; +} + +namespace Core { + +constexpr unsigned NUM_CPU_CORES{4}; + +class CoreManager { +public: + CoreManager(System& system, std::size_t core_index); + ~CoreManager(); + + void RunLoop(bool tight_loop = true); + + void SingleStep(); + + void PrepareReschedule(); + + bool IsMainCore() const { + return core_index == 0; + } + + std::size_t CoreIndex() const { + return core_index; + } + +private: + void Reschedule(); + + Kernel::GlobalScheduler& global_scheduler; + Kernel::PhysicalCore& physical_core; + Timing::CoreTiming& core_timing; + + std::atomic reschedule_pending = false; + std::size_t core_index; +}; + +} // namespace Core -- 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/core_manager.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'src/core/core_manager.h') diff --git a/src/core/core_manager.h b/src/core/core_manager.h index 7bc9679c1..b14e723d7 100644 --- a/src/core/core_manager.h +++ b/src/core/core_manager.h @@ -5,10 +5,8 @@ #pragma once #include -#include #include #include -#include #include "common/common_types.h" namespace Kernel { -- cgit v1.2.3