- java.lang.Object
-
- com.ibm.dtfj.corereaders.j9.Memory
-
public class Memory extends Object
Memory adapter which removes the need for a component to know the address space ID that it is working with. This is set when the adapter is created.
-
-
Constructor Summary
Constructors Constructor Description Memory(IAbstractAddressSpace space)Create a memory representation
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intbytesPerPointer()Identify the memory as 32 or 64 bitlongfindPattern(byte[] whatBytes, int alignment, long startFrom)Search the memory for a specific byte patternbytegetByteAt(long address)Read a byte from the specified addressintgetBytesAt(long address, byte[] buffer)Read a byte from the specified addressintgetIntAt(long address)Read an int from the specified addresslonggetLongAt(long address)Read a long from the specified addressbyte[]getMemoryBytes(long address, int size)Read bytes from the specified addressIteratorgetMemoryRanges()Get the memory ranges for this address spacelonggetPointerAt(long address)Read a pointer at the specified addressshortgetShortAt(long address)Read a short from the specified addressbooleanisExecutable(long address)Flag for executable memorybooleanisReadOnly(long address)Flag to indicate if the memory is read onlybooleanisShared(long address)Flag to indicate if the memory is shared
-
-
-
Constructor Detail
-
Memory
public Memory(IAbstractAddressSpace space)
Create a memory representation- Parameters:
space- the underlying address space
-
-
Method Detail
-
bytesPerPointer
public int bytesPerPointer()
Identify the memory as 32 or 64 bit- Returns:
- 4 for 31/32 bit, 8 for 64 bit
-
findPattern
public long findPattern(byte[] whatBytes, int alignment, long startFrom)Search the memory for a specific byte pattern- Parameters:
whatBytes- what to search foralignment- byte alignmentstartFrom- position to start the search from- Returns:
- the address of the bytes if found or -1
-
getByteAt
public byte getByteAt(long address) throws MemoryAccessExceptionRead a byte from the specified address- Parameters:
address- address to read from- Returns:
- the data
- Throws:
MemoryAccessException
-
getBytesAt
public int getBytesAt(long address, byte[] buffer) throws MemoryAccessExceptionRead a byte from the specified address- Parameters:
address- address to read from- Returns:
- the data
- Throws:
MemoryAccessException
-
getIntAt
public int getIntAt(long address) throws MemoryAccessExceptionRead an int from the specified address- Parameters:
address- address to read from- Returns:
- the data
- Throws:
MemoryAccessException
-
getLongAt
public long getLongAt(long address) throws MemoryAccessExceptionRead a long from the specified address- Parameters:
address- address to read from- Returns:
- the data
- Throws:
MemoryAccessException
-
getMemoryBytes
public byte[] getMemoryBytes(long address, int size)Read bytes from the specified address- Parameters:
address- address to read fromsize- number of bytes to read- Returns:
- the data
-
getMemoryRanges
public Iterator getMemoryRanges()
Get the memory ranges for this address space
-
getPointerAt
public long getPointerAt(long address) throws MemoryAccessExceptionRead a pointer at the specified address- Parameters:
address- address to read from- Returns:
- the data
- Throws:
MemoryAccessException
-
getShortAt
public short getShortAt(long address) throws MemoryAccessExceptionRead a short from the specified address- Parameters:
address- address to read from- Returns:
- the data
- Throws:
MemoryAccessException
-
isExecutable
public boolean isExecutable(long address) throws MemoryAccessExceptionFlag for executable memory- Returns:
- true if it is executable
- Throws:
MemoryAccessException
-
isReadOnly
public boolean isReadOnly(long address) throws MemoryAccessExceptionFlag to indicate if the memory is read only- Returns:
- true if it is read only
- Throws:
MemoryAccessException
-
isShared
public boolean isShared(long address) throws MemoryAccessExceptionFlag to indicate if the memory is shared- Returns:
- true if it is shared
- Throws:
MemoryAccessException
-
-