Package ghidra.program.model.mem
Interface MemoryBlockSourceInfo
public interface MemoryBlockSourceInfo
Describes the source of bytes for a memory block.
-
Method Summary
Modifier and TypeMethodDescriptionbooleanReturns true if this SourceInfo object applies to the given address;default booleancontainsFileOffset(long fileOffset) Determine if this block source contains the specified file offset.Returns anOptionalByteMappingSchemeemployed if this is a byte-mapped memory block.Returns a description of this SourceInfo object.longlonggetFileBytesOffset(Address address) longReturns the length of this block byte source.Returns anOptionalAddressRangefor the mapped addresses if this is a mapped memory block (bit mapped or byte mapped).Returns the end address where this byte source is mapped.Returns the containing Memory BlockReturns the start address where this byte source is mapped.default AddresslocateAddressForFileOffset(long fileOffset) Get the Address within this sub-block which corresponds to the specified file offset.
-
Method Details
-
getLength
long getLength()Returns the length of this block byte source.- Returns:
- the length of this block byte source.
-
getMinAddress
Address getMinAddress()Returns the start address where this byte source is mapped.- Returns:
- the start address where this byte source is mapped.
-
getMaxAddress
Address getMaxAddress()Returns the end address where this byte source is mapped.- Returns:
- the end address where this byte source is mapped.
-
getDescription
String getDescription()Returns a description of this SourceInfo object.- Returns:
- a description of this SourceInfo object.
-
getFileBytes
Returns anOptionalFileBytesobject if a FileBytes object is the byte source for this SourceInfo. Otherwise, the Optional will be empty.- Returns:
- the
FileBytesobject if it is the byte source for this section
-
getFileBytesOffset
long getFileBytesOffset()Returns the offset into the underlyingFileBytesobject where this sub-block starts getting its bytes from or -1 if this sub-block does not have an associatedFileBytesor a complex bit/byte-mapping is used.- Returns:
- the offset into the
FileBytesobject where this section starts getting its bytes.
-
getFileBytesOffset
-
getMappedRange
Optional<AddressRange> getMappedRange()Returns anOptionalAddressRangefor the mapped addresses if this is a mapped memory block (bit mapped or byte mapped). Otherwise, the Optional is empty.- Returns:
- an
OptionalAddressRangefor the mapped addresses if this is a mapped memory block
-
getByteMappingScheme
Optional<ByteMappingScheme> getByteMappingScheme()Returns anOptionalByteMappingSchemeemployed if this is a byte-mapped memory block. Otherwise, the Optional is empty.- Returns:
- an
OptionalByteMappingSchemeemployed if this is a byte-mapped memory block.
-
getMemoryBlock
MemoryBlock getMemoryBlock()Returns the containing Memory Block- Returns:
- the containing Memory Block
-
contains
Returns true if this SourceInfo object applies to the given address;- Parameters:
address- the address to test if this is its SourceInfo- Returns:
- true if this SourceInfo object applies to the given address;
-
containsFileOffset
default boolean containsFileOffset(long fileOffset) Determine if this block source contains the specified file offset.- Parameters:
fileOffset- file offset within underlying FileBytes (if applicable) within the loaded range associated with this source info.- Returns:
- true if file offset is within the loaded range of the corresponding FileBytes, else false if method is not supported by the sub-block type (e.g., bit/byte-mapped sub-block).
-
locateAddressForFileOffset
Get the Address within this sub-block which corresponds to the specified file offset.- Parameters:
fileOffset- file offset- Returns:
Addresswithin this sub-block or null if file offset is out of range or method is not supported by the sub-block type (e.g., bit/byte-mapped sub-block).
-