BinaryNinja::CallingConvention Class Referenceabstract

Public Member Functions

Ref< ArchitectureGetArchitecture () const
 
std::string GetName () const
 
virtual std::vector< uint32_t > GetCallerSavedRegisters ()
 
virtual std::vector< uint32_t > GetCalleeSavedRegisters ()
 
virtual std::vector< uint32_t > GetIntegerArgumentRegisters ()
 
virtual std::vector< uint32_t > GetFloatArgumentRegisters ()
 
virtual bool AreArgumentRegistersSharedIndex ()
 
virtual bool AreArgumentRegistersUsedForVarArgs ()
 
virtual bool IsStackReservedForArgumentRegisters ()
 
virtual bool IsStackAdjustedOnReturn ()
 
virtual bool IsEligibleForHeuristics ()
 
virtual uint32_t GetIntegerReturnValueRegister ()=0
 
virtual uint32_t GetHighIntegerReturnValueRegister ()
 
virtual uint32_t GetFloatReturnValueRegister ()
 
virtual uint32_t GetGlobalPointerRegister ()
 
virtual std::vector< uint32_t > GetImplicitlyDefinedRegisters ()
 
virtual RegisterValue GetIncomingRegisterValue (uint32_t reg, Function *func)
 
virtual RegisterValue GetIncomingFlagValue (uint32_t flag, Function *func)
 
virtual Variable GetIncomingVariableForParameterVariable (const Variable &var, Function *func)
 
virtual Variable GetParameterVariableForIncomingVariable (const Variable &var, Function *func)
 
- Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNCallingConvention, BNNewCallingConventionReference, BNFreeCallingConvention >
 CoreRefCountObject ()
 
virtual ~CoreRefCountObject ()
 
BNCallingConvention * GetObject () const
 
void AddRef ()
 
void Release ()
 
void AddRefForRegistration ()
 
void ReleaseForRegistration ()
 

Protected Member Functions

 CallingConvention (BNCallingConvention *cc)
 
 CallingConvention (Architecture *arch, const std::string &name)
 

Static Protected Member Functions

static void FreeCallback (void *ctxt)
 
static uint32_t * GetCallerSavedRegistersCallback (void *ctxt, size_t *count)
 
static uint32_t * GetCalleeSavedRegistersCallback (void *ctxt, size_t *count)
 
static uint32_t * GetIntegerArgumentRegistersCallback (void *ctxt, size_t *count)
 
static uint32_t * GetFloatArgumentRegistersCallback (void *ctxt, size_t *count)
 
static void FreeRegisterListCallback (void *ctxt, uint32_t *regs)
 
static bool AreArgumentRegistersSharedIndexCallback (void *ctxt)
 
static bool AreArgumentRegistersUsedForVarArgsCallback (void *ctxt)
 
static bool IsStackReservedForArgumentRegistersCallback (void *ctxt)
 
static bool IsStackAdjustedOnReturnCallback (void *ctxt)
 
static bool IsEligibleForHeuristicsCallback (void *ctxt)
 
static uint32_t GetIntegerReturnValueRegisterCallback (void *ctxt)
 
static uint32_t GetHighIntegerReturnValueRegisterCallback (void *ctxt)
 
static uint32_t GetFloatReturnValueRegisterCallback (void *ctxt)
 
static uint32_t GetGlobalPointerRegisterCallback (void *ctxt)
 
static uint32_t * GetImplicitlyDefinedRegistersCallback (void *ctxt, size_t *count)
 
static void GetIncomingRegisterValueCallback (void *ctxt, uint32_t reg, BNFunction *func, BNRegisterValue *result)
 
static void GetIncomingFlagValueCallback (void *ctxt, uint32_t reg, BNFunction *func, BNRegisterValue *result)
 
static void GetIncomingVariableForParameterVariableCallback (void *ctxt, const BNVariable *var, BNFunction *func, BNVariable *result)
 
static void GetParameterVariableForIncomingVariableCallback (void *ctxt, const BNVariable *var, BNFunction *func, BNVariable *result)
 

Additional Inherited Members

- Static Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNCallingConvention, BNNewCallingConventionReference, BNFreeCallingConvention >
static BNCallingConvention * GetObject (CoreRefCountObject *obj)
 
- Public Attributes inherited from BinaryNinja::CoreRefCountObject< BNCallingConvention, BNNewCallingConventionReference, BNFreeCallingConvention >
std::atomic< int > m_refs
 
bool m_registeredRef
 
BNCallingConvention * m_object
 

Constructor & Destructor Documentation

◆ CallingConvention() [1/2]

CallingConvention::CallingConvention ( BNCallingConvention *  cc)
protected

◆ CallingConvention() [2/2]

BinaryNinja::CallingConvention::CallingConvention ( Architecture arch,
const std::string &  name 
)
protected

Member Function Documentation

◆ AreArgumentRegistersSharedIndex()

bool CallingConvention::AreArgumentRegistersSharedIndex ( )
virtual

◆ AreArgumentRegistersSharedIndexCallback()

bool CallingConvention::AreArgumentRegistersSharedIndexCallback ( void *  ctxt)
staticprotected

◆ AreArgumentRegistersUsedForVarArgs()

bool CallingConvention::AreArgumentRegistersUsedForVarArgs ( )
virtual

◆ AreArgumentRegistersUsedForVarArgsCallback()

bool CallingConvention::AreArgumentRegistersUsedForVarArgsCallback ( void *  ctxt)
staticprotected

◆ FreeCallback()

void CallingConvention::FreeCallback ( void *  ctxt)
staticprotected

◆ FreeRegisterListCallback()

