IDA C++ SDK 9.2
Loading...
Searching...
No Matches
func_type_data_t Struct Reference

Function type information (see tinfo_t::get_func_details()) More...

#include <typeinf.hpp>

Inheritance diagram for func_type_data_t:
qvector< funcarg_t >

Public Member Functions

callcnv_t get_explicit_cc () const
callcnv_t get_cc () const
void set_cc (callcnv_t cc)
void swap (func_type_data_t &r)
bool is_high () const
bool is_noret () const
bool is_pure () const
bool is_static () const
bool is_virtual () const
bool is_const () const
bool is_ctor () const
bool is_dtor () const
int get_call_method () const
bool is_vararg_cc () const
bool is_golang_cc () const
bool is_swift_cc () const
bool is_user_cc () const
callcnv_t guess_cc (int purged, int cc_flags) const
 Guess function calling convention use the following info: argument locations and 'stkargs'.
bool dump (qstring *out, int praloc_bits=PRALOC_STKOFF) const
 Dump information that is not always visible in the function prototype.
ssize_t find_argument (const char *name, size_t from=0, size_t to=size_t(-1)) const
 find argument by name
Public Member Functions inherited from qvector< funcarg_t >
 qvector (void)
 Constructor.
 qvector (const qvector< funcarg_t > &x)
 Constructor - creates a new qvector identical to 'x'.
 qvector (qvector< funcarg_t > &&x) noexcept
 Move constructor.
 ~qvector (void)
 Destructor.
 DEFINE_MEMORY_ALLOCATION_FUNCS () void push_back(const funcarg_t &x)
 Append a new element to the end the qvector.
void push_back (funcarg_t &&x)
 Append a new element to the end the qvector with a move semantics.
void emplace_back (Args &&... args)
 Construct and append a new element to the end the qvector with a forwarding semantics.
funcarg_tpush_back (void)
 Append a new empty element to the end of the qvector.
void pop_back (void)
 Remove the last element in the qvector.
size_t size (void) const
 Get the number of elements in the qvector.
bool empty (void) const
 Does the qvector have 0 elements?
const funcarg_toperator[] (size_t _idx) const
 Allows use of typical c-style array indexing for qvectors.
funcarg_toperator[] (size_t _idx)
 Allows use of typical c-style array indexing for qvectors.
const funcarg_tat (size_t _idx) const
 Get element at index '_idx'.
funcarg_tat (size_t _idx)
 Get element at index '_idx'.
const funcarg_tfront (void) const
 Get the first element in the qvector.
funcarg_tfront (void)
 Get the first element in the qvector.
const funcarg_tback (void) const
 Get the last element in the qvector.
funcarg_tback (void)
 Get the last element in the qvector.
void qclear (void)
 Destroy all elements but do not free memory.
void clear (void)
 Destroy all elements and free memory.
qvector< funcarg_t > & operator= (const qvector< funcarg_t > &x)
 Allow assignment of one qvector to another using '='.
qvector< funcarg_t > & operator= (qvector< funcarg_t > &&x) noexcept
 Move assignment operator.
void resize (size_t _newsize, const funcarg_t &x)
 Resize to the given size.
void resize (size_t _newsize)
 Same as resize(size_t, const T &), but extra space is filled with empty elements.
void resize_noinit (size_t _newsize)
void grow (const funcarg_t &x=funcarg_t())
 Add an element to the end of the qvector, which will be a new T() if x is not given.
size_t capacity (void) const
 Get the number of elements that this qvector can contain - not the same as the number of elements currently in the qvector (size())
void reserve (size_t cnt)
 Increase the capacity of the qvector.
void truncate (void)
 Shrink the capacity down to the current number of elements.
void swap (qvector< funcarg_t > &r) noexcept
 Replace all attributes of this qvector with that of 'r', and vice versa.
funcarg_textract (void)
 Empty the qvector and return a pointer to it's contents.
void inject (funcarg_t *s, size_t len)
 Populate the qvector with dynamic memory.
bool operator== (const qvector< funcarg_t > &r) const
 Allow ability to test the equality of two qvectors using '=='.
bool operator!= (const qvector< funcarg_t > &r) const
 Allow ability to test equality of two qvectors using '!='.
iterator begin (void)
 Get an iterator that points to the first element in the qvector.
iterator end (void)
 Get an iterator that points to the end of the qvector (NOT the last element)
const_iterator begin (void) const
 Get a const iterator that points to the first element in the qvector.
const_iterator end (void) const
 Get a const iterator that points to the end of the qvector (NOT the last element)
