diff options
Diffstat (limited to 'src/core/memory.cpp')
| -rw-r--r-- | src/core/memory.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/core/memory.cpp b/src/core/memory.cpp index 28d30eee2..7534de01e 100644 --- a/src/core/memory.cpp +++ b/src/core/memory.cpp | |||
| @@ -594,6 +594,19 @@ bool Memory::IsValidVirtualAddress(const VAddr vaddr) const { | |||
| 594 | return pointer != nullptr || type == Common::PageType::RasterizerCachedMemory; | 594 | return pointer != nullptr || type == Common::PageType::RasterizerCachedMemory; |
| 595 | } | 595 | } |
| 596 | 596 | ||
| 597 | bool Memory::IsValidVirtualAddressRange(VAddr base, u64 size) const { | ||
| 598 | VAddr end = base + size; | ||
| 599 | VAddr page = Common::AlignDown(base, PAGE_SIZE); | ||
| 600 | |||
| 601 | for (; page < end; page += PAGE_SIZE) { | ||
| 602 | if (!IsValidVirtualAddress(page)) { | ||
| 603 | return false; | ||
| 604 | } | ||
| 605 | } | ||
| 606 | |||
| 607 | return true; | ||
| 608 | } | ||
| 609 | |||
| 597 | u8* Memory::GetPointer(VAddr vaddr) { | 610 | u8* Memory::GetPointer(VAddr vaddr) { |
| 598 | return impl->GetPointer(vaddr); | 611 | return impl->GetPointer(vaddr); |
| 599 | } | 612 | } |