Class ByteDataType

All Implemented Interfaces:
ArrayStringable, BuiltInDataType, DataType, ExtensionPoint

public class ByteDataType extends AbstractUnsignedIntegerDataType
Provides a definition of a Byte within a program.
  • Field Details

    • dataType

      public static final ByteDataType dataType
      A statically defined ByteDataType instance.
  • Constructor Details

    • ByteDataType

      public ByteDataType()
    • ByteDataType

      public ByteDataType(DataTypeManager dtm)
  • 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.
    • getLength

      public int getLength()
      Description copied from interface: DataType
      Get the length of this DataType as a number of 8-bit bytes.

      For primitive datatypes this reflects the smallest varnode which can be used to contain its value (i.e., raw data length).

      Example: For x86 32-bit gcc an 80-bit long double raw data length of 10-bytes will fit within a floating point register while its aligned-length of 12-bytes is used by the gcc compiler for data/array/component allocations to maintain alignment (i.e., sizeof(long double) ).

      NOTE: Other than the VoidDataType, no datatype should ever return 0, even if DataType.isZeroLength(), and only Dynamic/FactoryDataType datatypes should return -1. If DataType.isZeroLength() is true a length of 1 should be returned. Where a zero-length datatype can be handled (e.g., Composite) the DataType.isZeroLength() method should be used.

      Returns:
      the length of this DataType
    • getAssemblyMnemonic

      public String getAssemblyMnemonic()
      Overrides:
      getAssemblyMnemonic in class AbstractIntegerDataType
      Returns:
      the Assembly style data-type declaration for this data-type.
    • getDecompilerDisplayName

      public String getDecompilerDisplayName(DecompilerLanguage language)
      Description copied from class: BuiltIn
      Return token used to represent this type in decompiler/source-code output
      Overrides:
      getDecompilerDisplayName in class BuiltIn
      Parameters:
      language - is the language being displayed
      Returns:
      the name string
    • getOppositeSignednessDataType

      public SignedByteDataType getOppositeSignednessDataType()
      Specified by:
      getOppositeSignednessDataType in class AbstractIntegerDataType
      Returns:
      the data-type with the opposite signedness from this data-type. For example, this method on IntegerDataType will return an instance of UnsignedIntegerDataType.
    • clone

      public ByteDataType 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