aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Cpu/Tracking
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Cpu/Tracking')
-rw-r--r--Ryujinx.Cpu/Tracking/CpuMultiRegionHandle.cs23
-rw-r--r--Ryujinx.Cpu/Tracking/CpuRegionHandle.cs23
-rw-r--r--Ryujinx.Cpu/Tracking/CpuSmartMultiRegionHandle.cs23
3 files changed, 69 insertions, 0 deletions
diff --git a/Ryujinx.Cpu/Tracking/CpuMultiRegionHandle.cs b/Ryujinx.Cpu/Tracking/CpuMultiRegionHandle.cs
new file mode 100644
index 00000000..f76410b4
--- /dev/null
+++ b/Ryujinx.Cpu/Tracking/CpuMultiRegionHandle.cs
@@ -0,0 +1,23 @@
+using Ryujinx.Memory.Tracking;
+using System;
+
+namespace Ryujinx.Cpu.Tracking
+{
+ public class CpuMultiRegionHandle : IMultiRegionHandle
+ {
+ private readonly MultiRegionHandle _impl;
+
+ public bool Dirty => _impl.Dirty;
+
+ internal CpuMultiRegionHandle(MultiRegionHandle impl)
+ {
+ _impl = impl;
+ }
+
+ public void Dispose() => _impl.Dispose();
+ public void QueryModified(Action<ulong, ulong> modifiedAction) => _impl.QueryModified(modifiedAction);
+ public void QueryModified(ulong address, ulong size, Action<ulong, ulong> modifiedAction) => _impl.QueryModified(address, size, modifiedAction);
+ public void QueryModified(ulong address, ulong size, Action<ulong, ulong> modifiedAction, int sequenceNumber) => _impl.QueryModified(address, size, modifiedAction, sequenceNumber);
+ public void SignalWrite() => _impl.SignalWrite();
+ }
+}
diff --git a/Ryujinx.Cpu/Tracking/CpuRegionHandle.cs b/Ryujinx.Cpu/Tracking/CpuRegionHandle.cs
new file mode 100644
index 00000000..9dbdbfcb
--- /dev/null
+++ b/Ryujinx.Cpu/Tracking/CpuRegionHandle.cs
@@ -0,0 +1,23 @@
+using Ryujinx.Memory.Tracking;
+
+namespace Ryujinx.Cpu.Tracking
+{
+ public class CpuRegionHandle : IRegionHandle
+ {
+ private readonly RegionHandle _impl;
+
+ public bool Dirty => _impl.Dirty;
+ public ulong Address => _impl.Address;
+ public ulong Size => _impl.Size;
+ public ulong EndAddress => _impl.EndAddress;
+
+ internal CpuRegionHandle(RegionHandle impl)
+ {
+ _impl = impl;
+ }
+
+ public void Dispose() => _impl.Dispose();
+ public void RegisterAction(RegionSignal action) => _impl.RegisterAction(action);
+ public void Reprotect() => _impl.Reprotect();
+ }
+}
diff --git a/Ryujinx.Cpu/Tracking/CpuSmartMultiRegionHandle.cs b/Ryujinx.Cpu/Tracking/CpuSmartMultiRegionHandle.cs
new file mode 100644
index 00000000..ddeeab0a
--- /dev/null
+++ b/Ryujinx.Cpu/Tracking/CpuSmartMultiRegionHandle.cs
@@ -0,0 +1,23 @@
+using Ryujinx.Memory.Tracking;
+using System;
+
+namespace Ryujinx.Cpu.Tracking
+{
+ public class CpuSmartMultiRegionHandle : IMultiRegionHandle
+ {
+ private readonly SmartMultiRegionHandle _impl;
+
+ public bool Dirty => _impl.Dirty;
+
+ internal CpuSmartMultiRegionHandle(SmartMultiRegionHandle impl)
+ {
+ _impl = impl;
+ }
+
+ public void Dispose() => _impl.Dispose();
+ public void QueryModified(Action<ulong, ulong> modifiedAction) => _impl.QueryModified(modifiedAction);
+ public void QueryModified(ulong address, ulong size, Action<ulong, ulong> modifiedAction) => _impl.QueryModified(address, size, modifiedAction);
+ public void QueryModified(ulong address, ulong size, Action<ulong, ulong> modifiedAction, int sequenceNumber) => _impl.QueryModified(address, size, modifiedAction, sequenceNumber);
+ public void SignalWrite() => _impl.SignalWrite();
+ }
+}