decompiler
1.0.0
|
A collection parameter descriptions making up a function prototype. More...
#include <fspec.hh>
Public Member Functions | |
virtual | ~ProtoStore (void) |
Constructor. | |
virtual ProtoParameter * | setInput (int4 i, const string &nm, const ParameterPieces &pieces)=0 |
Establish name, data-type, storage of a specific input parameter. More... | |
virtual void | clearInput (int4 i)=0 |
Clear the input parameter at the specified slot. More... | |
virtual void | clearAllInputs (void)=0 |
Clear all input parameters (and any backing symbols) | |
virtual int4 | getNumInputs (void) const =0 |
Get the number of input parameters for this prototype. | |
virtual ProtoParameter * | getInput (int4 i)=0 |
Get the i-th input parameter (or NULL if it doesn't exist) | |
virtual ProtoParameter * | setOutput (const ParameterPieces &piece)=0 |
Establish the data-type and storage of the return value. More... | |
virtual void | clearOutput (void)=0 |
Clear the return value to TYPE_VOID. | |
virtual ProtoParameter * | getOutput (void)=0 |
Get the return-value description. | |
virtual ProtoStore * | clone (void) const =0 |
Clone the entire collection of parameter descriptions. | |
virtual void | encode (Encoder &encoder) const =0 |
Encode any parameters that are not backed by symbols to a stream. More... | |
virtual void | decode (Decoder &decoder, ProtoModel *model)=0 |
Restore any internal parameter descriptions from a stream. More... | |
A collection parameter descriptions making up a function prototype.
A unified interface for accessing descriptions of individual parameters in a function prototype. Both input parameters and return values are described.
|
pure virtual |
Clear the input parameter at the specified slot.
The parameter is excised, any following parameters are shifted to fill its spot. If there is a backing Symbol, it is removed from the SymbolTable
i | is the specified parameter slot to remove |
Implemented in ghidra::ProtoStoreInternal, and ghidra::ProtoStoreSymbol.
Referenced by ghidra::FuncProto::removeParam().
|
pure virtual |
Restore any internal parameter descriptions from a stream.
Parse an <internallist> element containing <param> and <retparam> child elements.
decoder | is the stream decoder |
model | is prototype model for determining storage for unassigned parameters |
Implemented in ghidra::ProtoStoreInternal, and ghidra::ProtoStoreSymbol.
|
pure virtual |
Encode any parameters that are not backed by symbols to a stream.
Symbols are stored elsewhere, so symbol backed parameters are not serialized. If there are any internal parameters an <internallist> element is emitted.
encoder | is the stream encoder |
Implemented in ghidra::ProtoStoreInternal, and ghidra::ProtoStoreSymbol.
|
pure virtual |
Establish name, data-type, storage of a specific input parameter.
This either allocates a new parameter or replaces the existing one at the specified input slot. If there is a backing symbol table, a Symbol is created or modified.
i | is the specified input slot |
nm | is the (optional) name of the parameter |
pieces | holds the raw storage address and data-type to set |
Implemented in ghidra::ProtoStoreInternal, and ghidra::ProtoStoreSymbol.
|
pure virtual |
Establish the data-type and storage of the return value.
This either allocates a new parameter or replaces the existing one. A void return value can be specified with an invalid address and TYPE_VOID data-type.
piece | holds the raw storage address and data-type to set |
Implemented in ghidra::ProtoStoreInternal, and ghidra::ProtoStoreSymbol.