Package ghidra.app.util.bin.format.macho.commands

# Class LinkEditDataCommand

java.lang.Object
ghidra.app.util.bin.format.macho.commands.LoadCommand
ghidra.app.util.bin.format.macho.commands.LinkEditDataCommand

All Implemented Interfaces:
  `StructConverter`

Direct Known Subclasses:
  `CodeSignatureCommand`, `DataInCodeCommand`, `DyldChainedFixupsCommand`, `DyldExportsTrieCommand`, `FunctionStartsCommand`

public class LinkEditDataCommand extends LoadCommand
Represents a linkedit_data_command structure

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected long`
  `dataoff`
  `protected BinaryReader`
  `dataReader`
  `protected long`
  `datasize`

  ### Fields inherited from interface ghidra.app.util.bin.StructConverter

  `ASCII, BYTE, DWORD, IBO32, IBO64, POINTER, QWORD, SLEB128, STRING, ULEB128, UTF16, UTF8, VOID, WORD`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getCommandName()`
  Gets the name of this load command
  `long`
  `getLinkerDataOffset()`
  Gets the file offset of this load command's "linker data".
  `long`
  `getLinkerDataSize()`
  Gets the file size of this load command's "linker data".
  `void`
  `markup(Program program, MachHeader header, String source, TaskMonitor monitor, MessageLog log)`
  Marks up this `LoadCommand` data with data structures and comments.
  `void`
  `markupRawBinary(MachHeader header, FlatProgramAPI api, Address baseAddress, ProgramModule parentModule, TaskMonitor monitor, MessageLog log)`
  Marks-up this `LoadCommand` with data structures and comments.
  `DataType`
  `toDataType()`
  Returns a structure datatype representing the contents of the implementor of this interface.

  ### Methods inherited from class ghidra.app.util.bin.format.macho.commands.LoadCommand

  `checkCount, createFragment, createPlateComment, fileOffsetToAddress, getCommandSize, getCommandType, getContextualName, getStartIndex, markupPlateComment, updateMonitor`

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

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

- ## Field Details

  - ### dataoff

    protected long dataoff

  - ### datasize

    protected long datasize

  - ### dataReader

    protected BinaryReader dataReader

- ## Method Details

  - ### getLinkerDataOffset

    public long getLinkerDataOffset()
    Description copied from class: `LoadCommand`
    Gets the file offset of this load command's "linker data". Not all load commands with data will have linker data. Linker data typically resides in the __LINKEDIT segment.
    Overrides:
      `getLinkerDataOffset` in class `LoadCommand`
    Returns:
      The file offset of this load command's "linker data", or 0 if it has no linker data

  - ### getLinkerDataSize

    public long getLinkerDataSize()
    Description copied from class: `LoadCommand`
    Gets the file size of this load command's "linker data". Not all load commands with data will have linker data. Linker data typically resides in the __LINKEDIT segment.
    Overrides:
      `getLinkerDataSize` in class `LoadCommand`
    Returns:
      The file size of this load command's "linker data", or 0 if it has no linker data

  - ### getCommandName

    public String getCommandName()
    Description copied from class: `LoadCommand`
    Gets the name of this load command
    Specified by:
      `getCommandName` in class `LoadCommand`
    Returns:
      The name of this load command

  - ### markup

    public void markup(Program program, MachHeader header, String source, TaskMonitor monitor, MessageLog log) throws CancelledException
    Description copied from class: `LoadCommand`
    Marks up this `LoadCommand` data with data structures and comments. Assumes the program was imported as a Mach-O.
    Overrides:
      `markup` in class `LoadCommand`
    Parameters:
      `program` - The `Program` to mark up
      `header` - The Mach-O header
      `source` - A name that represents where the header came from (could be null)
      `monitor` - A cancellable task monitor
      `log` - The log
    Throws:
      `CancelledException` - if the user cancelled the operation

  - ### markupRawBinary

    public void markupRawBinary(MachHeader header, FlatProgramAPI api, Address baseAddress, ProgramModule parentModule, TaskMonitor monitor, MessageLog log)
    Description copied from class: `LoadCommand`
    Marks-up this `LoadCommand` with data structures and comments. Assumes the program was imported as a Raw Binary.
    Overrides:
      `markupRawBinary` in class `LoadCommand`
    Parameters:
      `header` - The Mach-O header
      `api` - A `FlatProgramAPI`
      `baseAddress` - The base address of the program
      `parentModule` - The parent `module` to create fragments
      `monitor` - A cancellable task monitor
      `log` - The log
    See Also:
      - `MachoBinaryAnalysisCommand`

  - ### toDataType

    public DataType toDataType() throws DuplicateNameException, IOException
    Description copied from interface: `StructConverter`
    Returns a structure datatype representing the contents of the implementor of this interface.

    For example, given:

         class A {
             int foo;
             double bar;
         }

    The return value should be a structure data type with two data type components; an INT and a DOUBLE. The structure should contain field names and, if possible, field comments.

    Returns:
      returns a structure datatype representing the implementor of this interface
    Throws:
      `DuplicateNameException` - when a datatype of the same name already exists
      `IOException` - if an IO-related error occurs
    See Also:
      - `StructureDataType`