summaryrefslogtreecommitdiffstats
path: root/src/core/device_memory_manager.h
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2023-12-30 09:37:16 +0100
committerLiam <byteslice@airmail.cc>2024-01-19 03:12:30 +0100
commitd8f1ce2f7640200d92a12698c42029316ac1a611 (patch)
tree34c983ea5d60c58f0511f993090b70aebe778582 /src/core/device_memory_manager.h
parentSMMU: Simplify and remove old code. (diff)
downloadyuzu-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.h21
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