HSharedMem.cs 943 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using System;
  2. using System.Collections.Generic;
  3. namespace Ryujinx.Core.OsHle.Handles
  4. {
  5. class HSharedMem
  6. {
  7. private List<long> Positions;
  8. public EventHandler<EventArgs> MemoryMapped;
  9. public EventHandler<EventArgs> MemoryUnmapped;
  10. public HSharedMem()
  11. {
  12. Positions = new List<long>();
  13. }
  14. public void AddVirtualPosition(long Position)
  15. {
  16. lock (Positions)
  17. {
  18. Positions.Add(Position);
  19. MemoryMapped?.Invoke(this, EventArgs.Empty);
  20. }
  21. }
  22. public void RemoveVirtualPosition(long Position)
  23. {
  24. lock (Positions)
  25. {
  26. Positions.Remove(Position);
  27. MemoryUnmapped?.Invoke(this, EventArgs.Empty);
  28. }
  29. }
  30. public long[] GetVirtualPositions()
  31. {
  32. return Positions.ToArray();
  33. }
  34. }
  35. }