using System; namespace ARMeilleure.Memory { public interface IMemoryManager { int AddressSpaceBits { get; } IntPtr PageTablePointer { get; } T Read<T>(ulong va) where T : unmanaged; T ReadTracked<T>(ulong va) where T : unmanaged; void Write<T>(ulong va, T value) where T : unmanaged; ReadOnlySpan<byte> GetSpan(ulong va, int size, bool tracked = false); ref T GetRef<T>(ulong va) where T : unmanaged; bool IsMapped(ulong va); void SignalMemoryTracking(ulong va, ulong size, bool write); } }