decompiler 1.0.0
Public Member Functions | Private Attributes | List of all members
ghidra::ProtoStoreInternal Class Reference

A collection of parameter descriptions without backing symbols. More...

#include <fspec.hh>

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

Public Member Functions

 ProtoStoreInternal (Datatype *vt)
 Constructor.
 
virtual ProtoParameter * setInput (int4 i, const string &nm, const ParameterPieces &pieces)
 Establish name, data-type, storage of a specific input parameter.
 
virtual void clearInput (int4 i)
 Clear the input parameter at the specified slot.
 
virtual void clearAllInputs (void)
 Clear all input parameters (and any backing symbols)
 
virtual int4 getNumInputs (void) const
 Get the number of input parameters for this prototype.
 
virtual ProtoParameter * getInput (int4 i)
 Get the i-th input parameter (or NULL if it doesn't exist)
 
virtual ProtoParameter * setOutput (const ParameterPieces &piece)
 Establish the data-type and storage of the return value.
 
virtual void clearOutput (void)
 Clear the return value to TYPE_VOID.
 
virtual ProtoParameter * getOutput (void)
 Get the return-value description.
 
virtual ProtoStore * clone (void) const
 Clone the entire collection of parameter descriptions.
 
virtual void encode (Encoder &encoder) const
 Encode any parameters that are not backed by symbols to a stream.
 
virtual void decode (Decoder &decoder, ProtoModel *model)
 Restore any internal parameter descriptions from a stream.
 
- Public Member Functions inherited from ghidra::ProtoStore
virtual ~ProtoStore (void)
 Constructor.
 

Private Attributes

Datatype * voidtype
 Cached reference to the void data-type.
 
vector< ProtoParameter * > inparam
 Descriptions of input parameters.
 
ProtoParameter * outparam
 Description of the return value.
 

Detailed Description

A collection of parameter descriptions without backing symbols.

Parameter descriptions are stored internally to the object and are not mirrored by a symbol table.

Constructor & Destructor Documentation

◆ ProtoStoreInternal()

ghidra::ProtoStoreInternal::ProtoStoreInternal ( Datatype *  vt)

Constructor.

Parameters
vtis the void data-type used for an unspecified return value

References ghidra::ParameterPieces::flags, outparam, setOutput(), ghidra::ParameterPieces::type, and voidtype.

Member Function Documentation

◆ clearAllInputs()

void ghidra::ProtoStoreInternal::clearAllInputs ( void  )
virtual

Clear all input parameters (and any backing symbols)

Implements ghidra::ProtoStore.

References inparam.

◆ clearInput()

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

Implements ghidra::ProtoStore.

References inparam.

◆ clearOutput()

void ghidra::ProtoStoreInternal::clearOutput ( void  )
virtual

Clear the return value to TYPE_VOID.

Implements ghidra::ProtoStore.

References outparam, and voidtype.

◆ clone()

ProtoStore * ghidra::ProtoStoreInternal::clone ( void  ) const
virtual

Clone the entire collection of parameter descriptions.

Implements ghidra::ProtoStore.

References ghidra::ProtoParameter::clone(), inparam, outparam, and voidtype.

◆ decode()

void ghidra::ProtoStoreInternal::decode ( Decoder &  decoder,
ProtoModel *  model 
)
virtual

◆ encode()

void ghidra::ProtoStoreInternal::encode ( Encoder &  encoder) const
virtual

◆ getInput()

ProtoParameter * ghidra::ProtoStoreInternal::getInput ( int4  i)
virtual

Get the i-th input parameter (or NULL if it doesn't exist)

Implements ghidra::ProtoStore.

References inparam.

◆ getNumInputs()

int4 ghidra::ProtoStoreInternal::getNumInputs ( void  ) const
virtual

Get the number of input parameters for this prototype.

Implements ghidra::ProtoStore.

References inparam.

◆ getOutput()

ProtoParameter * ghidra::ProtoStoreInternal::getOutput ( void  )
virtual

Get the return-value description.

Implements ghidra::ProtoStore.

References outparam.

◆ setInput()

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

Implements ghidra::ProtoStore.

References ghidra::ParameterPieces::addr, ghidra::ParameterPieces::flags, inparam, and ghidra::ParameterPieces::type.

Referenced by decode().

◆ setOutput()

ProtoParameter * ghidra::ProtoStoreInternal::setOutput ( const ParameterPieces &  piece)
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

Implements ghidra::ProtoStore.

References ghidra::ParameterPieces::addr, ghidra::ParameterPieces::flags, outparam, and ghidra::ParameterPieces::type.

Referenced by decode(), and ProtoStoreInternal().


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