WritableRegion.cs 618 B

1234567891011121314151617181920212223242526272829
  1. using System;
  2. namespace Ryujinx.Cpu
  3. {
  4. public sealed class WritableRegion : IDisposable
  5. {
  6. private readonly MemoryManager _mm;
  7. private readonly ulong _va;
  8. private bool NeedsWriteback => _mm != null;
  9. public Memory<byte> Memory { get; }
  10. internal WritableRegion(MemoryManager mm, ulong va, Memory<byte> memory)
  11. {
  12. _mm = mm;
  13. _va = va;
  14. Memory = memory;
  15. }
  16. public void Dispose()
  17. {
  18. if (NeedsWriteback)
  19. {
  20. _mm.Write(_va, Memory.Span);
  21. }
  22. }
  23. }
  24. }