void CallingConvention::FreeRegisterListCallback ( void *  ctxt,
uint32_t *  regs 
)
staticprotected

◆ GetArchitecture()

Ref< Architecture > CallingConvention::GetArchitecture ( ) const

◆ GetCalleeSavedRegisters()

vector< uint32_t > CallingConvention::GetCalleeSavedRegisters ( )
virtual

◆ GetCalleeSavedRegistersCallback()

uint32_t * CallingConvention::GetCalleeSavedRegistersCallback ( void *  ctxt,
size_t *  count 
)
staticprotected

◆ GetCallerSavedRegisters()

vector< uint32_t > CallingConvention::GetCallerSavedRegisters ( )
virtual

◆ GetCallerSavedRegistersCallback()

uint32_t * CallingConvention::GetCallerSavedRegistersCallback ( void *  ctxt,
size_t *  count 
)
staticprotected

◆ GetFloatArgumentRegisters()

vector< uint32_t > CallingConvention::GetFloatArgumentRegisters ( )
virtual

◆ GetFloatArgumentRegistersCallback()

uint32_t * CallingConvention::GetFloatArgumentRegistersCallback ( void *  ctxt,
size_t *  count 
)
staticprotected

◆ GetFloatReturnValueRegister()

uint32_t CallingConvention::GetFloatReturnValueRegister ( )
virtual

◆ GetFloatReturnValueRegisterCallback()

uint32_t CallingConvention::GetFloatReturnValueRegisterCallback ( void *  ctxt)
staticprotected

◆ GetGlobalPointerRegister()

uint32_t CallingConvention::GetGlobalPointerRegister ( )
virtual

◆ GetGlobalPointerRegisterCallback()

uint32_t CallingConvention::GetGlobalPointerRegisterCallback ( void *  ctxt)
staticprotected

◆ GetHighIntegerReturnValueRegister()

uint32_t CallingConvention::GetHighIntegerReturnValueRegister ( )
virtual

◆ GetHighIntegerReturnValueRegisterCallback()

uint32_t CallingConvention::GetHighIntegerReturnValueRegisterCallback ( void *  ctxt)
staticprotected

◆ GetImplicitlyDefinedRegisters()

vector< uint32_t > CallingConvention::GetImplicitlyDefinedRegisters ( )
virtual

◆ GetImplicitlyDefinedRegistersCallback()

uint32_t * CallingConvention::GetImplicitlyDefinedRegistersCallback ( void *  ctxt,
size_t *  count 
)
staticprotected

◆ GetIncomingFlagValue()

RegisterValue CallingConvention::GetIncomingFlagValue ( uint32_t  flag,
Function func 
)
virtual

◆ GetIncomingFlagValueCallback()

void CallingConvention::GetIncomingFlagValueCallback ( void *  ctxt,
uint32_t  reg,
BNFunction *  func,
BNRegisterValue result 
)
staticprotected

◆ GetIncomingRegisterValue()

RegisterValue CallingConvention::GetIncomingRegisterValue ( uint32_t  reg,
Function func 
)
virtual

◆ GetIncomingRegisterValueCallback()

void CallingConvention::GetIncomingRegisterValueCallback ( void *  ctxt,
uint32_t  reg,
BNFunction *  func,
BNRegisterValue result 
)
staticprotected

◆ GetIncomingVariableForParameterVariable()

Variable CallingConvention::GetIncomingVariableForParameterVariable ( const Variable var,
Function func 
)
virtual

◆ GetIncomingVariableForParameterVariableCallback()

void CallingConvention::GetIncomingVariableForParameterVariableCallback ( void *  ctxt,
const BNVariable var,
BNFunction *  func,
BNVariable result 
)
staticprotected

◆ GetIntegerArgumentRegisters()

vector< uint32_t > CallingConvention::GetIntegerArgumentRegisters ( )
virtual

◆ GetIntegerArgumentRegistersCallback()

uint32_t * CallingConvention::GetIntegerArgumentRegistersCallback ( void *  ctxt,
size_t *  count 
)
staticprotected

◆ GetIntegerReturnValueRegister()

virtual uint32_t BinaryNinja::CallingConvention::GetIntegerReturnValueRegister ( )
pure virtual

◆ GetIntegerReturnValueRegisterCallback()

uint32_t CallingConvention::GetIntegerReturnValueRegisterCallback ( void *  ctxt)
staticprotected

◆ GetName()

string CallingConvention::GetName ( ) const

◆ GetParameterVariableForIncomingVariable()

Variable CallingConvention::GetParameterVariableForIncomingVariable ( const Variable var,
Function func 
)
virtual

◆ GetParameterVariableForIncomingVariableCallback()

void CallingConvention::GetParameterVariableForIncomingVariableCallback ( void *  ctxt,
const BNVariable var,
BNFunction *  func,
BNVariable result 
)
staticprotected

◆ IsEligibleForHeuristics()

bool CallingConvention::IsEligibleForHeuristics ( )
virtual

◆ IsEligibleForHeuristicsCallback()

bool CallingConvention::IsEligibleForHeuristicsCallback ( void *  ctxt)
staticprotected

◆ IsStackAdjustedOnReturn()

bool CallingConvention::IsStackAdjustedOnReturn ( )
virtual

◆ IsStackAdjustedOnReturnCallback()

bool CallingConvention::IsStackAdjustedOnReturnCallback ( void *  ctxt)
staticprotected

◆ IsStackReservedForArgumentRegisters()

bool CallingConvention::IsStackReservedForArgumentRegisters ( )
virtual

◆ IsStackReservedForArgumentRegistersCallback()

bool CallingConvention::IsStackReservedForArgumentRegistersCallback ( void *  ctxt)
staticprotected

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