diff options
Diffstat (limited to 'Ryujinx.HLE/OsHle/Handles/HSharedMem.cs')
| -rw-r--r-- | Ryujinx.HLE/OsHle/Handles/HSharedMem.cs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/Ryujinx.HLE/OsHle/Handles/HSharedMem.cs b/Ryujinx.HLE/OsHle/Handles/HSharedMem.cs new file mode 100644 index 00000000..6426e585 --- /dev/null +++ b/Ryujinx.HLE/OsHle/Handles/HSharedMem.cs @@ -0,0 +1,44 @@ +using ChocolArm64.Memory; +using System; +using System.Collections.Generic; + +namespace Ryujinx.HLE.OsHle.Handles +{ + class HSharedMem + { + private List<(AMemory, long)> Positions; + + public EventHandler<EventArgs> MemoryMapped; + public EventHandler<EventArgs> MemoryUnmapped; + + public HSharedMem() + { + Positions = new List<(AMemory, long)>(); + } + + public void AddVirtualPosition(AMemory Memory, long Position) + { + lock (Positions) + { + Positions.Add((Memory, Position)); + + MemoryMapped?.Invoke(this, EventArgs.Empty); + } + } + + public void RemoveVirtualPosition(AMemory Memory, long Position) + { + lock (Positions) + { + Positions.Remove((Memory, Position)); + + MemoryUnmapped?.Invoke(this, EventArgs.Empty); + } + } + + public (AMemory, long)[] GetVirtualPositions() + { + return Positions.ToArray(); + } + } +}
\ No newline at end of file |
