summaryrefslogtreecommitdiff
path: root/src/core/core.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/core.cpp')
-rw-r--r--src/core/core.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp
index 4bc71c7a7..f58d05c6b 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -114,7 +114,7 @@ FileSys::VirtualFile GetGameFileFromPath(const FileSys::VirtualFilesystem& vfs,
114} 114}
115struct System::Impl { 115struct System::Impl {
116 explicit Impl(System& system) 116 explicit Impl(System& system)
117 : kernel{system}, device_memory{system}, fs_controller{system}, memory{system}, 117 : kernel{system}, fs_controller{system}, memory{system},
118 cpu_manager{system}, reporter{system}, applet_manager{system} {} 118 cpu_manager{system}, reporter{system}, applet_manager{system} {}
119 119
120 CoreManager& CurrentCoreManager() { 120 CoreManager& CurrentCoreManager() {
@@ -141,6 +141,8 @@ struct System::Impl {
141 ResultStatus Init(System& system, Frontend::EmuWindow& emu_window) { 141 ResultStatus Init(System& system, Frontend::EmuWindow& emu_window) {
142 LOG_DEBUG(HW_Memory, "initialized OK"); 142 LOG_DEBUG(HW_Memory, "initialized OK");
143 143
144 device_memory = std::make_unique<DeviceMemory>(system);
145
144 core_timing.Initialize(); 146 core_timing.Initialize();
145 kernel.Initialize(); 147 kernel.Initialize();
146 cpu_manager.Initialize(); 148 cpu_manager.Initialize();
@@ -277,6 +279,7 @@ struct System::Impl {
277 telemetry_session.reset(); 279 telemetry_session.reset();
278 perf_stats.reset(); 280 perf_stats.reset();
279 gpu_core.reset(); 281 gpu_core.reset();
282 device_memory.reset();
280 283
281 // Close all CPU/threading state 284 // Close all CPU/threading state
282 cpu_manager.Shutdown(); 285 cpu_manager.Shutdown();
@@ -338,7 +341,6 @@ struct System::Impl {
338 341
339 Timing::CoreTiming core_timing; 342 Timing::CoreTiming core_timing;
340 Kernel::KernelCore kernel; 343 Kernel::KernelCore kernel;
341 DeviceMemory device_memory;
342 /// RealVfsFilesystem instance 344 /// RealVfsFilesystem instance
343 FileSys::VirtualFilesystem virtual_filesystem; 345 FileSys::VirtualFilesystem virtual_filesystem;
344 /// ContentProviderUnion instance 346 /// ContentProviderUnion instance
@@ -348,6 +350,7 @@ struct System::Impl {
348 std::unique_ptr<Loader::AppLoader> app_loader; 350 std::unique_ptr<Loader::AppLoader> app_loader;
349 std::unique_ptr<Tegra::GPU> gpu_core; 351 std::unique_ptr<Tegra::GPU> gpu_core;
350 std::unique_ptr<Hardware::InterruptManager> interrupt_manager; 352 std::unique_ptr<Hardware::InterruptManager> interrupt_manager;
353 std::unique_ptr<DeviceMemory> device_memory;
351 Core::Memory::Memory memory; 354 Core::Memory::Memory memory;
352 CpuManager cpu_manager; 355 CpuManager cpu_manager;
353 bool is_powered_on = false; 356 bool is_powered_on = false;
@@ -475,11 +478,11 @@ Kernel::Process* System::CurrentProcess() {
475} 478}
476 479
477DeviceMemory& System::GetDeviceMemory() { 480DeviceMemory& System::GetDeviceMemory() {
478 return impl->device_memory; 481 return *impl->device_memory;
479} 482}
480 483
481const DeviceMemory& System::GetDeviceMemory() const { 484const DeviceMemory& System::GetDeviceMemory() const {
482 return impl->device_memory; 485 return *impl->device_memory;
483} 486}
484 487
485const Kernel::Process* System::CurrentProcess() const { 488const Kernel::Process* System::CurrentProcess() const {