|
IDA SDK
|
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 | |
| 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];