summaryrefslogtreecommitdiffstats
path: root/src/core/memory.h
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2019-11-26 18:33:20 +0100
committerLioncash <mathew1800@gmail.com>2019-11-27 03:53:34 +0100
commit4c2ed2706e3579ec1304907dad0d45673768e1fc (patch)
tree89f72c13ad6ab374a4e2d2d475b1e03320de7066 /src/core/memory.h
parentMerge pull request #3143 from ReinUsesLisp/indexing-bug (diff)
downloadyuzu-4c2ed2706e3579ec1304907dad0d45673768e1fc.tar
yuzu-4c2ed2706e3579ec1304907dad0d45673768e1fc.tar.gz
yuzu-4c2ed2706e3579ec1304907dad0d45673768e1fc.tar.bz2
yuzu-4c2ed2706e3579ec1304907dad0d45673768e1fc.tar.lz
yuzu-4c2ed2706e3579ec1304907dad0d45673768e1fc.tar.xz
yuzu-4c2ed2706e3579ec1304907dad0d45673768e1fc.tar.zst
yuzu-4c2ed2706e3579ec1304907dad0d45673768e1fc.zip
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);