|
Ghidra Decompiler Analysis Engine
|
Special Datatype object used to describe pointers that index into the symbol table. More...
#include <type.hh>


Public Member Functions | |
| TypeSpacebase (const TypeSpacebase &op) | |
| Construct from another TypeSpacebase. | |
| TypeSpacebase (AddrSpace *id, const Address &frame, Architecture *g) | |
| Construct given an address space, scope, and architecture. | |
| Scope * | getMap (void) const |
| Get the symbol table indexed by this. More... | |
| Address | getAddress (uintb off, int4 sz, const Address &point) const |
| Construct an Address given an offset. More... | |
| 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 |
| 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. | |
| bool | hasSameVariableBase (const Datatype *ct) const |
| Are these the same variable length data-type. More... | |
| virtual void | printRaw (ostream &s) const |
| Print a description of the type to stream. More... | |
| 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... | |
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... | |
Protected Member Functions inherited from Datatype | |
| void | restoreXmlBasic (const Element *el) |
| Recover basic data-type properties. 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... | |
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) | |
Special Datatype object used to describe pointers that index into the symbol table.
A TypeSpacebase treats a specific AddrSpace as "structure" that will get indexed in to. This facilitates type propagation from local symbols into the stack space and from global symbols into the RAM space.
|
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.
|
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.
Construct an Address given an offset.
Return the Address being referred to by a specific offset relative to a pointer with this Datatype
| off | is the offset relative to the pointer |
| sz | is the size of offset (as a pointer) |
| point | is a "context" reference for the request |
| Scope * TypeSpacebase::getMap | ( | void | ) | const |
Get the symbol table indexed by this.
This data-type can index either a local or the global scope
|
virtual |
Recover component data-type one-level down.
Given an offset into this data-type, return the component data-type at that offset. Also, pass back a "renormalized" offset suitable for recursize getSubType() calls: i.e. if the original offset hits the exact start of the sub-type, 0 is passed back. If there is no valid component data-type at the offset, return NULL and pass back the original offset
| off | is the offset into this data-type |
| newoff | is a pointer to the passed-back offset |
Reimplemented from Datatype.
|
virtual |
Find the first component data-type before the given offset that is (or contains) an array, and pass back the difference between the component's start and the given offset. Return the component data-type or null if no array is found.
| off | is the given offset into this data-type |
| newoff | is used to pass back the offset difference |
| elSize | is used to pass back the array element size |
Reimplemented from Datatype.
|
virtual |
Find the first component data-type after the given offset that is (or contains) an array, and pass back the difference between the component's start and the given offset. Return the component data-type or null if no array is found.
| off | is the given offset into this data-type |
| newoff | is used to pass back the offset difference |
| elSize | is used to pass back the array element size |
Reimplemented from Datatype.
|
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.
1.8.17