Package ghidra.program.model.data

# Class IBO32DataType

java.lang.Object
ghidra.program.model.data.AbstractDataType
ghidra.program.model.data.DataTypeImpl
ghidra.program.model.data.BuiltIn
ghidra.program.model.data.AbstractPointerTypedefBuiltIn
ghidra.program.model.data.IBO32DataType

All Implemented Interfaces:
  `BuiltInDataType`, `DataType`, `TypeDef`, `ExtensionPoint`

public class IBO32DataType extends AbstractPointerTypedefBuiltIn
`IBO32DataType` provides a Pointer-Typedef BuiltIn for a 32-bit Image Base Offset Relative Pointer. This `TypeDef` implementation specifies the `PointerType.IMAGE_BASE_RELATIVE` attribute/setting associated with a 32-bit `Pointer`.
This class replaces the use of the old `ImageBaseOffset32DataType` which did not implement the Pointer interface. This is an alternative `BuiltIn` implementation to using the more general `PointerTypedef` datatype with an unspecified referenced datatype. `PointerTypedef` should be used for other cases (see `createIBO32PointerTypedef(DataType)`).

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final IBO32DataType`
  `dataType`

  ### Fields inherited from class ghidra.program.model.data.DataTypeImpl

  `defaultSettings`

  ### Fields inherited from class ghidra.program.model.data.AbstractDataType

  `categoryPath, dataMgr, EMPTY_TYPEDEF_DEFINITIONS, name`

  ### Fields inherited from interface ghidra.program.model.data.DataType

  `CONFLICT_SUFFIX, DEFAULT, NO_LAST_CHANGE_TIME, NO_SOURCE_SYNC_TIME, TYPEDEF_ATTRIBUTE_PREFIX, TYPEDEF_ATTRIBUTE_SUFFIX, VOID`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `IBO32DataType()`
  Constructs a 32-bit Image Base Offset relative pointer-typedef.
  `IBO32DataType(DataTypeManager dtm)`
  Constructs a 32-bit Image Base Offset relative pointer-typedef.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `DataType`
  `clone(DataTypeManager dtm)`
  Returns an instance of this DataType using the specified `DataTypeManager` to allow its use of the corresponding `DataOrganization` while retaining its unique identity (see `DataType.getUniversalID()` and archive association (see `DataType.getSourceArchive()`) if applicable.
  `static PointerTypedef`
  `createIBO32PointerTypedef(DataType referencedDataType)`
  Create a IBO32 `PointerTypedef` with auto-naming.
  `TypeDefSettingsDefinition[]`
  `getBuiltInSettingsDefinitions()`
  Gets a list of all the settingsDefinitions used by this datatype.
  `String`
  `getDescription()`
  Get a String briefly describing this DataType.
  `String`
  `getMnemonic(Settings settings)`
  Get the mnemonic for this DataType.

  ### Methods inherited from class ghidra.program.model.data.AbstractPointerTypedefBuiltIn

  `dependsOn, enableAutoNaming, getAlignedLength, getBaseDataType, getDataType, getLength, getName, getReferencedDataType, getRepresentation, getUniversalID, getValue, getValueClass, hasGeneratedNamed, hasLanguageDependantLength, isAutoNamed, isEquivalent, toString`

  ### Methods inherited from class ghidra.program.model.data.BuiltIn

  `addParent, copy, getCTypeDeclaration, getCTypeDeclaration, getCTypeDeclaration, getCTypeDeclaration, getDecompilerDisplayName, getLastChangeTime, getSettingsDefinitions, removeParent, setDefaultSettings`

  ### Methods inherited from class ghidra.program.model.data.DataTypeImpl

  `equals, getAlignment, getDefaultSettings, getLastChangeTimeInSourceArchive, getParents, getSourceArchive, hashCode, notifyAlignmentChanged, notifyDeleted, notifyNameChanged, notifyParents, notifyReplaced, notifySizeChanged, replaceWith, setDescription, setLastChangeTime, setLastChangeTimeInSourceArchive, setSourceArchive`

  ### Methods inherited from class ghidra.program.model.data.AbstractDataType

  `dataTypeAlignmentChanged, dataTypeDeleted, dataTypeNameChanged, dataTypeReplaced, dataTypeSizeChanged, encodeRepresentation, encodeValue, getCategoryPath, getDataOrganization, getDataOrganization, getDataTypeManager, getDataTypePath, getDefaultAbbreviatedLabelPrefix, getDefaultLabelPrefix, getDefaultLabelPrefix, getDefaultOffcutLabelPrefix, getDisplayName, getPathName, getTypeDefSettingsDefinitions, isDeleted, isEncodable, isNotYetDefined, isZeroLength, setCategoryPath, setName, setNameAndCategory`

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

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface ghidra.program.model.data.DataType

  `addParent, copy, dataTypeAlignmentChanged, dataTypeDeleted, dataTypeNameChanged, dataTypeReplaced, dataTypeSizeChanged, encodeRepresentation, encodeValue, getAlignment, getCategoryPath, getDataOrganization, getDataTypeManager, getDataTypePath, getDefaultAbbreviatedLabelPrefix, getDefaultLabelPrefix, getDefaultLabelPrefix, getDefaultOffcutLabelPrefix, getDefaultSettings, getDisplayName, getLastChangeTime, getLastChangeTimeInSourceArchive, getParents, getPathName, getSettingsDefinitions, getSourceArchive, getTypeDefSettingsDefinitions, isDeleted, isEncodable, isNotYetDefined, isZeroLength, removeParent, replaceWith, setCategoryPath, setDescription, setLastChangeTime, setLastChangeTimeInSourceArchive, setName, setNameAndCategory, setSourceArchive`

  ### Methods inherited from interface ghidra.program.model.data.TypeDef

  `hasSameTypeDefSettings, isPointer`

- ## Field Details

  - ### dataType

    public static final IBO32DataType dataType

- ## Constructor Details

  - ### IBO32DataType

    public IBO32DataType()
    Constructs a 32-bit Image Base Offset relative pointer-typedef.

  - ### IBO32DataType

    public IBO32DataType(DataTypeManager dtm)
    Constructs a 32-bit Image Base Offset relative pointer-typedef.
    Parameters:
      `dtm` - data-type manager whose data organization should be used

- ## Method Details

  - ### getDescription

    public String getDescription()
    Description copied from interface: `DataType`
    Get a String briefly describing this DataType.
    Returns:
      a one-liner describing this DataType.

  - ### clone

    public DataType clone(DataTypeManager dtm)
    Description copied from interface: `DataType`
    Returns an instance of this DataType using the specified `DataTypeManager` to allow its use of the corresponding `DataOrganization` while retaining its unique identity (see `DataType.getUniversalID()` and archive association (see `DataType.getSourceArchive()`) if applicable.

    This instance will be returned if this datatype's DataTypeManager matches the specified dtm. The recursion depth of a clone will stop on any datatype whose `DataTypeManager` matches the specified dtm and simply use the existing datatype instance.

    NOTE: In general, this method should not be used to obtain an instance to be modified. In most cases changes may be made directly to this instance if supported or to a `DataType.copy(DataTypeManager)` of this type.

    Parameters:
      `dtm` - the data-type manager instance whose data-organization should apply.
    Returns:
      cloned instance which may be the same as this instance

  - ### getMnemonic

    public String getMnemonic(Settings settings)
    Description copied from interface: `DataType`
    Get the mnemonic for this DataType.
    Specified by:
      `getMnemonic` in interface `DataType`
    Overrides:
      `getMnemonic` in class `AbstractDataType`
    Parameters:
      `settings` - settings which may influence the result or null
    Returns:
      the mnemonic for this DataType.

  - ### getBuiltInSettingsDefinitions

    public TypeDefSettingsDefinition[] getBuiltInSettingsDefinitions()
    Description copied from class: `BuiltIn`
    Gets a list of all the settingsDefinitions used by this datatype.
    Overrides:
      `getBuiltInSettingsDefinitions` in class `AbstractPointerTypedefBuiltIn`
    Returns:
      a list of the settingsDefinitions used by this datatype.

  - ### createIBO32PointerTypedef

    public static PointerTypedef createIBO32PointerTypedef(DataType referencedDataType)
    Create a IBO32 `PointerTypedef` with auto-naming. If needed, a name and category may be assigned to the returned instance. Unlike using an immutable `IBO32DataType` instance the returned instance is mutable.
    Parameters:
      `referencedDataType` - referenced datatype or null
    Returns:
      new IBO32 pointer-typedef