Class BasicMemorySpace
Provides a basic implementation of a IMemorySpace, where memory is one continuous block of data that is fully accessible.
public class BasicMemorySpace : IMemorySpace
- Inheritance
-
BasicMemorySpace
- Implements
- Inherited Members
Constructors
BasicMemorySpace(BitVector)
Wraps a bit vector into a memory space.
public BasicMemorySpace(BitVector backBuffer)
Parameters
backBufferBitVectorThe data of the memory space.
BasicMemorySpace(byte[])
Wraps a byte array into a memory space.
public BasicMemorySpace(byte[] backBuffer)
Parameters
backBufferbyte[]The data of the memory space.
BasicMemorySpace(int, bool)
Creates a new memory space.
public BasicMemorySpace(int size, bool initialize)
Parameters
sizeintThe number of bytes to store in the space.
initializeboolIndicates whether the space should be initialized with zeroes.
Properties
AddressRange
Gets the range that this memory space spans.
public AddressRange AddressRange { get; }
Property Value
BackBuffer
Gets the back buffer behind the memory space that stores the raw data.
public BitVector BackBuffer { get; }
Property Value
Methods
IsValidAddress(long)
Gets a value indicating whether the provided address is a valid address, and can be used to read and/or write to.
public bool IsValidAddress(long address)
Parameters
addresslongThe address to query.
Returns
- bool
trueif the address was valid,falseotherwise.
Read(long, BitVectorSpan)
Copies data at the provided address into the provided buffer.
public void Read(long address, BitVectorSpan buffer)
Parameters
addresslongThe address to start reading at.
bufferBitVectorSpanThe buffer to write into.
Rebase(long)
Relocates the memory to a new base address.
public void Rebase(long baseAddress)
Parameters
baseAddresslongThe new base address.
Write(long, BitVectorSpan)
Writes the provided buffer of data at the provided address.
public void Write(long address, BitVectorSpan buffer)
Parameters
addresslongThe address to start writing at.
bufferBitVectorSpanThe data to write.
Write(long, ReadOnlySpan<byte>)
Writes the provided buffer of data at the provided address.
public void Write(long address, ReadOnlySpan<byte> buffer)
Parameters
addresslongThe address to start writing at.
bufferReadOnlySpan<byte>The data to write.