CpuRegionHandle.cs 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. using Ryujinx.Memory.Tracking;
  2. using System;
  3. namespace Ryujinx.Cpu.Tracking
  4. {
  5. public class CpuRegionHandle : IRegionHandle
  6. {
  7. private readonly RegionHandle _impl;
  8. public bool Dirty => _impl.Dirty;
  9. public bool Unmapped => _impl.Unmapped;
  10. public ulong Address => _impl.Address;
  11. public ulong Size => _impl.Size;
  12. public ulong EndAddress => _impl.EndAddress;
  13. internal CpuRegionHandle(RegionHandle impl)
  14. {
  15. _impl = impl;
  16. }
  17. public void Dispose() => _impl.Dispose();
  18. public bool DirtyOrVolatile() => _impl.DirtyOrVolatile();
  19. public void ForceDirty() => _impl.ForceDirty();
  20. public IRegionHandle GetHandle() => _impl;
  21. public void RegisterAction(RegionSignal action) => _impl.RegisterAction(action);
  22. public void RegisterDirtyEvent(Action action) => _impl.RegisterDirtyEvent(action);
  23. public void Reprotect(bool asDirty = false) => _impl.Reprotect(asDirty);
  24. public bool OverlapsWith(ulong address, ulong size) => _impl.OverlapsWith(address, size);
  25. }
  26. }