Browse Source

video_core/memory_manager: Add a const qualified variant of GetPointer()

Allows retrieving read-only pointers from a const context externally.
nce_cpp
Lioncash 7 years ago
parent
commit
514351af96
  1. 18
      src/video_core/memory_manager.cpp
  2. 1
      src/video_core/memory_manager.h

18
src/video_core/memory_manager.cpp

@ -180,8 +180,22 @@ u8* MemoryManager::GetPointer(GPUVAddr addr) {
return {};
}
u8* page_pointer{page_table.pointers[addr >> page_bits]};
if (page_pointer) {
u8* const page_pointer{page_table.pointers[addr >> page_bits]};
if (page_pointer != nullptr) {
return page_pointer + (addr & page_mask);
}
LOG_ERROR(HW_GPU, "Unknown GetPointer @ 0x{:016X}", addr);
return {};
}
const u8* MemoryManager::GetPointer(GPUVAddr addr) const {
if (!IsAddressValid(addr)) {
return {};
}
const u8* const page_pointer{page_table.pointers[addr >> page_bits]};
if (page_pointer != nullptr) {
return page_pointer + (addr & page_mask);
}

1
src/video_core/memory_manager.h

@ -59,6 +59,7 @@ public:
void Write(GPUVAddr addr, T data);
u8* GetPointer(GPUVAddr addr);
const u8* GetPointer(GPUVAddr addr) const;
void ReadBlock(GPUVAddr src_addr, void* dest_buffer, std::size_t size);
void WriteBlock(GPUVAddr dest_addr, const void* src_buffer, std::size_t size);

Loading…
Cancel
Save