aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Memory/Tracking/VirtualRegion.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Memory/Tracking/VirtualRegion.cs')
-rw-r--r--src/Ryujinx.Memory/Tracking/VirtualRegion.cs10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/Ryujinx.Memory/Tracking/VirtualRegion.cs b/src/Ryujinx.Memory/Tracking/VirtualRegion.cs
index 538e94fe..bb087e9a 100644
--- a/src/Ryujinx.Memory/Tracking/VirtualRegion.cs
+++ b/src/Ryujinx.Memory/Tracking/VirtualRegion.cs
@@ -13,10 +13,14 @@ namespace Ryujinx.Memory.Tracking
private readonly MemoryTracking _tracking;
private MemoryPermission _lastPermission;
- public VirtualRegion(MemoryTracking tracking, ulong address, ulong size, MemoryPermission lastPermission = MemoryPermission.Invalid) : base(address, size)
+ public bool Guest { get; }
+
+ public VirtualRegion(MemoryTracking tracking, ulong address, ulong size, bool guest, MemoryPermission lastPermission = MemoryPermission.Invalid) : base(address, size)
{
_lastPermission = lastPermission;
_tracking = tracking;
+
+ Guest = guest;
}
/// <inheritdoc/>
@@ -103,7 +107,7 @@ namespace Ryujinx.Memory.Tracking
if (_lastPermission != permission)
{
- _tracking.ProtectVirtualRegion(this, permission);
+ _tracking.ProtectVirtualRegion(this, permission, Guest);
_lastPermission = permission;
return true;
@@ -131,7 +135,7 @@ namespace Ryujinx.Memory.Tracking
public override INonOverlappingRange Split(ulong splitAddress)
{
- VirtualRegion newRegion = new(_tracking, splitAddress, EndAddress - splitAddress, _lastPermission);
+ VirtualRegion newRegion = new(_tracking, splitAddress, EndAddress - splitAddress, Guest, _lastPermission);
Size = splitAddress - Address;
// The new region inherits all of our parents.