CpuRegionHandle.cs 1.0 KB

123456789101112131415161718192021222324252627282930
  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 void RegisterAction(RegionSignal action) => _impl.RegisterAction(action);
  21. public void RegisterDirtyEvent(Action action) => _impl.RegisterDirtyEvent(action);
  22. public void Reprotect(bool asDirty = false) => _impl.Reprotect(asDirty);
  23. public bool OverlapsWith(ulong address, ulong size) => _impl.OverlapsWith(address, size);
  24. }
  25. }