| 
    decompiler
    1.0.0
    
   | 
 
Datatype object representing a pointer. More...
#include <type.hh>
  
 Public Member Functions | |
| TypePointer (const TypePointer &op) | |
| Construct from another TypePointer.  | |
| TypePointer (int4 s, Datatype *pt, uint4 ws) | |
| Construct from a size, pointed-to type, and wordsize.  | |
| Datatype * | getPtrTo (void) const | 
| Get the pointed-to Datatype.  | |
| uint4 | getWordSize (void) const | 
| Get the wordsize of the pointer.  | |
| virtual void | printRaw (ostream &s) const | 
| Print a description of the type to stream.  More... | |
| virtual int4 | numDepend (void) const | 
| Return number of component sub-types.  | |
| virtual Datatype * | getDepend (int4 index) const | 
| Return the i-th component sub-type.  | |
| virtual void | printNameBase (ostream &s) const | 
| Print name as short prefix.  | |
| virtual int4 | compare (const Datatype &op, int4 level) const | 
| Compare for functional equivalence.  More... | |
| virtual int4 | compareDependency (const Datatype &op) const | 
| Compare for storage in tree structure.  More... | |
| virtual Datatype * | clone (void) const | 
| Clone the data-type.  | |
| virtual void | saveXml (ostream &s) const | 
| Serialize the data-type to XML.  More... | |
  Public Member Functions inherited from Datatype | |
| Datatype (const Datatype &op) | |
| Construct the base data-type copying low-level properties of another.  | |
| Datatype (int4 s, type_metatype m) | |
| Construct the base data-type providing size and meta-type.  | |
| Datatype (int4 s, type_metatype m, const string &n) | |
| Construct the base data-type providing size, meta-type, and name.  | |
| virtual | ~Datatype (void) | 
| Destructor.  | |
| bool | isCoreType (void) const | 
| Is this a core data-type.  | |
| bool | isCharPrint (void) const | 
| Does this print as a 'char'.  | |
| bool | isEnumType (void) const | 
| Is this an enumerated type.  | |
| bool | isPowerOfTwo (void) const | 
| Is this a flag-based enumeration.  | |
| bool | isASCII (void) const | 
| Does this print as an ASCII 'char'.  | |
| bool | isUTF16 (void) const | 
| Does this print as UTF16 'wchar'.  | |
| bool | isUTF32 (void) const | 
| Does this print as UTF32 'wchar'.  | |
| bool | isVariableLength (void) const | 
| Is this a variable length structure.  | |
| bool | hasSameVariableBase (const Datatype *ct) const | 
| Are these the same variable length data-type.  More... | |
| bool | isOpaqueString (void) const | 
| Is this an opaquely encoded string.  | |
| uint4 | getInheritable (void) const | 
| Get properties pointers inherit.  | |
| type_metatype | getMetatype (void) const | 
| Get the type meta-type.  | |
| uint8 | getId (void) const | 
| Get the type id.  | |
| int4 | getSize (void) const | 
| Get the type size.  | |
| const string & | getName (void) const | 
| Get the type name.  | |
| virtual Datatype * | getSubType (uintb off, uintb *newoff) const | 
| Recover component data-type one-level down.  More... | |
| virtual Datatype * | nearestArrayedComponentForward (uintb off, uintb *newoff, int4 *elSize) const | 
| virtual Datatype * | nearestArrayedComponentBackward (uintb off, uintb *newoff, int4 *elSize) const | 
| int4 | typeOrder (const Datatype &op) const | 
| Order this with -op- datatype.  | |
| int4 | typeOrderBool (const Datatype &op) const | 
| Order this with -op-, treating bool data-type as special.  More... | |
| void | saveXmlBasic (ostream &s) const | 
| Save basic data-type properties.  More... | |
| void | saveXmlRef (ostream &s) const | 
| Write an XML reference of this to stream.  More... | |
| bool | isPtrsubMatching (uintb offset) const | 
| Is this data-type suitable as input to a CPUI_PTRSUB op.  More... | |
Protected Member Functions | |
| virtual void | restoreXml (const Element *el, TypeFactory &typegrp) | 
| Restore data-type from XML.  More... | |
| TypePointer (void) | |
| Internal constructor for use with restoreXml.  | |
  Protected Member Functions inherited from Datatype | |
| void | restoreXmlBasic (const Element *el) | 
| Recover basic data-type properties.  More... | |
Protected Attributes | |
| Datatype * | ptrto | 
| Type being pointed to.  | |
| uint4 | wordsize | 
| What size unit does the pointer address.  | |
  Protected Attributes inherited from Datatype | |
| int4 | size | 
| Size (of variable holding a value of this type)  | |
| string | name | 
| Name of type.  | |
| type_metatype | metatype | 
| Meta-type - type disregarding size.  | |
| uint4 | flags | 
| Boolean properties of the type.  | |
| uint8 | id | 
| A unique id for the type (or 0 if an id is not assigned)  | |
Friends | |
| class | TypeFactory | 
Additional Inherited Members | |
  Protected Types inherited from Datatype | |
| enum | {  coretype = 1, chartype = 2, enumtype = 4, poweroftwo = 8, utf16 = 16, utf32 = 32, opaque_string = 64, variable_length = 128 }  | 
| Boolean properties of datatypes.  More... | |
  Static Protected Member Functions inherited from Datatype | |
| static uint8 | hashName (const string &nm) | 
| Produce a data-type id by hashing the type name.  More... | |
| static uint8 | hashSize (uint8 id, int4 size) | 
| Reversibly hash size into id.  More... | |
Datatype object representing a pointer.
      
  | 
  virtual | 
Compare for functional equivalence.
0 (equality) means the data-types are functionally equivalent (even if names differ) Smaller types come earlier. More specific types come earlier.
| op | is the data-type to compare with this | 
| level | is maximum level to descend when recursively comparing | 
Reimplemented from Datatype.
References Datatype::compare(), Datatype::getId(), Datatype::getMetatype(), Datatype::getSize(), Datatype::metatype, ptrto, Datatype::size, and wordsize.
      
  | 
  virtual | 
Compare for storage in tree structure.
Ordering of data-types for the main TypeFactory container. Comparison only goes down one-level in the component structure, before just comparing pointers.
| op | is the data-type to compare with this | 
Reimplemented from Datatype.
References Datatype::getMetatype(), Datatype::getSize(), Datatype::metatype, ptrto, Datatype::size, and wordsize.
      
  | 
  virtual | 
Print a description of the type to stream.
Print a raw description of the type to stream. Intended for debugging. Not intended to produce parsable C.
| s | is the output stream | 
Reimplemented from Datatype.
Referenced by ExternRefSymbol::buildNameType().
      
  | 
  protectedvirtual | 
Restore data-type from XML.
Restore a Datatype object from an XML element
| el | is the XML element | 
| typegrp | is the underlying TypeFactory that will hold the new object | 
Reimplemented from Datatype.
Referenced by TypeFactory::restoreXmlTypeNoRef().
      
  | 
  virtual | 
Serialize the data-type to XML.
Write out a formal description of the data-type as an XML <type> tag. For composite data-types, the description goes down one level, describing the component types only by reference.
| s | is the stream to write to | 
Reimplemented from Datatype.
References a_v_i(), and Datatype::saveXmlBasic().
 1.8.11