Merge PR 12074
This commit is contained in:
@ -15,8 +15,9 @@
|
||||
#include "core/hle/result.h"
|
||||
|
||||
namespace Common {
|
||||
enum class MemoryPermission : u32;
|
||||
struct PageTable;
|
||||
}
|
||||
} // namespace Common
|
||||
|
||||
namespace Core {
|
||||
class System;
|
||||
@ -82,9 +83,10 @@ public:
|
||||
* @param size The amount of bytes to map. Must be page-aligned.
|
||||
* @param target Buffer with the memory backing the mapping. Must be of length at least
|
||||
* `size`.
|
||||
* @param perms The permissions to map the memory with.
|
||||
*/
|
||||
void MapMemoryRegion(Common::PageTable& page_table, Common::ProcessAddress base, u64 size,
|
||||
Common::PhysicalAddress target);
|
||||
Common::PhysicalAddress target, Common::MemoryPermission perms);
|
||||
|
||||
/**
|
||||
* Unmaps a region of the emulated process address space.
|
||||
@ -95,6 +97,17 @@ public:
|
||||
*/
|
||||
void UnmapRegion(Common::PageTable& page_table, Common::ProcessAddress base, u64 size);
|
||||
|
||||
/**
|
||||
* Protects a region of the emulated process address space with the new permissions.
|
||||
*
|
||||
* @param page_table The page table of the emulated process.
|
||||
* @param base The start address to re-protect. Must be page-aligned.
|
||||
* @param size The amount of bytes to protect. Must be page-aligned.
|
||||
* @param perms The permissions the address range is mapped.
|
||||
*/
|
||||
void ProtectRegion(Common::PageTable& page_table, Common::ProcessAddress base, u64 size,
|
||||
Common::MemoryPermission perms);
|
||||
|
||||
/**
|
||||
* Checks whether or not the supplied address is a valid virtual
|
||||
* address for the current process.
|
||||
@ -472,6 +485,7 @@ public:
|
||||
|
||||
void SetGPUDirtyManagers(std::span<Core::GPUDirtyMemoryManager> managers);
|
||||
void InvalidateRegion(Common::ProcessAddress dest_addr, size_t size);
|
||||
bool InvalidateNCE(Common::ProcessAddress vaddr, size_t size);
|
||||
void FlushRegion(Common::ProcessAddress dest_addr, size_t size);
|
||||
|
||||
private:
|
||||
|
Reference in New Issue
Block a user