IDA SDK
Modules | Variables
Derived type: function

Detailed Description

Ellipsis is not taken into account in the number of parameters The return type can not be BT_ARRAY or BT_FUNC.

Modules

 Function attribute byte
 

Variables

const type_t BT_FUNC = 0x0C
 function. More...
 
const type_t BTMT_DEFCALL = 0x00
 call method - default for model or unknown
 
const type_t BTMT_NEARCALL = 0x10
 function returns by retn
 
const type_t BTMT_FARCALL = 0x20
 function returns by retf
 
const type_t BTMT_INTCALL = 0x30
 function returns by iret in this case cc MUST be 'unknown'
 

Variable Documentation

const type_t BT_FUNC = 0x0C

function.

format:

      optional: CM_CC_SPOILED | num_of_spoiled_regs
                if num_of_spoiled_reg == 15:
                  next byte is function attribute byte (see Function attribute byte...)
                else:
                  num_of_spoiled_reg times: spoiled reg info (see extract_spoiledreg)
      cm_t ... calling convention and memory model
      [tah-typeattrs];
      type_t ... return type;
      [serialized argloc_t of returned value (if CM_CC_SPECIAL{PE} && !return void);
      if !CM_CC_VOIDARG:
        dt N (N=number of parameters)
        if ( N == 0 )
        if CM_CC_ELLIPSIS or CM_CC_SPECIALE
            func(...)
          else
            parameters are unknown
        else
          N records:
            type_t ... (i.e. type of each parameter)
            [serialized argloc_t (if CM_CC_SPECIAL{PE})] (i.e. place of each parameter)
            [FAH_BYTE + de( funcarg_t::flags )]