Class SignedWordDataType

All Implemented Interfaces:
ArrayStringable, BuiltInDataType, DataType, ExtensionPoint

public class SignedWordDataType extends AbstractSignedIntegerDataType
Provides a basic implementation of a signed word datatype
  • Field Details

    • dataType

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

    • SignedWordDataType

      public SignedWordDataType()
    • SignedWordDataType

      public SignedWordDataType(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.
    • getOppositeSignednessDataType

      public WordDataType 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 SignedWordDataType 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
    • getCTypeDeclaration

      public String getCTypeDeclaration(DataOrganization dataOrganization)
      Description copied from class: BuiltIn
      Returns null for FactoryDataType (which should never be used) and Dynamic types which should generally be replaced by a primitive array (e.g., char[5]) or, a primitive pointer (e.g., char *). For other types an appropriately sized unsigned integer typedef is returned.
      Specified by:
      getCTypeDeclaration in interface BuiltInDataType
      Overrides:
      getCTypeDeclaration in class BuiltIn
      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.
      See Also: