diff options
author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2023-12-30 09:37:16 +0100 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2024-01-19 03:12:30 +0100 |
commit | d8f1ce2f7640200d92a12698c42029316ac1a611 (patch) | |
tree | 34c983ea5d60c58f0511f993090b70aebe778582 /src/core/device_memory_manager.h | |
parent | SMMU: Simplify and remove old code. (diff) | |
download | yuzu-d8f1ce2f7640200d92a12698c42029316ac1a611.tar yuzu-d8f1ce2f7640200d92a12698c42029316ac1a611.tar.gz yuzu-d8f1ce2f7640200d92a12698c42029316ac1a611.tar.bz2 yuzu-d8f1ce2f7640200d92a12698c42029316ac1a611.tar.lz yuzu-d8f1ce2f7640200d92a12698c42029316ac1a611.tar.xz yuzu-d8f1ce2f7640200d92a12698c42029316ac1a611.tar.zst yuzu-d8f1ce2f7640200d92a12698c42029316ac1a611.zip |
Diffstat (limited to 'src/core/device_memory_manager.h')
-rw-r--r-- | src/core/device_memory_manager.h | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/core/device_memory_manager.h b/src/core/device_memory_manager.h index 0273b78db..0f6599cfe 100644 --- a/src/core/device_memory_manager.h +++ b/src/core/device_memory_manager.h @@ -13,7 +13,6 @@ #include "common/scratch_buffer.h" #include "common/virtual_buffer.h" - namespace Core { class DeviceMemory; @@ -40,9 +39,17 @@ public: void AllocateFixed(DAddr start, size_t size); void Free(DAddr start, size_t size); - void Map(DAddr address, VAddr virtual_address, size_t size, size_t process_id); + void Map(DAddr address, VAddr virtual_address, size_t size, size_t process_id, + bool track = false); + void Unmap(DAddr address, size_t size); + void TrackContinuityImpl(DAddr address, VAddr virtual_address, size_t size, size_t process_id); + void TrackContinuity(DAddr address, VAddr virtual_address, size_t size, size_t process_id) { + std::scoped_lock lk(mapping_guard); + TrackContinuityImpl(address, virtual_address, size, process_id); + } + // Write / Read template <typename T> T* GetPointer(DAddr address); @@ -86,13 +93,8 @@ public: template <typename T> T Read(DAddr address) const; - const u8* GetSpan(const DAddr src_addr, const std::size_t size) const { - return nullptr; - } - - u8* GetSpan(const DAddr src_addr, const std::size_t size) { - return nullptr; - } + u8* GetSpan(const DAddr src_addr, const std::size_t size); + const u8* GetSpan(const DAddr src_addr, const std::size_t size) const; void ReadBlock(DAddr address, void* dest_pointer, size_t size); void ReadBlockUnsafe(DAddr address, void* dest_pointer, size_t size); @@ -144,6 +146,7 @@ private: DeviceInterface* interface; Common::VirtualBuffer<u32> compressed_physical_ptr; Common::VirtualBuffer<u32> compressed_device_addr; + Common::VirtualBuffer<u32> continuity_tracker; // Process memory interfaces |