aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/hle/kernel/vm_manager.h
diff options
context:
space:
mode:
authorGravatar Yuri Kunde Schlesner <yuriks@yuriks.net>2015-07-09 22:52:15 -0300
committerGravatar Yuri Kunde Schlesner <yuriks@yuriks.net>2015-07-11 23:54:42 -0300
commit5c5cf2f8e000d1bf4fc12ff20351aa60367cb563 (patch)
tree2b233263cff7c001506f660373e2364c8e702637 /src/core/hle/kernel/vm_manager.h
parent51820691e77b816da7d4d66de68e3c0b79f2781a (diff)
Core: Properly configure address space when loading a binary
The code now properly configures the process image to match the loaded binary segments (code, rodata, data) instead of just blindly allocating a large chunk of dummy memory.
Diffstat (limited to 'src/core/hle/kernel/vm_manager.h')
-rw-r--r--src/core/hle/kernel/vm_manager.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/core/hle/kernel/vm_manager.h b/src/core/hle/kernel/vm_manager.h
index 271e2333..b3795a94 100644
--- a/src/core/hle/kernel/vm_manager.h
+++ b/src/core/hle/kernel/vm_manager.h
@@ -101,7 +101,7 @@ struct VirtualMemoryArea {
* - http://duartes.org/gustavo/blog/post/how-the-kernel-manages-your-memory/
* - http://duartes.org/gustavo/blog/post/page-cache-the-affair-between-memory-and-files/
*/
-class VMManager {
+class VMManager final {
// TODO(yuriks): Make page tables switchable to support multiple VMManagers
public:
/**
@@ -121,6 +121,7 @@ public:
using VMAHandle = decltype(vma_map)::const_iterator;
VMManager();
+ ~VMManager();
/// Clears the address space map, re-initializing with a single free area.
void Reset();
@@ -168,6 +169,9 @@ public:
/// Changes the permissions of the given VMA.
void Reprotect(VMAHandle vma, VMAPermission new_perms);
+ /// Dumps the address space layout to the log, for debugging
+ void LogLayout() const;
+
private:
using VMAIter = decltype(vma_map)::iterator;