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: complex

Variables

const type_t BT_COMPLEX = 0x0D
 struct/union/enum/typedef. More...
 
const type_t BTMT_STRUCT = 0x00
 struct: MCNT records: type_t; [sdacl-typeattrs];
 
const type_t BTMT_UNION = 0x10
 union: MCNT records: type_t...
 
const type_t BTMT_ENUM = 0x20
 enum: next byte bte_t (see below) N records: de delta(s) OR blocks (see below)
 
const type_t BTMT_TYPEDEF = 0x30
 named reference always p_string name
 
const type_t BT_BITFIELD = 0x0E
 bitfield (only in struct) ['bitmasked' enum see below] next byte is dt ((size in bits << 1) | (unsigned ? 1 : 0))
 
const type_t BTMT_BFLDI8 = 0x00
 __int8
 
const type_t BTMT_BFLDI16 = 0x10
 __int16
 
const type_t BTMT_BFLDI32 = 0x20
 __int32
 
const type_t BTMT_BFLDI64 = 0x30
 __int64
 

Detailed Description

Variable Documentation

◆ BT_COMPLEX

const type_t BT_COMPLEX = 0x0D

struct/union/enum/typedef.

format:

       [dt N (N=field count) if !BTMT_TYPEDEF]
       if N == 0:
         p_string name (unnamed types have names "anon_...")
         [sdacl-typeattrs];
       else, for struct & union:
         if N == 0x7FFE   // Support for high (i.e., > 4095) members count
           N = deserialize_de()
         ALPOW = N & 0x7
         MCNT = N >> 3
         if MCNT == 0
           empty struct
         if ALPOW == 0
           ALIGN = get_default_align()
         else
           ALIGN = (1 << (ALPOW - 1))
         [sdacl-typeattrs];
       else, for enums:
         if N == 0x7FFE   // Support for high enum entries count.
           N = deserialize_de()
         [tah-typeattrs];