IMemoryManager.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using ARMeilleure.State;
  2. using System;
  3. namespace ARMeilleure.Memory
  4. {
  5. public interface IMemoryManager : IMemory, IDisposable
  6. {
  7. void Map(long va, long pa, long size);
  8. void Unmap(long position, long size);
  9. bool IsMapped(long position);
  10. long GetPhysicalAddress(long virtualAddress);
  11. bool IsRegionModified(long position, long size);
  12. bool TryGetHostAddress(long position, long size, out IntPtr ptr);
  13. bool IsValidPosition(long position);
  14. bool AtomicCompareExchangeInt32(long position, int expected, int desired);
  15. int AtomicIncrementInt32(long position);
  16. int AtomicDecrementInt32(long position);
  17. byte[] ReadBytes(long position, long size);
  18. void ReadBytes(long position, byte[] data, int startIndex, int size);
  19. void WriteVector128(long position, V128 value);
  20. void WriteBytes(long position, byte[] data);
  21. void WriteBytes(long position, byte[] data, int startIndex, int size);
  22. void CopyBytes(long src, long dst, long size);
  23. }
  24. }