Latest available version: IDA and decompilers v8.4.240320sp1 see all releases
Hex-Rays logo State-of-the-art binary code analysis tools
email icon
Derived type: function

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'
 

Detailed Description

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

Variable Documentation

◆ BT_FUNC

const type_t BT_FUNC = 0x0C

function.

format:

      optional: CM_CC_SPOILED | num_of_spoiled_regs
                if num_of_spoiled_reg == BFA_FUNC_MARKER:
                  ::bfa_byte
                  if (bfa_byte & BFA_FUNC_EXT_FORMAT) != 0
                   ::fti_bits (only low bits: FTI_SPOILED,...,FTI_VIRTUAL)
                   num_of_spoiled_reg times: spoiled reg info (see extract_spoiledreg)
                  else
                    bfa_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 )]