|
|
@ -140,10 +140,10 @@ void SetCurrentPageTable(PageTable* page_table);
|
|
|
|
PageTable* GetCurrentPageTable();
|
|
|
|
PageTable* GetCurrentPageTable();
|
|
|
|
|
|
|
|
|
|
|
|
/// Determines if the given VAddr is valid for the specified process.
|
|
|
|
/// Determines if the given VAddr is valid for the specified process.
|
|
|
|
bool IsValidVirtualAddress(const Kernel::Process& process, const VAddr vaddr);
|
|
|
|
bool IsValidVirtualAddress(const Kernel::Process& process, VAddr vaddr);
|
|
|
|
bool IsValidVirtualAddress(const VAddr addr);
|
|
|
|
bool IsValidVirtualAddress(VAddr vaddr);
|
|
|
|
/// Determines if the given VAddr is a kernel address
|
|
|
|
/// Determines if the given VAddr is a kernel address
|
|
|
|
bool IsKernelVirtualAddress(const VAddr addr);
|
|
|
|
bool IsKernelVirtualAddress(VAddr vaddr);
|
|
|
|
|
|
|
|
|
|
|
|
u8 Read8(VAddr addr);
|
|
|
|
u8 Read8(VAddr addr);
|
|
|
|
u16 Read16(VAddr addr);
|
|
|
|
u16 Read16(VAddr addr);
|
|
|
@ -155,18 +155,17 @@ void Write16(VAddr addr, u16 data);
|
|
|
|
void Write32(VAddr addr, u32 data);
|
|
|
|
void Write32(VAddr addr, u32 data);
|
|
|
|
void Write64(VAddr addr, u64 data);
|
|
|
|
void Write64(VAddr addr, u64 data);
|
|
|
|
|
|
|
|
|
|
|
|
void ReadBlock(const Kernel::Process& process, const VAddr src_addr, void* dest_buffer,
|
|
|
|
void ReadBlock(const Kernel::Process& process, VAddr src_addr, void* dest_buffer, size_t size);
|
|
|
|
|
|
|
|
void ReadBlock(VAddr src_addr, void* dest_buffer, size_t size);
|
|
|
|
|
|
|
|
void WriteBlock(const Kernel::Process& process, VAddr dest_addr, const void* src_buffer,
|
|
|
|
size_t size);
|
|
|
|
size_t size);
|
|
|
|
void ReadBlock(const VAddr src_addr, void* dest_buffer, size_t size);
|
|
|
|
void WriteBlock(VAddr dest_addr, const void* src_buffer, size_t size);
|
|
|
|
void WriteBlock(const Kernel::Process& process, const VAddr dest_addr, const void* src_buffer,
|
|
|
|
void ZeroBlock(const Kernel::Process& process, VAddr dest_addr, size_t size);
|
|
|
|
size_t size);
|
|
|
|
|
|
|
|
void WriteBlock(const VAddr dest_addr, const void* src_buffer, size_t size);
|
|
|
|
|
|
|
|
void ZeroBlock(const VAddr dest_addr, const size_t size);
|
|
|
|
|
|
|
|
void CopyBlock(VAddr dest_addr, VAddr src_addr, size_t size);
|
|
|
|
void CopyBlock(VAddr dest_addr, VAddr src_addr, size_t size);
|
|
|
|
|
|
|
|
|
|
|
|
u8* GetPointer(VAddr virtual_address);
|
|
|
|
u8* GetPointer(VAddr vaddr);
|
|
|
|
|
|
|
|
|
|
|
|
std::string ReadCString(VAddr virtual_address, std::size_t max_length);
|
|
|
|
std::string ReadCString(VAddr vaddr, std::size_t max_length);
|
|
|
|
|
|
|
|
|
|
|
|
enum class FlushMode {
|
|
|
|
enum class FlushMode {
|
|
|
|
/// Write back modified surfaces to RAM
|
|
|
|
/// Write back modified surfaces to RAM
|
|
|
@ -180,7 +179,7 @@ enum class FlushMode {
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Mark each page touching the region as cached.
|
|
|
|
* Mark each page touching the region as cached.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
void RasterizerMarkRegionCached(Tegra::GPUVAddr start, u64 size, bool cached);
|
|
|
|
void RasterizerMarkRegionCached(Tegra::GPUVAddr gpu_addr, u64 size, bool cached);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Flushes and invalidates any externally cached rasterizer resources touching the given virtual
|
|
|
|
* Flushes and invalidates any externally cached rasterizer resources touching the given virtual
|
|
|
|