summaryrefslogtreecommitdiff
path: root/src/core/device_memory.h
diff options
context:
space:
mode:
authorGravatar Fernando Sahmkow2023-12-21 00:04:03 +0100
committerGravatar Liam2024-01-18 21:12:30 -0500
commit2f0418c10134b4c8e5ae47ace623b5db57c0435c (patch)
tree775c82e0b3b07090b1a3c83859bebe2c0f0e1369 /src/core/device_memory.h
parentMerge pull request #12702 from german77/android-input (diff)
downloadyuzu-2f0418c10134b4c8e5ae47ace623b5db57c0435c.tar.gz
yuzu-2f0418c10134b4c8e5ae47ace623b5db57c0435c.tar.xz
yuzu-2f0418c10134b4c8e5ae47ace623b5db57c0435c.zip
Core: Initial implementation of device memory mapping
Diffstat (limited to 'src/core/device_memory.h')
-rw-r--r--src/core/device_memory.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/core/device_memory.h b/src/core/device_memory.h
index 13388b73e..11bf0e326 100644
--- a/src/core/device_memory.h
+++ b/src/core/device_memory.h
@@ -32,6 +32,12 @@ public:
32 } 32 }
33 33
34 template <typename T> 34 template <typename T>
35 PAddr GetRawPhysicalAddr(const T* ptr) const {
36 return static_cast<PAddr>(reinterpret_cast<uintptr_t>(ptr) -
37 reinterpret_cast<uintptr_t>(buffer.BackingBasePointer()));
38 }
39
40 template <typename T>
35 T* GetPointer(Common::PhysicalAddress addr) { 41 T* GetPointer(Common::PhysicalAddress addr) {
36 return reinterpret_cast<T*>(buffer.BackingBasePointer() + 42 return reinterpret_cast<T*>(buffer.BackingBasePointer() +
37 (GetInteger(addr) - DramMemoryMap::Base)); 43 (GetInteger(addr) - DramMemoryMap::Base));
@@ -43,6 +49,16 @@ public:
43 (GetInteger(addr) - DramMemoryMap::Base)); 49 (GetInteger(addr) - DramMemoryMap::Base));
44 } 50 }
45 51
52 template <typename T>
53 T* GetPointerFromRaw(PAddr addr) {
54 return reinterpret_cast<T*>(buffer.BackingBasePointer() + addr);
55 }
56
57 template <typename T>
58 const T* GetPointerFromRaw(PAddr addr) const {
59 return reinterpret_cast<T*>(buffer.BackingBasePointer() + addr);
60 }
61
46 Common::HostMemory buffer; 62 Common::HostMemory buffer;
47}; 63};
48 64