Interface MemoryBlockSourceInfo


  • public interface MemoryBlockSourceInfo
    Describes the source of bytes for a memory block.
    • Method Detail

      • 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

        java.lang.String getDescription()
        Returns a description of this SourceInfo object.
        Returns:
        a description of this SourceInfo object.
      • getFileBytes

        java.util.Optional<FileBytes> getFileBytes()
        Returns an Optional 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 underlying FileBytes object where this sub-block starts getting its bytes from or -1 if this sub-block does not have an associated FileBytes or a complex bit/byte-mapping is used.
        Returns:
        the offset into the FileBytes object where this section starts getting its bytes.
      • getFileBytesOffset

        long getFileBytesOffset​(Address address)
        Returns the offset into the FileBytes object for the given address or -1 if this sub-block if address is out of range or this sub-block does not have an associated FileBytes, or a complex bit/byte-mapping is used.
        Parameters:
        address - the address for which to get an offset into the FileBytes object.
        Returns:
        the offset into the FileBytes object for the given address.
      • getMappedRange

        java.util.Optional<AddressRange> getMappedRange()
        Returns an Optional 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

        java.util.Optional<ByteMappingScheme> getByteMappingScheme()
        Returns an Optional 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

        boolean contains​(Address address)
        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

        default Address locateAddressForFileOffset​(long fileOffset)
        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).