aboutsummaryrefslogtreecommitdiff
path: root/src/core/core.cpp
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2019-11-26 12:33:20 -0500
committerLioncash <mathew1800@gmail.com>2019-11-26 21:53:34 -0500
commit4c2ed2706e3579ec1304907dad0d45673768e1fc (patch)
tree89f72c13ad6ab374a4e2d2d475b1e03320de7066 /src/core/core.cpp
parent6df6caaf5f3b59a2d1e19a5148a64cc50c61223c (diff)
core/memory: Introduce skeleton of Memory class
Currently, the main memory management code is one of the remaining places where we have global state. The next series of changes will aim to rectify this. This change simply introduces the main skeleton of the class that will contain all the necessary state.
Diffstat (limited to 'src/core/core.cpp')
-rw-r--r--src/core/core.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp
index eba17218a3..c45fb960c7 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -39,6 +39,7 @@
#include "core/hle/service/service.h"
#include "core/hle/service/sm/sm.h"
#include "core/loader/loader.h"
+#include "core/memory.h"
#include "core/memory/cheat_engine.h"
#include "core/perf_stats.h"
#include "core/reporter.h"
@@ -112,8 +113,8 @@ FileSys::VirtualFile GetGameFileFromPath(const FileSys::VirtualFilesystem& vfs,
}
struct System::Impl {
explicit Impl(System& system)
- : kernel{system}, fs_controller{system}, cpu_core_manager{system}, reporter{system},
- applet_manager{system} {}
+ : kernel{system}, fs_controller{system}, memory{system},
+ cpu_core_manager{system}, reporter{system}, applet_manager{system} {}
Cpu& CurrentCpuCore() {
return cpu_core_manager.GetCurrentCore();
@@ -341,7 +342,8 @@ struct System::Impl {
std::unique_ptr<VideoCore::RendererBase> renderer;
std::unique_ptr<Tegra::GPU> gpu_core;
std::shared_ptr<Tegra::DebugContext> debug_context;
- std::unique_ptr<Core::Hardware::InterruptManager> interrupt_manager;
+ std::unique_ptr<Hardware::InterruptManager> interrupt_manager;
+ Memory::Memory memory;
CpuCoreManager cpu_core_manager;
bool is_powered_on = false;
bool exit_lock = false;
@@ -498,6 +500,14 @@ const ExclusiveMonitor& System::Monitor() const {
return impl->cpu_core_manager.GetExclusiveMonitor();
}
+Memory::Memory& System::Memory() {
+ return impl->memory;
+}
+
+const Memory::Memory& System::Memory() const {
+ return impl->memory;
+}
+
Tegra::GPU& System::GPU() {
return *impl->gpu_core;
}