decompiler  1.0.0
Public Member Functions | List of all members
ghidra::ProtoStore Class Referenceabstract

A collection parameter descriptions making up a function prototype. More...

#include <fspec.hh>

Inheritance diagram for ghidra::ProtoStore:
ghidra::ProtoStoreInternal ghidra::ProtoStoreSymbol

Public Member Functions

virtual ~ProtoStore (void)
 Constructor.
 
virtual ProtoParametersetInput (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 ProtoParametergetInput (int4 i)=0
 Get the i-th input parameter (or NULL if it doesn't exist)
 
virtual ProtoParametersetOutput (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 ProtoParametergetOutput (void)=0
 Get the return-value description.
 
virtual ProtoStoreclone (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...
 

Detailed Description

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.

Member Function Documentation

◆ clearInput()

virtual void ghidra::ProtoStore::clearInput ( int4  i)
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

Parameters
iis the specified parameter slot to remove

Implemented in ghidra::ProtoStoreInternal, and ghidra::ProtoStoreSymbol.

Referenced by ghidra::FuncProto::removeParam().

◆ decode()

virtual void ghidra::ProtoStore::decode ( Decoder decoder,
ProtoModel model 
)
pure virtual

Restore any internal parameter descriptions from a stream.

Parse an <internallist> element containing <param> and <retparam> child elements.

Parameters
decoderis the stream decoder
modelis prototype model for determining storage for unassigned parameters

Implemented in ghidra::ProtoStoreInternal, and ghidra::ProtoStoreSymbol.

◆ encode()

virtual void ghidra::ProtoStore::encode ( Encoder encoder) const
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.

Parameters
encoderis the stream encoder

Implemented in ghidra::ProtoStoreInternal, and ghidra::ProtoStoreSymbol.

◆ setInput()

virtual ProtoParameter* ghidra::ProtoStore::setInput ( int4  i,
const string &  nm,
const ParameterPieces pieces 
)
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.

Parameters
iis the specified input slot
nmis the (optional) name of the parameter
piecesholds the raw storage address and data-type to set
Returns
the new/modified ProtoParameter

Implemented in ghidra::ProtoStoreInternal, and ghidra::ProtoStoreSymbol.

◆ setOutput()

virtual ProtoParameter* ghidra::ProtoStore::setOutput ( const ParameterPieces piece)
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.

Parameters
pieceholds the raw storage address and data-type to set
Returns
the new/modified ProtoParameter

Implemented in ghidra::ProtoStoreInternal, and ghidra::ProtoStoreSymbol.


The documentation for this class was generated from the following file: