|
Ghidra 11.4.2
Ghidra internal decompiler documentation.
|
A parameter with a formal backing Symbol. More...
#include <fspec.hh>
Public Member Functions | |
| ParameterSymbol (void) | |
| Constructor. | |
| virtual const string & | getName (void) const |
| Get the name of the parameter ("" for return value) | |
| virtual Datatype * | getType (void) const |
| Get the data-type associate with this. | |
| virtual Address | getAddress (void) const |
| Get the storage address for this parameter. | |
| virtual int4 | getSize (void) const |
| Get the number of bytes occupied by this parameter. | |
| virtual bool | isTypeLocked (void) const |
| Is the parameter data-type locked. | |
| virtual bool | isNameLocked (void) const |
| Is the parameter name locked. | |
| virtual bool | isSizeTypeLocked (void) const |
| Is the size of the parameter locked. | |
| virtual bool | isThisPointer (void) const |
| Is this the "this" pointer for a class method. | |
| virtual bool | isIndirectStorage (void) const |
| Is this really a pointer to the true parameter. | |
| virtual bool | isHiddenReturn (void) const |
| Is this a pointer to storage for a return value. | |
| virtual bool | isNameUndefined (void) const |
| Is the name of this parameter undefined. | |
| virtual void | setTypeLock (bool val) |
| Toggle the lock on the data-type. | |
| virtual void | setNameLock (bool val) |
| Toggle the lock on the name. | |
| virtual void | setThisPointer (bool val) |
| Toggle whether this is the "this" pointer for a class method. | |
| virtual void | overrideSizeLockType (Datatype *ct) |
| Change (override) the data-type of a size-locked parameter. | |
| virtual void | resetSizeLockType (TypeFactory *factory) |
| Clear this parameter's data-type preserving any size-lock. | |
| virtual ProtoParameter * | clone (void) const |
| Clone the parameter. | |
| virtual Symbol * | getSymbol (void) const |
| Retrieve the formal Symbol associated with this parameter. | |
Public Member Functions inherited from ghidra::ProtoParameter | |
| ProtoParameter (void) | |
| Constructor. | |
| virtual | ~ProtoParameter (void) |
| Destructor. | |
| bool | operator== (const ProtoParameter &op2) const |
| Compare storage location and data-type for equality. | |
| bool | operator!= (const ProtoParameter &op2) const |
| Compare storage location and data-type for inequality. | |
Private Attributes | |
| Symbol * | sym |
| Backing Symbol for this parameter. | |
Friends | |
| class | ProtoStoreSymbol |
A parameter with a formal backing Symbol.
Input parameters generally have a symbol associated with them. This class holds a reference to the Symbol object and pulls the relevant parameter information off of it.
|
virtual |
Clone the parameter.
Implements ghidra::ProtoParameter.
|
virtual |
Get the storage address for this parameter.
Implements ghidra::ProtoParameter.
References ghidra::SymbolEntry::getAddr(), ghidra::Symbol::getFirstWholeMap(), and sym.
|
virtual |
Get the name of the parameter ("" for return value)
Implements ghidra::ProtoParameter.
References ghidra::Symbol::getName(), and sym.
|
virtual |
Get the number of bytes occupied by this parameter.
Implements ghidra::ProtoParameter.
References ghidra::Symbol::getFirstWholeMap(), ghidra::SymbolEntry::getSize(), and sym.
|
virtual |
Retrieve the formal Symbol associated with this parameter.
If there is no backing symbol an exception is thrown
Implements ghidra::ProtoParameter.
References sym.
|
virtual |
Get the data-type associate with this.
Implements ghidra::ProtoParameter.
References ghidra::Symbol::getType(), and sym.
|
virtual |
Is this a pointer to storage for a return value.
Implements ghidra::ProtoParameter.
References ghidra::Symbol::isHiddenReturn(), and sym.
|
virtual |
Is this really a pointer to the true parameter.
Implements ghidra::ProtoParameter.
References ghidra::Symbol::isIndirectStorage(), and sym.
|
virtual |
Is the parameter name locked.
Implements ghidra::ProtoParameter.
References ghidra::Symbol::isNameLocked(), and sym.
|
virtual |
Is the name of this parameter undefined.
Implements ghidra::ProtoParameter.
References ghidra::Symbol::isNameUndefined(), and sym.
|
virtual |
Is the size of the parameter locked.
Implements ghidra::ProtoParameter.
References ghidra::Symbol::isSizeTypeLocked(), and sym.
|
virtual |
Is this the "this" pointer for a class method.
Implements ghidra::ProtoParameter.
References ghidra::Symbol::isThisPointer(), and sym.
|
virtual |
Is the parameter data-type locked.
Implements ghidra::ProtoParameter.
References ghidra::Symbol::isTypeLocked(), and sym.
|
virtual |
Change (override) the data-type of a size-locked parameter.
The original parameter must have a type-lock and TYPE_UNKNOWN data-type. The size-lock is preserved and this can be cleared back to its TYPE_UNKNOWN state.
| ct | is the overriding data-type |
Implements ghidra::ProtoParameter.
References ghidra::Symbol::getScope(), ghidra::Scope::overrideSizeLockType(), and sym.
|
virtual |
Clear this parameter's data-type preserving any size-lock.
The data-type is converted to a TYPE_UNKNOWN of the same size
| factory | is the TypeFactory that will construct the unknown data-type |
Implements ghidra::ProtoParameter.
References ghidra::Symbol::getScope(), ghidra::Scope::resetSizeLockType(), and sym.
|
virtual |
Toggle the lock on the name.
Implements ghidra::ProtoParameter.
References ghidra::Scope::clearAttribute(), ghidra::Symbol::getScope(), ghidra::Varnode::namelock, ghidra::Scope::setAttribute(), and sym.
|
virtual |
Toggle whether this is the "this" pointer for a class method.
Implements ghidra::ProtoParameter.
References ghidra::Symbol::getScope(), ghidra::Scope::setThisPointer(), and sym.
|
virtual |
Toggle the lock on the data-type.
Implements ghidra::ProtoParameter.
References ghidra::Scope::clearAttribute(), ghidra::Symbol::getScope(), ghidra::Symbol::isNameUndefined(), ghidra::Varnode::namelock, ghidra::Scope::setAttribute(), sym, and ghidra::Varnode::typelock.