diff options
Diffstat (limited to 'src/core/hle/kernel')
| -rw-r--r-- | src/core/hle/kernel/k_page_table_base.cpp | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/src/core/hle/kernel/k_page_table_base.cpp b/src/core/hle/kernel/k_page_table_base.cpp index 2b5e77ccf..6691586ed 100644 --- a/src/core/hle/kernel/k_page_table_base.cpp +++ b/src/core/hle/kernel/k_page_table_base.cpp | |||
| @@ -5678,15 +5678,8 @@ Result KPageTableBase::Operate(PageLinkedList* page_list, KProcessAddress virt_a | |||
| 5678 | case OperationType::ChangePermissions: | 5678 | case OperationType::ChangePermissions: |
| 5679 | case OperationType::ChangePermissionsAndRefresh: | 5679 | case OperationType::ChangePermissionsAndRefresh: |
| 5680 | case OperationType::ChangePermissionsAndRefreshAndFlush: { | 5680 | case OperationType::ChangePermissionsAndRefreshAndFlush: { |
| 5681 | const bool read = True(properties.perm & Kernel::KMemoryPermission::UserRead); | 5681 | m_memory->ProtectRegion(*m_impl, virt_addr, num_pages * PageSize, |
| 5682 | const bool write = True(properties.perm & Kernel::KMemoryPermission::UserWrite); | 5682 | ConvertToMemoryPermission(properties.perm)); |
| 5683 | // todo: this doesn't really belong here and should go into m_memory to handle rasterizer | ||
| 5684 | // access todo: ignore exec on non-direct-mapped case | ||
| 5685 | const bool exec = True(properties.perm & Kernel::KMemoryPermission::UserExecute); | ||
| 5686 | if (Settings::IsFastmemEnabled()) { | ||
| 5687 | m_system.DeviceMemory().buffer.Protect(GetInteger(virt_addr), num_pages * PageSize, | ||
| 5688 | read, write, exec); | ||
| 5689 | } | ||
| 5690 | R_SUCCEED(); | 5683 | R_SUCCEED(); |
| 5691 | } | 5684 | } |
| 5692 | default: | 5685 | default: |