diff options
| author | Liam <byteslice@airmail.cc> | 2023-12-11 20:21:23 -0500 |
|---|---|---|
| committer | Liam <byteslice@airmail.cc> | 2023-12-22 21:52:49 -0500 |
| commit | 419055e484f0f0073d5832f7ded5fd3a3e5ad7de (patch) | |
| tree | 81ff70e80fff780d6fb92f78a2df18cfc323df78 /src/core/hle/kernel/k_process.h | |
| parent | 91290b9be4e99a9890c6545e327f600484e39914 (diff) | |
kernel: instantiate memory separately for each guest process
Diffstat (limited to 'src/core/hle/kernel/k_process.h')
| -rw-r--r-- | src/core/hle/kernel/k_process.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/core/hle/kernel/k_process.h b/src/core/hle/kernel/k_process.h index 4b114e39b..53c0e3316 100644 --- a/src/core/hle/kernel/k_process.h +++ b/src/core/hle/kernel/k_process.h @@ -7,6 +7,7 @@ #include "core/arm/arm_interface.h" #include "core/file_sys/program_metadata.h" +#include "core/gpu_dirty_memory_manager.h" #include "core/hle/kernel/code_set.h" #include "core/hle/kernel/k_address_arbiter.h" #include "core/hle/kernel/k_capabilities.h" @@ -17,6 +18,7 @@ #include "core/hle/kernel/k_system_resource.h" #include "core/hle/kernel/k_thread.h" #include "core/hle/kernel/k_thread_local_page.h" +#include "core/memory.h" namespace Kernel { @@ -126,6 +128,9 @@ private: #ifdef HAS_NCE std::unordered_map<u64, u64> m_post_handlers{}; #endif + std::array<Core::GPUDirtyMemoryManager, Core::Hardware::NUM_CPU_CORES> m_dirty_memory_managers; + std::unique_ptr<Core::ExclusiveMonitor> m_exclusive_monitor; + Core::Memory::Memory m_memory; private: Result StartTermination(); @@ -502,7 +507,15 @@ public: void InitializeInterfaces(); - Core::Memory::Memory& GetMemory() const; + Core::Memory::Memory& GetMemory() { + return m_memory; + } + + void GatherGPUDirtyMemory(std::function<void(VAddr, size_t)>& callback); + + Core::ExclusiveMonitor& GetExclusiveMonitor() const { + return *m_exclusive_monitor; + } public: // Overridden parent functions. |
