summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
diff options
context:
space:
mode:
authorGravatar bunnei2022-02-19 00:14:27 -0800
committerGravatar bunnei2022-02-19 00:14:27 -0800
commit92b2e92620a04af6d1ce2d35f55905b3a8b805fc (patch)
treec152795267b26a09564860d3369beaa857c9ca1c /src/core/hle/kernel
parentcore: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory. (diff)
downloadyuzu-92b2e92620a04af6d1ce2d35f55905b3a8b805fc.tar.gz
yuzu-92b2e92620a04af6d1ce2d35f55905b3a8b805fc.tar.xz
yuzu-92b2e92620a04af6d1ce2d35f55905b3a8b805fc.zip
fixup! core: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory.
Diffstat (limited to 'src/core/hle/kernel')
-rw-r--r--src/core/hle/kernel/k_page_table.cpp24
1 files changed, 2 insertions, 22 deletions
diff --git a/src/core/hle/kernel/k_page_table.cpp b/src/core/hle/kernel/k_page_table.cpp
index 28cea9ab3..cbb0fedde 100644
--- a/src/core/hle/kernel/k_page_table.cpp
+++ b/src/core/hle/kernel/k_page_table.cpp
@@ -41,24 +41,6 @@ constexpr std::size_t GetAddressSpaceWidthFromType(FileSys::ProgramAddressSpaceT
41 } 41 }
42} 42}
43 43
44constexpr u64 GetAddressInRange(const KMemoryInfo& info, VAddr addr) {
45 if (info.GetAddress() < addr) {
46 return addr;
47 }
48 return info.GetAddress();
49}
50
51constexpr std::size_t GetSizeInRange(const KMemoryInfo& info, VAddr start, VAddr end) {
52 std::size_t size{info.GetSize()};
53 if (info.GetAddress() < start) {
54 size -= start - info.GetAddress();
55 }
56 if (info.GetEndAddress() > end) {
57 size -= info.GetEndAddress() - end;
58 }
59 return size;
60}
61
62} // namespace 44} // namespace
63 45
64KPageTable::KPageTable(Core::System& system_) 46KPageTable::KPageTable(Core::System& system_)
@@ -724,8 +706,7 @@ ResultCode KPageTable::UnmapPhysicalMemory(VAddr address, std::size_t size) {
724 size_t tot_size = 0; 706 size_t tot_size = 0;
725 707
726 cur_address = address; 708 cur_address = address;
727 next_valid = 709 next_valid = impl.BeginTraversal(next_entry, context, cur_address);
728 impl.BeginTraversal(std::addressof(next_entry), std::addressof(context), cur_address);
729 next_entry.block_size = 710 next_entry.block_size =
730 (next_entry.block_size - (next_entry.phys_addr & (next_entry.block_size - 1))); 711 (next_entry.block_size - (next_entry.phys_addr & (next_entry.block_size - 1)));
731 712
@@ -751,8 +732,7 @@ ResultCode KPageTable::UnmapPhysicalMemory(VAddr address, std::size_t size) {
751 break; 732 break;
752 } 733 }
753 734
754 next_valid = 735 next_valid = impl.ContinueTraversal(next_entry, context);
755 impl.ContinueTraversal(std::addressof(next_entry), std::addressof(context));
756 } 736 }
757 737
758 // Add the last block. 738 // Add the last block.