summaryrefslogtreecommitdiffstats
path: root/src/core/device_memory_manager.h
diff options
context:
space:
mode:
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