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);
}