BinaryNinja::CoreCallingConvention Class Reference

Public Member Functions

 CoreCallingConvention (BNCallingConvention *cc)
 
virtual std::vector< uint32_t > GetCallerSavedRegisters () override
 
virtual std::vector< uint32_t > GetCalleeSavedRegisters () override
 
virtual std::vector< uint32_t > GetIntegerArgumentRegisters () override
 
virtual std::vector< uint32_t > GetFloatArgumentRegisters () override
 
virtual bool AreArgumentRegistersSharedIndex () override
 
virtual bool AreArgumentRegistersUsedForVarArgs () override
 
virtual bool IsStackReservedForArgumentRegisters () override
 
virtual bool IsStackAdjustedOnReturn () override
 
virtual bool IsEligibleForHeuristics () override
 
virtual uint32_t GetIntegerReturnValueRegister () override
 
virtual uint32_t GetHighIntegerReturnValueRegister () override
 
virtual uint32_t GetFloatReturnValueRegister () override
 
virtual uint32_t GetGlobalPointerRegister () override
 
virtual std::vector< uint32_t > GetImplicitlyDefinedRegisters () override
 
virtual RegisterValue GetIncomingRegisterValue (uint32_t reg, Function *func) override
 
virtual RegisterValue GetIncomingFlagValue (uint32_t flag, Function *func) override
 
virtual Variable GetIncomingVariableForParameterVariable (const Variable &var, Function *func) override
 
virtual Variable GetParameterVariableForIncomingVariable (const Variable &var, Function *func) override
 
- Public Member Functions inherited from BinaryNinja::CallingConvention
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 ()
 

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
 
- Protected Member Functions inherited from BinaryNinja::CallingConvention
 CallingConvention (BNCallingConvention *cc)
 
 CallingConvention (Architecture *arch, const std::string &name)
 
- Static Protected Member Functions inherited from BinaryNinja::CallingConvention
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)
 

Constructor & Destructor Documentation

◆ CoreCallingConvention()

CoreCallingConvention::CoreCallingConvention ( BNCallingConvention *  cc)

Member Function Documentation

◆ AreArgumentRegistersSharedIndex()

bool CoreCallingConvention::AreArgumentRegistersSharedIndex ( )
overridevirtual

Reimplemented from BinaryNinja::CallingConvention.

◆ AreArgumentRegistersUsedForVarArgs()

bool CoreCallingConvention::AreArgumentRegistersUsedForVarArgs ( )
overridevirtual

Reimplemented from BinaryNinja::CallingConvention.

◆ GetCalleeSavedRegisters()

vector< uint32_t > CoreCallingConvention::GetCalleeSavedRegisters ( )
overridevirtual

Reimplemented from BinaryNinja::CallingConvention.

◆ GetCallerSavedRegisters()

vector< uint32_t > CoreCallingConvention::GetCallerSavedRegisters ( )
overridevirtual

Reimplemented from BinaryNinja::CallingConvention.

◆ GetFloatArgumentRegisters()

vector< uint32_t > CoreCallingConvention::GetFloatArgumentRegisters ( )
overridevirtual

Reimplemented from BinaryNinja::CallingConvention.

◆ GetFloatReturnValueRegister()

uint32_t CoreCallingConvention::GetFloatReturnValueRegister ( )
overridevirtual

Reimplemented from BinaryNinja::CallingConvention.

◆ GetGlobalPointerRegister()

uint32_t CoreCallingConvention::GetGlobalPointerRegister ( )
overridevirtual

Reimplemented from BinaryNinja::CallingConvention.

◆ GetHighIntegerReturnValueRegister()

uint32_t CoreCallingConvention::GetHighIntegerReturnValueRegister ( )
overridevirtual

Reimplemented from BinaryNinja::CallingConvention.

◆ GetImplicitlyDefinedRegisters()

vector< uint32_t > CoreCallingConvention::GetImplicitlyDefinedRegisters ( )
overridevirtual

Reimplemented from BinaryNinja::CallingConvention.

◆ GetIncomingFlagValue()

RegisterValue CoreCallingConvention::GetIncomingFlagValue ( uint32_t  flag,
Function func 
)
overridevirtual

Reimplemented from BinaryNinja::CallingConvention.

◆ GetIncomingRegisterValue()

RegisterValue CoreCallingConvention::GetIncomingRegisterValue ( uint32_t  reg,
Function func 
)
overridevirtual

Reimplemented from BinaryNinja::CallingConvention.

◆ GetIncomingVariableForParameterVariable()

Variable CoreCallingConvention::GetIncomingVariableForParameterVariable ( const Variable var,
Function func 
)
overridevirtual

Reimplemented from BinaryNinja::CallingConvention.

◆ GetIntegerArgumentRegisters()

vector< uint32_t > CoreCallingConvention::GetIntegerArgumentRegisters ( )
overridevirtual

Reimplemented from BinaryNinja::CallingConvention.

◆ GetIntegerReturnValueRegister()

uint32_t CoreCallingConvention::GetIntegerReturnValueRegister ( )
overridevirtual

◆ GetParameterVariableForIncomingVariable()

Variable CoreCallingConvention::GetParameterVariableForIncomingVariable ( const Variable var,
Function func 
)
overridevirtual

Reimplemented from BinaryNinja::CallingConvention.

◆ IsEligibleForHeuristics()

bool CoreCallingConvention::IsEligibleForHeuristics ( )
overridevirtual

Reimplemented from BinaryNinja::CallingConvention.

◆ IsStackAdjustedOnReturn()

bool CoreCallingConvention::IsStackAdjustedOnReturn ( )
overridevirtual

Reimplemented from BinaryNinja::CallingConvention.

◆ IsStackReservedForArgumentRegisters()

bool CoreCallingConvention::IsStackReservedForArgumentRegisters ( )
overridevirtual

Reimplemented from BinaryNinja::CallingConvention.


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