Ghidra 11.4.2
Ghidra internal decompiler documentation.
Loading...
Searching...
No Matches
ghidra::ParameterPieces Struct Reference

Basic elements of a parameter: address, data-type, properties. More...

#include <fspec.hh>

Collaboration diagram for ghidra::ParameterPieces:
[legend]

Public Types

enum  {
  isthis = 1 , hiddenretparm = 2 , indirectstorage = 4 , namelock = 8 ,
  typelock = 16 , sizelock = 32
}
 

Public Member Functions

void swapMarkup (ParameterPieces &op)
 Swap data-type markup between this and another parameter.
 
void assignAddressFromPieces (vector< VarnodeData > &pieces, bool mostToLeast, Architecture *glb)
 Generate a parameter address given the list of Varnodes making up the parameter.
 

Public Attributes

Address addr
 Storage address of the parameter.
 
Datatypetype
 The datatype of the parameter.
 
uint4 flags
 additional attributes of the parameter
 

Detailed Description

Basic elements of a parameter: address, data-type, properties.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
isthis 

Parameter is "this" pointer.

hiddenretparm 

Parameter is hidden pointer to return value, mirrors Varnode::hiddenretparm.

indirectstorage 

Parameter is indirect pointer to true parameter, mirrors Varnode::indirectstorage.

namelock 

Parameter's name is locked, mirrors Varnode::namelock.

typelock 

Parameter's data-type is locked, mirrors Varnode::typelock.

sizelock 

Size of the parameter is locked (but not the data-type)

Member Function Documentation

◆ assignAddressFromPieces()

void ghidra::ParameterPieces::assignAddressFromPieces ( vector< VarnodeData > &  pieces,
bool  mostToLeast,
Architecture glb 
)

Generate a parameter address given the list of Varnodes making up the parameter.

Parameters
piecesis the given list of Varnodes
mostToLeastis true if the list is ordered most significant to least
glbis the Architecture

References addr, ghidra::AddrSpaceManager::findAddJoin(), ghidra::VarnodeData::getAddr(), ghidra::JoinRecord::getUnified(), ghidra::JoinRecord::mergeSequence(), and ghidra::Architecture::translate.

Referenced by ghidra::MultiSlotAssign::assignAddress(), ghidra::MultiMemberAssign::assignAddress(), and ghidra::MultiSlotDualAssign::assignAddress().

◆ swapMarkup()

void ghidra::ParameterPieces::swapMarkup ( ParameterPieces op)

Swap data-type markup between this and another parameter.

Swap any data-type and flags, but leave the storage address intact. This assumes the two parameters are the same size.

Parameters
opis the other parameter to swap with this.

References flags, and type.


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