summaryrefslogtreecommitdiffstats
path: root/src/core/memory.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/memory.h')
-rw-r--r--src/core/memory.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/core/memory.h b/src/core/memory.h
index 09008e1dd..c690df3c3 100644
--- a/src/core/memory.h
+++ b/src/core/memory.h
@@ -8,6 +8,10 @@
#include <string>
#include "common/common_types.h"
+namespace Core {
+class System;
+}
+
namespace Kernel {
class Process;
}
@@ -36,6 +40,23 @@ enum : VAddr {
KERNEL_REGION_END = KERNEL_REGION_VADDR + KERNEL_REGION_SIZE,
};
+/// Central class that handles all memory operations and state.
+class Memory {
+public:
+ explicit Memory(Core::System& system);
+ ~Memory();
+
+ Memory(const Memory&) = delete;
+ Memory& operator=(const Memory&) = delete;
+
+ Memory(Memory&&) = default;
+ Memory& operator=(Memory&&) = default;
+
+private:
+ struct Impl;
+ std::unique_ptr<Impl> impl;
+};
+
/// Changes the currently active page table to that of
/// the given process instance.
void SetCurrentPageTable(Kernel::Process& process);