summaryrefslogtreecommitdiff
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 @@
8#include <string> 8#include <string>
9#include "common/common_types.h" 9#include "common/common_types.h"
10 10
11namespace Core {
12class System;
13}
14
11namespace Kernel { 15namespace Kernel {
12class Process; 16class Process;
13} 17}
@@ -36,6 +40,23 @@ enum : VAddr {
36 KERNEL_REGION_END = KERNEL_REGION_VADDR + KERNEL_REGION_SIZE, 40 KERNEL_REGION_END = KERNEL_REGION_VADDR + KERNEL_REGION_SIZE,
37}; 41};
38 42
43/// Central class that handles all memory operations and state.
44class Memory {
45public:
46 explicit Memory(Core::System& system);
47 ~Memory();
48
49 Memory(const Memory&) = delete;
50 Memory& operator=(const Memory&) = delete;
51
52 Memory(Memory&&) = default;
53 Memory& operator=(Memory&&) = default;
54
55private:
56 struct Impl;
57 std::unique_ptr<Impl> impl;
58};
59
39/// Changes the currently active page table to that of 60/// Changes the currently active page table to that of
40/// the given process instance. 61/// the given process instance.
41void SetCurrentPageTable(Kernel::Process& process); 62void SetCurrentPageTable(Kernel::Process& process);