using System; namespace ARMeilleure.Common { public interface IAddressTable : IDisposable where TEntry : unmanaged { /// /// Gets the of the instance. /// AddressTableType TableType { get; } /// /// Gets the bits used by the of the instance. /// ulong Mask { get; } /// /// Gets the s used by the instance. /// AddressTableLevel[] Levels { get; } /// /// Gets or sets the default fill value of newly created leaf pages. /// TEntry Fill { get; set; } /// /// Gets the base address of the . /// /// instance was disposed nint Base { get; } /// /// Signal that the given code range exists. /// /// Guest code range address /// Guest code range size void SignalCodeRange(ulong address, ulong size); /// /// Determines if the specified is in the range of the /// . /// /// Guest address /// if is valid; otherwise bool IsValid(ulong address); /// /// Gets a reference to the value at the specified guest . /// /// Guest address /// Reference to the value at the specified guest /// instance was disposed /// is not mapped ref TEntry GetValue(ulong address); } }