MockVirtualMemoryManager.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. using Ryujinx.Memory.Range;
  2. using System;
  3. using System.Collections.Generic;
  4. namespace Ryujinx.Memory.Tests
  5. {
  6. public class MockVirtualMemoryManager : IVirtualMemoryManager
  7. {
  8. public bool NoMappings = false;
  9. public event Action<ulong, ulong, MemoryPermission> OnProtect;
  10. public MockVirtualMemoryManager(ulong size, int pageSize)
  11. {
  12. }
  13. public void Map(ulong va, ulong pa, ulong size)
  14. {
  15. throw new NotImplementedException();
  16. }
  17. public void Unmap(ulong va, ulong size)
  18. {
  19. throw new NotImplementedException();
  20. }
  21. public T Read<T>(ulong va) where T : unmanaged
  22. {
  23. throw new NotImplementedException();
  24. }
  25. public void Read(ulong va, Span<byte> data)
  26. {
  27. throw new NotImplementedException();
  28. }
  29. public void Write<T>(ulong va, T value) where T : unmanaged
  30. {
  31. throw new NotImplementedException();
  32. }
  33. public void Write(ulong va, ReadOnlySpan<byte> data)
  34. {
  35. throw new NotImplementedException();
  36. }
  37. public bool WriteWithRedundancyCheck(ulong va, ReadOnlySpan<byte> data)
  38. {
  39. throw new NotImplementedException();
  40. }
  41. public ReadOnlySpan<byte> GetSpan(ulong va, int size, bool tracked = false)
  42. {
  43. throw new NotImplementedException();
  44. }
  45. public WritableRegion GetWritableRegion(ulong va, int size, bool tracked = false)
  46. {
  47. throw new NotImplementedException();
  48. }
  49. public ref T GetRef<T>(ulong va) where T : unmanaged
  50. {
  51. throw new NotImplementedException();
  52. }
  53. IEnumerable<MemoryRange> IVirtualMemoryManager.GetPhysicalRegions(ulong va, ulong size)
  54. {
  55. return NoMappings ? new MemoryRange[0] : new MemoryRange[] { new MemoryRange(va, size) };
  56. }
  57. public bool IsMapped(ulong va)
  58. {
  59. return true;
  60. }
  61. public bool IsRangeMapped(ulong va, ulong size)
  62. {
  63. return true;
  64. }
  65. public ulong GetPhysicalAddress(ulong va)
  66. {
  67. throw new NotImplementedException();
  68. }
  69. public void SignalMemoryTracking(ulong va, ulong size, bool write, bool precise = false)
  70. {
  71. throw new NotImplementedException();
  72. }
  73. public void TrackingReprotect(ulong va, ulong size, MemoryPermission protection)
  74. {
  75. OnProtect?.Invoke(va, size, protection);
  76. }
  77. }
  78. }