diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2023-11-07 13:24:10 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-07 13:24:10 -0300 |
| commit | 815819767c5794624e3e7bc2bebcabe8ea4de0f6 (patch) | |
| tree | a57b27ee8d43f243e7085dfbba16a388d13f9432 /src/Ryujinx.Memory/IVirtualMemoryManager.cs | |
| parent | 623604c39186901fd64c8e04e9aa959d5c825529 (diff) | |
Force all exclusive memory accesses to be ordered on AppleHv (#5898)
* Implement reprotect method on virtual memory manager (currently stubbed)
* Force all exclusive memory accesses to be ordered on AppleHv
* Format whitespace
* Fix test build
* Fix comment copy/paste
* Fix wrong bit for isLoad
* Update src/Ryujinx.Cpu/AppleHv/HvMemoryManager.cs
Co-authored-by: riperiperi <rhy3756547@hotmail.com>
---------
Co-authored-by: riperiperi <rhy3756547@hotmail.com>
Diffstat (limited to 'src/Ryujinx.Memory/IVirtualMemoryManager.cs')
| -rw-r--r-- | src/Ryujinx.Memory/IVirtualMemoryManager.cs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/Ryujinx.Memory/IVirtualMemoryManager.cs b/src/Ryujinx.Memory/IVirtualMemoryManager.cs index edbfc885..8c9ca168 100644 --- a/src/Ryujinx.Memory/IVirtualMemoryManager.cs +++ b/src/Ryujinx.Memory/IVirtualMemoryManager.cs @@ -104,6 +104,12 @@ namespace Ryujinx.Memory /// <returns>True if the data was changed, false otherwise</returns> bool WriteWithRedundancyCheck(ulong va, ReadOnlySpan<byte> data); + /// <summary> + /// Fills the specified memory region with the value specified in <paramref name="value"/>. + /// </summary> + /// <param name="va">Virtual address to fill the value into</param> + /// <param name="size">Size of the memory region to fill</param> + /// <param name="value">Value to fill with</param> void Fill(ulong va, ulong size, byte value) { const int MaxChunkSize = 1 << 24; @@ -195,6 +201,14 @@ namespace Ryujinx.Memory void SignalMemoryTracking(ulong va, ulong size, bool write, bool precise = false, int? exemptId = null); /// <summary> + /// Reprotect a region of virtual memory for guest access. + /// </summary> + /// <param name="va">Virtual address base</param> + /// <param name="size">Size of the region to protect</param> + /// <param name="protection">Memory protection to set</param> + void Reprotect(ulong va, ulong size, MemoryPermission protection); + + /// <summary> /// Reprotect a region of virtual memory for tracking. /// </summary> /// <param name="va">Virtual address base</param> |
