summaryrefslogtreecommitdiffstats
path: root/src/core/memory.h
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2023-12-26 05:21:08 +0100
committerLiam <byteslice@airmail.cc>2023-12-26 05:30:56 +0100
commitddda76f9b0d16e8a6fbc92db9e26f25843b647ed (patch)
tree3fd209d66b8503ca7f0cf6d15c5c065179c66076 /src/core/memory.h
parentMerge pull request #12394 from liamwhite/per-process-memory (diff)
downloadyuzu-ddda76f9b0d16e8a6fbc92db9e26f25843b647ed.tar
yuzu-ddda76f9b0d16e8a6fbc92db9e26f25843b647ed.tar.gz
yuzu-ddda76f9b0d16e8a6fbc92db9e26f25843b647ed.tar.bz2
yuzu-ddda76f9b0d16e8a6fbc92db9e26f25843b647ed.tar.lz
yuzu-ddda76f9b0d16e8a6fbc92db9e26f25843b647ed.tar.xz
yuzu-ddda76f9b0d16e8a6fbc92db9e26f25843b647ed.tar.zst
yuzu-ddda76f9b0d16e8a6fbc92db9e26f25843b647ed.zip
Diffstat (limited to 'src/core/memory.h')
-rw-r--r--src/core/memory.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/core/memory.h b/src/core/memory.h
index c1879e78f..3e4d03f57 100644
--- a/src/core/memory.h
+++ b/src/core/memory.h
@@ -86,7 +86,8 @@ public:
* @param perms The permissions to map the memory with.
*/
void MapMemoryRegion(Common::PageTable& page_table, Common::ProcessAddress base, u64 size,
- Common::PhysicalAddress target, Common::MemoryPermission perms);
+ Common::PhysicalAddress target, Common::MemoryPermission perms,
+ bool separate_heap);
/**
* Unmaps a region of the emulated process address space.
@@ -95,7 +96,8 @@ public:
* @param base The address to begin unmapping at.
* @param size The amount of bytes to unmap.
*/
- void UnmapRegion(Common::PageTable& page_table, Common::ProcessAddress base, u64 size);
+ void UnmapRegion(Common::PageTable& page_table, Common::ProcessAddress base, u64 size,
+ bool separate_heap);
/**
* Protects a region of the emulated process address space with the new permissions.
@@ -486,6 +488,7 @@ public:
void SetGPUDirtyManagers(std::span<Core::GPUDirtyMemoryManager> managers);
void InvalidateRegion(Common::ProcessAddress dest_addr, size_t size);
bool InvalidateNCE(Common::ProcessAddress vaddr, size_t size);
+ bool InvalidateSeparateHeap(void* fault_address);
void FlushRegion(Common::ProcessAddress dest_addr, size_t size);
private: