Package ghidra.program.model.mem
Interface MemoryBlockSourceInfo
public interface MemoryBlockSourceInfo
Describes the source of bytes for a memory block.
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Returns true if this SourceInfo object applies to the given address;default boolean
containsFileOffset
(long fileOffset) Determine if this block source contains the specified file offset.Returns anOptional
ByteMappingScheme
employed if this is a byte-mapped memory block.Returns a description of this SourceInfo object.long
long
getFileBytesOffset
(Address address) long
Returns the length of this block byte source.Returns anOptional
AddressRange
for 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 Address
locateAddressForFileOffset
(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 anOptional
FileBytes
object if a FileBytes object is the byte source for this SourceInfo. Otherwise, the Optional will be empty.- Returns:
- the
FileBytes
object if it is the byte source for this section
-
getFileBytesOffset
long getFileBytesOffset()Returns the offset into the underlyingFileBytes
object where this sub-block starts getting its bytes from or -1 if this sub-block does not have an associatedFileBytes
or a complex bit/byte-mapping is used.- Returns:
- the offset into the
FileBytes
object where this section starts getting its bytes.
-
getFileBytesOffset
-
getMappedRange
Optional<AddressRange> getMappedRange()Returns anOptional
AddressRange
for the mapped addresses if this is a mapped memory block (bit mapped or byte mapped). Otherwise, the Optional is empty.- Returns:
- an
Optional
AddressRange
for the mapped addresses if this is a mapped memory block
-
getByteMappingScheme
Optional<ByteMappingScheme> getByteMappingScheme()Returns anOptional
ByteMappingScheme
employed if this is a byte-mapped memory block. Otherwise, the Optional is empty.- Returns:
- an
Optional
ByteMappingScheme
employed 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:
Address
within 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).
-