diff options
| author | 2020-04-08 18:55:29 -0400 | |
|---|---|---|
| committer | 2020-04-17 00:59:32 -0400 | |
| commit | c53454ff463b7919a835ff91cdf28cab78c9a35f (patch) | |
| tree | 8290f2e85e4237f2a145f58661e487ac7941671c /src/core/core.cpp | |
| parent | kernel: shared_memory: Refactor for new VMM. (diff) | |
| download | yuzu-c53454ff463b7919a835ff91cdf28cab78c9a35f.tar.gz yuzu-c53454ff463b7919a835ff91cdf28cab78c9a35f.tar.xz yuzu-c53454ff463b7919a835ff91cdf28cab78c9a35f.zip | |
core: Construct/Destruct DeviceMemory on Init/Shutdown.
Diffstat (limited to 'src/core/core.cpp')
| -rw-r--r-- | src/core/core.cpp | 11 |
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 | } |
| 115 | struct System::Impl { | 115 | struct 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 | ||
| 477 | DeviceMemory& System::GetDeviceMemory() { | 480 | DeviceMemory& System::GetDeviceMemory() { |
| 478 | return impl->device_memory; | 481 | return *impl->device_memory; |
| 479 | } | 482 | } |
| 480 | 483 | ||
| 481 | const DeviceMemory& System::GetDeviceMemory() const { | 484 | const DeviceMemory& System::GetDeviceMemory() const { |
| 482 | return impl->device_memory; | 485 | return *impl->device_memory; |
| 483 | } | 486 | } |
| 484 | 487 | ||
| 485 | const Kernel::Process* System::CurrentProcess() const { | 488 | const Kernel::Process* System::CurrentProcess() const { |