Package ghidra.program.model.data

# Interface BuiltInDataType

All Superinterfaces:
  `DataType`, `ExtensionPoint`

All Known Subinterfaces:
  `Dynamic`, `FactoryDataType`

All Known Implementing Classes:
  `AbstractComplexDataType`, `AbstractFloatDataType`, `AbstractIntegerDataType`, `AbstractLeb128DataType`, `AbstractPointerTypedefBuiltIn`, `AbstractSignedIntegerDataType`, `AbstractStringDataType`, `AbstractUnsignedIntegerDataType`, `AIFFDataType`, `AlignmentDataType`, `AndroidElfRelocationTableDataType`, `AUDataType`, `BadDataType`, `BitmapResourceDataType`, `BooleanDataType`, `BuiltIn`, `ByteDataType`, `CharDataType`, `Complex16DataType`, `Complex32DataType`, `Complex8DataType`, `CountedDynamicDataType`, `DialogResourceDataType`, `DoubleComplexDataType`, `DoubleDataType`, `DwarfEncodingModeDataType`, `DWordDataType`, `DynamicDataType`, `ElfDataType`, `FactoryStructureDataType`, `FileTimeDataType`, `Float10DataType`, `Float16DataType`, `Float2DataType`, `Float4DataType`, `Float8DataType`, `FloatComplexDataType`, `FloatDataType`, `GifDataType`, `GroupIconResourceDataType`, `GuidDataType`, `HTMLResourceDataType`, `IBO32DataType`, `IBO64DataType`, `IconMaskResourceDataType`, `IconResourceDataType`, `IndexedDynamicDataType`, `Integer16DataType`, `Integer3DataType`, `Integer5DataType`, `Integer6DataType`, `Integer7DataType`, `IntegerDataType`, `JPEGDataType`, `LongDataType`, `LongDoubleComplexDataType`, `LongDoubleDataType`, `LongLongDataType`, `MacintoshTimeStampDataType`, `MenuResourceDataType`, `MissingBuiltInDataType`, `MUIResourceDataType`, `PascalString255DataType`, `PascalStringDataType`, `PascalUnicodeDataType`, `PcRelative31AddressDataType`, `PeDataType`, `PERichTableDataType`, `PEx64UnwindInfoDataType`, `PngDataType`, `Pointer16DataType`, `Pointer24DataType`, `Pointer32DataType`, `Pointer40DataType`, `Pointer48DataType`, `Pointer56DataType`, `Pointer64DataType`, `Pointer8DataType`, `PointerDataType`, `QWordDataType`, `RepeatCountDataType`, `RepeatedDynamicDataType`, `RepeatedStringDataType`, `RTTI0DataType`, `RTTI1DataType`, `RTTI2DataType`, `RTTI3DataType`, `RTTI4DataType`, `RTTIDataType`, `SegmentedCodePointerDataType`, `ShiftedAddressDataType`, `ShortDataType`, `SignedByteDataType`, `SignedCharDataType`, `SignedDWordDataType`, `SignedLeb128DataType`, `SignedQWordDataType`, `SignedWordDataType`, `StringDataType`, `StringUTF8DataType`, `StructuredDynamicDataType`, `TerminatedStringDataType`, `TerminatedUnicode32DataType`, `TerminatedUnicodeDataType`, `Undefined`, `Undefined1DataType`, `Undefined2DataType`, `Undefined3DataType`, `Undefined4DataType`, `Undefined5DataType`, `Undefined6DataType`, `Undefined7DataType`, `Undefined8DataType`, `Unicode32DataType`, `UnicodeDataType`, `UnsignedCharDataType`, `UnsignedInteger16DataType`, `UnsignedInteger3DataType`, `UnsignedInteger5DataType`, `UnsignedInteger6DataType`, `UnsignedInteger7DataType`, `UnsignedIntegerDataType`, `UnsignedLeb128DataType`, `UnsignedLongDataType`, `UnsignedLongLongDataType`, `UnsignedShortDataType`, `VoidDataType`, `WAVEDataType`, `WEVTResourceDataType`, `WideChar16DataType`, `WideChar32DataType`, `WideCharDataType`, `WordDataType`

public interface BuiltInDataType extends DataType, ExtensionPoint
NOTE: ALL DATATYPE CLASSES MUST END IN "DataType". If not, the ClassSearcher will not find them. Interface to mark classes as a built-in data type.

- ## Field Summary

  ### 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`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getCTypeDeclaration(DataOrganization dataOrganization)`
  Generate a suitable C-type declaration for this data-type as a #define or typedef.
  `void`
  `setDefaultSettings(Settings settings)`
  Set the default settings for this data type.

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

  `addParent, clone, copy, dataTypeAlignmentChanged, dataTypeDeleted, dataTypeNameChanged, dataTypeReplaced, dataTypeSizeChanged, dependsOn, encodeRepresentation, encodeValue, getAlignedLength, getAlignment, getCategoryPath, getDataOrganization, getDataTypeManager, getDataTypePath, getDefaultAbbreviatedLabelPrefix, getDefaultLabelPrefix, getDefaultLabelPrefix, getDefaultOffcutLabelPrefix, getDefaultSettings, getDescription, getDisplayName, getDocs, getLastChangeTime, getLastChangeTimeInSourceArchive, getLength, getMnemonic, getName, getParents, getPathName, getRepresentation, getSettingsDefinitions, getSourceArchive, getTypeDefSettingsDefinitions, getUniversalID, getValue, getValueClass, hasLanguageDependantLength, isDeleted, isEncodable, isEquivalent, isNotYetDefined, isZeroLength, removeParent, replaceWith, setCategoryPath, setDescription, setLastChangeTime, setLastChangeTimeInSourceArchive, setName, setNameAndCategory, setSourceArchive`

- ## Method Details

  - ### getCTypeDeclaration

    String getCTypeDeclaration(DataOrganization dataOrganization)
    Generate a suitable C-type declaration for this data-type as a #define or typedef. Since the length of a Dynamic datatype is unknown, such datatypes should only be referenced in C via a pointer. FactoryDataTypes should never be referenced and will always return null.
    Parameters:
      `dataOrganization` - or null for default
    Returns:
      definition C-statement (e.g., #define or typedef) or null if type name is a standard C-primitive name or if type is FactoryDataType or Dynamic.

  - ### setDefaultSettings

    void setDefaultSettings(Settings settings)
    Set the default settings for this data type.
    NOTE: This method is reserved for internal DB use.
    Parameters:
      `settings` - the settings to be used as this dataTypes default settings.