iterator insert (iterator it, const funcarg_t &x)
 Insert an element into the qvector at a specified position.
iterator insert (iterator it, funcarg_t &&x)
 Insert an element into the qvector with a move semantics.
iterator insert (iterator it, it2 first, it2 last)
 Insert a several elements to the qvector at a specified position.
iterator erase (iterator it)
 Remove an element from the qvector.
iterator erase (iterator first, iterator last)
 Remove a subset of the qvector.
iterator find (const funcarg_t &x)
 Find an element in the qvector.
const_iterator find (const funcarg_t &x) const
 Find an element in the qvector.
ssize_t index (const funcarg_t &x) const
 Find index of the specified value or return -1.
void add (const funcarg_t &x)
 Add an element to the end of the qvector.
void add (funcarg_t &&x)
bool has (const funcarg_t &x) const
 Does the qvector contain x?
bool add_unique (const funcarg_t &x)
 Add an element to the end of the qvector - only if it isn't already present.
bool del (const funcarg_t &x)
 Find an element and remove it.
const char * dstr (void) const

Public Attributes

int flags = 0
 Function type data property bits
callcnv_t _new_callcnv = 0
tinfo_t rettype
 return type
argloc_t retloc
 return location
uval_t stkargs = 0
 size of stack arguments (not used in build_func_type)
reginfovec_t spoiled
 spoiled register information.
cm_t _old_cc = CM_CC_UNKNOWN

Additional Inherited Members

Public Types inherited from qvector< funcarg_t >
typedef funcarg_t value_type
 the type of objects contained in this qvector
typedef funcarg_titerator
typedef const funcarg_tconst_iterator

Detailed Description

Function type information (see tinfo_t::get_func_details())

Member Function Documentation

◆ get_explicit_cc()

callcnv_t func_type_data_t::get_explicit_cc ( ) const
inline

◆ get_cc()

callcnv_t func_type_data_t::get_cc ( ) const
inline

◆ set_cc()

void func_type_data_t::set_cc ( callcnv_t cc)
inline

◆ swap()

void func_type_data_t::swap ( func_type_data_t & r)
inline

◆ is_high()

bool func_type_data_t::is_high ( ) const
inline

◆ is_noret()

bool func_type_data_t::is_noret ( ) const
inline

◆ is_pure()

bool func_type_data_t::is_pure ( ) const
inline

◆ is_static()

bool func_type_data_t::is_static ( ) const
inline

◆ is_virtual()

bool func_type_data_t::is_virtual ( ) const
inline

◆ is_const()

bool func_type_data_t::is_const ( ) const
inline

◆ is_ctor()

bool func_type_data_t::is_ctor ( ) const
inline

◆ is_dtor()

bool func_type_data_t::is_dtor ( ) const
inline

◆ get_call_method()

int func_type_data_t::get_call_method ( ) const
inline

◆ is_vararg_cc()

bool func_type_data_t::is_vararg_cc ( ) const
inline

◆ is_golang_cc()

bool func_type_data_t::is_golang_cc ( ) const
inline

◆ is_swift_cc()

bool func_type_data_t::is_swift_cc ( ) const
inline

◆ is_user_cc()

bool func_type_data_t::is_user_cc ( ) const
inline

◆ guess_cc()

callcnv_t func_type_data_t::guess_cc ( int purged,
int cc_flags ) const
inline

Guess function calling convention use the following info: argument locations and 'stkargs'.

◆ dump()

bool func_type_data_t::dump ( qstring * out,
int praloc_bits = PRALOC_STKOFF ) const
inline

Dump information that is not always visible in the function prototype.

(argument locations, return location, total stkarg size)

◆ find_argument()

ssize_t func_type_data_t::find_argument ( const char * name,
size_t from = 0,
size_t to = size_t(-1) ) const
inline

find argument by name

Member Data Documentation

◆ flags

int func_type_data_t::flags = 0

◆ _new_callcnv

callcnv_t func_type_data_t::_new_callcnv = 0

◆ rettype

tinfo_t func_type_data_t::rettype

return type

◆ retloc

argloc_t func_type_data_t::retloc

return location

◆ stkargs

uval_t func_type_data_t::stkargs = 0

size of stack arguments (not used in build_func_type)

◆ spoiled

reginfovec_t func_type_data_t::spoiled

spoiled register information.

if spoiled register info is present, it overrides the standard spoil info (eax, edx, ecx for x86)

◆ _old_cc

cm_t func_type_data_t::_old_cc = CM_CC_UNKNOWN

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