From 340167676828bf4595bc267c927f156a11b288aa Mon Sep 17 00:00:00 2001 From: bunnei Date: Fri, 2 Apr 2021 17:06:21 -0700 Subject: core: memory: Add a work-around to allocate and access kernel memory regions by vaddr. --- src/core/memory.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/core/memory.h') diff --git a/src/core/memory.h b/src/core/memory.h index 6d34fcfe2..9a706a9ac 100644 --- a/src/core/memory.h +++ b/src/core/memory.h @@ -58,6 +58,11 @@ public: Memory(Memory&&) = default; Memory& operator=(Memory&&) = default; + /** + * Resets the state of the Memory system. + */ + void Reset(); + /** * Changes the currently active page table to that of the given process instance. * @@ -116,6 +121,15 @@ public: */ u8* GetPointer(VAddr vaddr); + /** + * Gets a pointer to the start of a kernel heap allocated memory region. Will allocate one if it + * does not already exist. + * + * @param start_vaddr Start virtual address for the memory region. + * @param size Size of the memory region. + */ + u8* GetKernelBuffer(VAddr start_vaddr, size_t size); + template T* GetPointer(VAddr vaddr) { return reinterpret_cast(GetPointer(vaddr)); @@ -524,6 +538,8 @@ public: void RasterizerMarkRegionCached(VAddr vaddr, u64 size, bool cached); private: + Core::System& system; + struct Impl; std::unique_ptr impl; }; -- cgit v1.2.3