Package ghidra.app.util.bin.format.elf.extend

# Class ElfExtension

java.lang.Object
ghidra.app.util.bin.format.elf.extend.ElfLoadAdapter
ghidra.app.util.bin.format.elf.extend.ElfExtension

All Implemented Interfaces:
  `ExtensionPoint`

public abstract class ElfExtension extends ElfLoadAdapter implements ExtensionPoint

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ElfExtension()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract boolean`
  `canHandle(ElfHeader elf)`
  Check if this extension can handle the specified elf header.
  `abstract boolean`
  `canHandle(ElfLoadHelper elfLoadHelper)`
  Check if this extension can handle the specified elf image.
  `abstract String`
  `getDataTypeSuffix()`
  Return the data type naming suffix which should be used when creating types derived from data supplied by this extension.

  ### Methods inherited from class ghidra.app.util.bin.format.elf.extend.ElfLoadAdapter

  `addDynamicTypes, addLoadOptions, addProgramHeaderTypes, addSectionHeaderTypes, calculateSymbolAddress, creatingFunction, evaluateElfSymbol, getAdjustedLoadSize, getAdjustedMemoryOffset, getAdjustedMemorySize, getAdjustedSize, getDefaultAlignment, getDefaultImageBase, getExternalBlockReserveSize, getFilteredLoadInputStream, getLinkageBlockAlignment, getPreferredExternalBlockSize, getPreferredSectionAddress, getPreferredSectionAddressSpace, getPreferredSegmentAddress, getPreferredSegmentAddressSpace, getRelocationClass, getSectionSymbolRelativeOffset, hasFilteredLoadInputStream, isSectionAllocated, isSectionExecutable, isSectionWritable, isSegmentExecutable, isSegmentReadable, isSegmentWritable, processElf, processGotPlt`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### ElfExtension

    public ElfExtension()

- ## Method Details

  - ### canHandle

    public abstract boolean canHandle(ElfHeader elf)
    Description copied from class: `ElfLoadAdapter`
    Check if this extension can handle the specified elf header. If this method returns true, this extension will be used to obtain extended types definitions and to perform additional load processing.
    Overrides:
      `canHandle` in class `ElfLoadAdapter`
    Parameters:
      `elf` - elf header
    Returns:
      true if this extension should be used when loading the elf image which corresponds to the specified header.

  - ### canHandle

    public abstract boolean canHandle(ElfLoadHelper elfLoadHelper)
    Description copied from class: `ElfLoadAdapter`
    Check if this extension can handle the specified elf image. This method can provide a more accurate check based upon the actual language utilized. While the ELF header may have stipulated a specific processor via the machine-id, a completely different and incompatible language may have been used.
    Overrides:
      `canHandle` in class `ElfLoadAdapter`
    Parameters:
      `elfLoadHelper` - elf header
    Returns:
      true if this extension can properly support the ELF header and the current program/language.

  - ### getDataTypeSuffix

    public abstract String getDataTypeSuffix()
    Description copied from class: `ElfLoadAdapter`
    Return the data type naming suffix which should be used when creating types derived from data supplied by this extension.
    Overrides:
      `getDataTypeSuffix` in class `ElfLoadAdapter`
    Returns:
      type naming suffix or null