diff options
| author | 2022-02-19 00:14:27 -0800 | |
|---|---|---|
| committer | 2022-02-19 00:14:27 -0800 | |
| commit | 92b2e92620a04af6d1ce2d35f55905b3a8b805fc (patch) | |
| tree | c152795267b26a09564860d3369beaa857c9ca1c /src/core/hle/kernel | |
| parent | core: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory. (diff) | |
| download | yuzu-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.cpp | 24 |
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 | ||
| 44 | constexpr u64 GetAddressInRange(const KMemoryInfo& info, VAddr addr) { | ||
| 45 | if (info.GetAddress() < addr) { | ||
| 46 | return addr; | ||
| 47 | } | ||
| 48 | return info.GetAddress(); | ||
| 49 | } | ||
| 50 | |||
| 51 | constexpr 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 | ||
| 64 | KPageTable::KPageTable(Core::System& system_) | 46 | KPageTable::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. |