diff options
author | Liam <byteslice@airmail.cc> | 2023-10-11 16:24:48 +0200 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2023-10-20 08:34:15 +0200 |
commit | 794e6c7a96dbca24780a4301ea439db7a532acc3 (patch) | |
tree | ee48ba26791d7c73cefb06997adcfc0d41389f35 /src/core/hle/kernel/k_page_table.h | |
parent | kernel: reshuffle ini1 size, add slab clear note (diff) | |
download | yuzu-794e6c7a96dbca24780a4301ea439db7a532acc3.tar yuzu-794e6c7a96dbca24780a4301ea439db7a532acc3.tar.gz yuzu-794e6c7a96dbca24780a4301ea439db7a532acc3.tar.bz2 yuzu-794e6c7a96dbca24780a4301ea439db7a532acc3.tar.lz yuzu-794e6c7a96dbca24780a4301ea439db7a532acc3.tar.xz yuzu-794e6c7a96dbca24780a4301ea439db7a532acc3.tar.zst yuzu-794e6c7a96dbca24780a4301ea439db7a532acc3.zip |
Diffstat (limited to 'src/core/hle/kernel/k_page_table.h')
-rw-r--r-- | src/core/hle/kernel/k_page_table.h | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/core/hle/kernel/k_page_table.h b/src/core/hle/kernel/k_page_table.h index 7da675f27..af12582d9 100644 --- a/src/core/hle/kernel/k_page_table.h +++ b/src/core/hle/kernel/k_page_table.h @@ -126,8 +126,6 @@ public: return m_block_info_manager; } - bool CanContain(KProcessAddress addr, size_t size, KMemoryState state) const; - Result MapPages(KProcessAddress* out_addr, size_t num_pages, size_t alignment, KPhysicalAddress phys_addr, KProcessAddress region_start, size_t region_num_pages, KMemoryState state, KMemoryPermission perm) { @@ -162,6 +160,21 @@ public: void RemapPageGroup(PageLinkedList* page_list, KProcessAddress address, size_t size, const KPageGroup& pg); + KProcessAddress GetRegionAddress(Svc::MemoryState state) const; + size_t GetRegionSize(Svc::MemoryState state) const; + bool CanContain(KProcessAddress addr, size_t size, Svc::MemoryState state) const; + + KProcessAddress GetRegionAddress(KMemoryState state) const { + return this->GetRegionAddress(static_cast<Svc::MemoryState>(state & KMemoryState::Mask)); + } + size_t GetRegionSize(KMemoryState state) const { + return this->GetRegionSize(static_cast<Svc::MemoryState>(state & KMemoryState::Mask)); + } + bool CanContain(KProcessAddress addr, size_t size, KMemoryState state) const { + return this->CanContain(addr, size, + static_cast<Svc::MemoryState>(state & KMemoryState::Mask)); + } + protected: struct PageLinkedList { private: @@ -228,8 +241,6 @@ private: Result Operate(KProcessAddress addr, size_t num_pages, KMemoryPermission perm, OperationType operation, KPhysicalAddress map_addr = 0); void FinalizeUpdate(PageLinkedList* page_list); - KProcessAddress GetRegionAddress(KMemoryState state) const; - size_t GetRegionSize(KMemoryState state) const; KProcessAddress FindFreeArea(KProcessAddress region_start, size_t region_num_pages, size_t num_pages, size_t alignment, size_t offset, |