Module ida_typeinf

The recommended way of using type info is to use the tinfo_t class. The type information is internally kept as an array of bytes terminated by 0.

Items in brackets [] are optional and sometimes are omitted. type_t... means a sequence of type_t bytes which defines a type.

@note: to work with the types of instructions or data in the database, use get_tinfo()/set_tinfo() and similar functions.

Global Variables

ABS_NO

ABS_NO = 1

ABS_UNK

ABS_UNK = 0

ABS_YES

ABS_YES = 2

ADDTIL_ABORTED

ADDTIL_ABORTED = 3

ADDTIL_COMP

ADDTIL_COMP = 2

ADDTIL_DEFAULT

ADDTIL_DEFAULT = 0

ADDTIL_FAILED

ADDTIL_FAILED = 0

ADDTIL_INCOMP

ADDTIL_INCOMP = 1

ADDTIL_OK

ADDTIL_OK = 1

ADDTIL_SILENT

ADDTIL_SILENT = 2

ALOC_CUSTOM

ALOC_CUSTOM = 7

ALOC_DIST

ALOC_DIST = 2

ALOC_NONE

ALOC_NONE = 0

ALOC_REG1

ALOC_REG1 = 3

ALOC_REG2

ALOC_REG2 = 4

ALOC_RREL

ALOC_RREL = 5

ALOC_STACK

ALOC_STACK = 1

ALOC_STATIC

ALOC_STATIC = 6

ARGREGS_BY_SLOTS

ARGREGS_BY_SLOTS = 3

ARGREGS_FP_MASKS_GP

ARGREGS_FP_MASKS_GP = 4

ARGREGS_GP_ONLY

ARGREGS_GP_ONLY = 1

ARGREGS_INDEPENDENT

ARGREGS_INDEPENDENT = 2

ARGREGS_MIPS_O32

ARGREGS_MIPS_O32 = 5

ARGREGS_POLICY_UNDEFINED

ARGREGS_POLICY_UNDEFINED = 0

ARGREGS_RISCV

ARGREGS_RISCV = 6

BADORD

BADORD = 4294967295

BADSIZE

BADSIZE = 18446744073709551615

BFA_FUNC_EXT_FORMAT

BFA_FUNC_EXT_FORMAT = 128

BFA_FUNC_MARKER

BFA_FUNC_MARKER = 15

BFA_HIGH

BFA_HIGH = 4

BFA_NORET

BFA_NORET = 1

BFA_PURE

BFA_PURE = 2

BFA_STATIC

BFA_STATIC = 8

BFA_VIRTUAL

BFA_VIRTUAL = 16

BTE_ALWAYS

BTE_ALWAYS = 128

BTE_BITMASK

BTE_BITMASK = 16

BTE_CHAR

BTE_CHAR = 32

BTE_HEX

BTE_HEX = 0

BTE_OUT_MASK

BTE_OUT_MASK = 96

BTE_RESERVED

BTE_RESERVED = 8

BTE_SDEC

BTE_SDEC = 64

BTE_SIZE_MASK

BTE_SIZE_MASK = 7

BTE_UDEC

BTE_UDEC = 96

BTF_BOOL

BTF_BOOL = 8

BTF_BYTE

BTF_BYTE = 17

BTF_CHAR

BTF_CHAR = 50

BTF_DOUBLE

BTF_DOUBLE = 25

BTF_ENUM

BTF_ENUM = 45

BTF_FLOAT

BTF_FLOAT = 9

BTF_INT

BTF_INT = 7

BTF_INT128

BTF_INT128 = 22

BTF_INT16

BTF_INT16 = 19

BTF_INT32

BTF_INT32 = 20

BTF_INT64

BTF_INT64 = 21

BTF_INT8

BTF_INT8 = 18

BTF_LDOUBLE

BTF_LDOUBLE = 41

BTF_SINT

BTF_SINT = 23

BTF_STRUCT

BTF_STRUCT = 13

BTF_TBYTE

BTF_TBYTE = 57

BTF_TYPEDEF

BTF_TYPEDEF = 61

BTF_UCHAR

BTF_UCHAR = 34

BTF_UINT

BTF_UINT = 39

BTF_UINT128

BTF_UINT128 = 38

BTF_UINT16

BTF_UINT16 = 35

BTF_UINT32

BTF_UINT32 = 36

BTF_UINT64

BTF_UINT64 = 37

BTF_UINT8

BTF_UINT8 = 34

BTF_UNION

BTF_UNION = 29

BTF_UNK

BTF_UNK = 48

BTF_VOID

BTF_VOID = 1

BTMT_ARRESERV

BTMT_ARRESERV = 32

BTMT_BFLDI16

BTMT_BFLDI16 = 16

BTMT_BFLDI32

BTMT_BFLDI32 = 32

BTMT_BFLDI64

BTMT_BFLDI64 = 48

BTMT_BFLDI8

BTMT_BFLDI8 = 0

BTMT_BOOL1

BTMT_BOOL1 = 16

BTMT_BOOL2

BTMT_BOOL2 = 32

BTMT_BOOL4

BTMT_BOOL4 = 48

BTMT_BOOL8

BTMT_BOOL8 = 32

BTMT_CHAR

BTMT_CHAR = 48

BTMT_CLOSURE

BTMT_CLOSURE = 48

BTMT_DEFBOOL

BTMT_DEFBOOL = 0

BTMT_DEFCALL

BTMT_DEFCALL = 0

BTMT_DEFPTR

BTMT_DEFPTR = 0

BTMT_DOUBLE

BTMT_DOUBLE = 16

BTMT_ENUM

BTMT_ENUM = 32

BTMT_FAR

BTMT_FAR = 32

BTMT_FARCALL

BTMT_FARCALL = 32

BTMT_FLOAT

BTMT_FLOAT = 0

BTMT_INTCALL

BTMT_INTCALL = 48

BTMT_LNGDBL

BTMT_LNGDBL = 32

BTMT_NEAR

BTMT_NEAR = 16

BTMT_NEARCALL

BTMT_NEARCALL = 16

BTMT_NONBASED

BTMT_NONBASED = 16

BTMT_SIGNED

BTMT_SIGNED = 16

BTMT_SIZE0

BTMT_SIZE0 = 0

BTMT_SIZE12

BTMT_SIZE12 = 16

BTMT_SIZE128

BTMT_SIZE128 = 48

BTMT_SIZE48

BTMT_SIZE48 = 32

BTMT_SPECFLT

BTMT_SPECFLT = 48

BTMT_STRUCT

BTMT_STRUCT = 0

BTMT_TYPEDEF

BTMT_TYPEDEF = 48

BTMT_UNION

BTMT_UNION = 16

BTMT_UNKSIGN

BTMT_UNKSIGN = 0

BTMT_UNSIGNED

BTMT_UNSIGNED = 32

BTMT_USIGNED

BTMT_USIGNED = 32

BTM_CONST

BTM_CONST = 64

BTM_VOLATILE

BTM_VOLATILE = 128

BT_ARRAY

BT_ARRAY = 11

BT_BITFIELD

BT_BITFIELD = 14

BT_BOOL

BT_BOOL = 8

BT_COMPLEX

BT_COMPLEX = 13

BT_FLOAT

BT_FLOAT = 9

BT_FUNC

BT_FUNC = 12

BT_INT

BT_INT = 7

BT_INT128

BT_INT128 = 6

BT_INT16

BT_INT16 = 3

BT_INT32

BT_INT32 = 4

BT_INT64

BT_INT64 = 5

BT_INT8

BT_INT8 = 2

BT_PTR

BT_PTR = 10

BT_RESERVED

BT_RESERVED = 15

BT_SEGREG

BT_SEGREG = 55

BT_UNK

BT_UNK = 0

BT_UNKNOWN

BT_UNKNOWN = 48

BT_UNK_BYTE

BT_UNK_BYTE = 17

BT_UNK_DWORD

BT_UNK_DWORD = 33

BT_UNK_OWORD

BT_UNK_OWORD = 49

BT_UNK_QWORD

BT_UNK_QWORD = 32

BT_UNK_WORD

BT_UNK_WORD = 16

BT_VOID

BT_VOID = 1

CCN_C

CCN_C = 0

CCN_CPP

CCN_CPP = 1

CC_ALLOW_ARGPERM

CC_ALLOW_ARGPERM = 2

CC_ALLOW_REGHOLES

CC_ALLOW_REGHOLES = 4

CC_CDECL_OK

CC_CDECL_OK = 1

CC_GOLANG_OK

CC_GOLANG_OK = 16

CC_HAS_ELLIPSIS

CC_HAS_ELLIPSIS = 8

CM_CC_CDECL

CM_CC_CDECL = 48

CM_CC_ELLIPSIS

CM_CC_ELLIPSIS = 64

CM_CC_FASTCALL

CM_CC_FASTCALL = 112

CM_CC_GOLANG

CM_CC_GOLANG = 176

CM_CC_INVALID

CM_CC_INVALID = 0

CM_CC_MASK

CM_CC_MASK = 240

CM_CC_PASCAL

CM_CC_PASCAL = 96

CM_CC_RESERVE3

CM_CC_RESERVE3 = 192

CM_CC_SPECIAL

CM_CC_SPECIAL = 240

CM_CC_SPECIALE

CM_CC_SPECIALE = 208

CM_CC_SPECIALP

CM_CC_SPECIALP = 224

CM_CC_SPOILED

CM_CC_SPOILED = 160

CM_CC_STDCALL

CM_CC_STDCALL = 80

CM_CC_SWIFT

CM_CC_SWIFT = 144

CM_CC_THISCALL

CM_CC_THISCALL = 128

CM_CC_UNKNOWN

CM_CC_UNKNOWN = 16

CM_CC_VOIDARG

CM_CC_VOIDARG = 32

CM_MASK

CM_MASK = 3

CM_M_FF

CM_M_FF = 4

CM_M_FN

CM_M_FN = 12

CM_M_MASK

CM_M_MASK = 12

CM_M_NF

CM_M_NF = 8

CM_M_NN

CM_M_NN = 0

CM_N16_F32

CM_N16_F32 = 2

CM_N32_F48

CM_N32_F48 = 3

CM_N64

CM_N64 = 1

CM_N8_F16

CM_N8_F16 = 1

CM_UNKNOWN

CM_UNKNOWN = 0

COMP_BC

COMP_BC = 2

COMP_BP

COMP_BP = 8

COMP_GNU

COMP_GNU = 6

COMP_MASK

COMP_MASK = 15

COMP_MS

COMP_MS = 1

COMP_UNK

COMP_UNK = 0

COMP_UNSURE

COMP_UNSURE = 128

COMP_VISAGE

COMP_VISAGE = 7

COMP_WATCOM

COMP_WATCOM = 3

C_PC_COMPACT

C_PC_COMPACT = 10

C_PC_FLAT

C_PC_FLAT = 3

C_PC_HUGE

C_PC_HUGE = 6

C_PC_LARGE

C_PC_LARGE = 6

C_PC_MEDIUM

C_PC_MEDIUM = 14

C_PC_SMALL

C_PC_SMALL = 2

C_PC_TINY

C_PC_TINY = 2

DEFMASK64

DEFMASK64 = 18446744073709551615

ETF_AUTONAME

ETF_AUTONAME = 64

ETF_BYTIL

ETF_BYTIL = 128

ETF_COMPATIBLE

ETF_COMPATIBLE = 8

ETF_FORCENAME

ETF_FORCENAME = 32

ETF_FUNCARG

ETF_FUNCARG = 16

ETF_MAY_DESTROY

ETF_MAY_DESTROY = 4

ETF_NO_ARRAY

ETF_NO_ARRAY = 256

ETF_NO_LAYOUT

ETF_NO_LAYOUT = 2

ETF_NO_SAVE

ETF_NO_SAVE = 1

FAH_BYTE

FAH_BYTE = 255

FAI_ARRAY

FAI_ARRAY = 8

FAI_HIDDEN

FAI_HIDDEN = 1

FAI_RETPTR

FAI_RETPTR = 2

FAI_STRUCT

FAI_STRUCT = 4

FAI_UNUSED

FAI_UNUSED = 16

FIRST_NONTRIVIAL_TYPID

FIRST_NONTRIVIAL_TYPID = 256

FMTFUNC_PRINTF

FMTFUNC_PRINTF = 0

FMTFUNC_SCANF

FMTFUNC_SCANF = 1

FMTFUNC_STRFMON

FMTFUNC_STRFMON = 3

FMTFUNC_STRFTIME

FMTFUNC_STRFTIME = 2

FRB_CHAR

FRB_CHAR = 6

FRB_CUSTOM

FRB_CUSTOM = 12

FRB_ENUM

FRB_ENUM = 8

FRB_FLOAT

FRB_FLOAT = 5

FRB_INVBITS

FRB_INVBITS = 512

FRB_INVSIGN

FRB_INVSIGN = 256

FRB_LZERO

FRB_LZERO = 2048

FRB_MASK

FRB_MASK = 15

FRB_NUMB

FRB_NUMB = 1

FRB_NUMD

FRB_NUMD = 4

FRB_NUMH

FRB_NUMH = 3

FRB_NUMO

FRB_NUMO = 2

FRB_OFFSET

FRB_OFFSET = 9

FRB_SEG

FRB_SEG = 7

FRB_SIGNED

FRB_SIGNED = 1024

FRB_STRLIT

FRB_STRLIT = 10

FRB_STROFF

FRB_STROFF = 11

FRB_TABFORM

FRB_TABFORM = 4096

FRB_UNK

FRB_UNK = 0

FTI_ALL

FTI_ALL = 8191

FTI_ARGLOCS

FTI_ARGLOCS = 256

FTI_CALLTYPE

FTI_CALLTYPE = 192

FTI_CONST

FTI_CONST = 1024

FTI_CTOR

FTI_CTOR = 2048

FTI_DEFCALL

FTI_DEFCALL = 0

FTI_DTOR

FTI_DTOR = 4096

FTI_EXPLOCS

FTI_EXPLOCS = 512

FTI_FARCALL

FTI_FARCALL = 128

FTI_HIGH

FTI_HIGH = 8

FTI_INTCALL

FTI_INTCALL = 192

FTI_NEARCALL

FTI_NEARCALL = 64

FTI_NORET

FTI_NORET = 2

FTI_PURE

FTI_PURE = 4

FTI_SPOILED

FTI_SPOILED = 1

FTI_STATIC

FTI_STATIC = 16

FTI_VIRTUAL

FTI_VIRTUAL = 32

GTD_CALC_ARGLOCS

GTD_CALC_ARGLOCS = 0

GTD_CALC_LAYOUT

GTD_CALC_LAYOUT = 0

GTD_DEL_BITFLDS

GTD_DEL_BITFLDS = 64

GTD_NO_ARGLOCS

GTD_NO_ARGLOCS = 128

GTD_NO_LAYOUT

GTD_NO_LAYOUT = 128

GTS_BASECLASS

GTS_BASECLASS = 2

GTS_NESTED

GTS_NESTED = 1

GUESS_FUNC_FAILED

GUESS_FUNC_FAILED = 0

GUESS_FUNC_OK

GUESS_FUNC_OK = 2

GUESS_FUNC_TRIVIAL

GUESS_FUNC_TRIVIAL = 1

HTI_CPP

HTI_CPP = 1

HTI_DCL

HTI_DCL = 1024

HTI_EXT

HTI_EXT = 4

HTI_FIL

HTI_FIL = 64

HTI_HIGH

HTI_HIGH = 32768

HTI_INT

HTI_INT = 2

HTI_LEX

HTI_LEX = 8

HTI_LOWER

HTI_LOWER = 65536

HTI_MAC

HTI_MAC = 128

HTI_NDC

HTI_NDC = 2048

HTI_NER

HTI_NER = 512

HTI_NOBASE

HTI_NOBASE = 1048576

HTI_NWR

HTI_NWR = 256

HTI_PAK

HTI_PAK = 28672

HTI_PAK1

HTI_PAK1 = 4096

HTI_PAK16

HTI_PAK16 = 20480

HTI_PAK2

HTI_PAK2 = 8192

HTI_PAK4

HTI_PAK4 = 12288

HTI_PAK8

HTI_PAK8 = 16384

HTI_PAKDEF

HTI_PAKDEF = 0

HTI_PAK_SHIFT

HTI_PAK_SHIFT = 12

HTI_RAWARGS

HTI_RAWARGS = 131072

HTI_RELAXED

HTI_RELAXED = 524288

HTI_TST

HTI_TST = 32

HTI_UNP

HTI_UNP = 16

MAX_DECL_ALIGN

MAX_DECL_ALIGN = 15

MAX_ENUM_SERIAL

MAX_ENUM_SERIAL = 255

MAX_FUNC_ARGS

MAX_FUNC_ARGS = 256

NTF_64BIT

NTF_64BIT = 64

NTF_CHKSYNC

NTF_CHKSYNC = 512

NTF_COPY

NTF_COPY = 4096

NTF_FIXNAME

NTF_FIXNAME = 128

NTF_IDBENC

NTF_IDBENC = 256

NTF_NOBASE

NTF_NOBASE = 2

NTF_NOCUR

NTF_NOCUR = 32

NTF_NO_NAMECHK

NTF_NO_NAMECHK = 1024

NTF_REPLACE

NTF_REPLACE = 4

NTF_SYMM

NTF_SYMM = 0

NTF_SYMU

NTF_SYMU = 8

NTF_TYPE

NTF_TYPE = 1

NTF_UMANGLED

NTF_UMANGLED = 8

PDF_DEF_BASE

PDF_DEF_BASE = 4

PDF_DEF_FWD

PDF_DEF_FWD = 2

PDF_HEADER_CMT

PDF_HEADER_CMT = 8

PDF_INCL_DEPS

PDF_INCL_DEPS = 1

PIO_IGNORE_PTRS

PIO_IGNORE_PTRS = 8

PIO_NOATTR_FAIL

PIO_NOATTR_FAIL = 4

PRALOC_STKOFF

PRALOC_STKOFF = 2

PRALOC_VERIFY

PRALOC_VERIFY = 1

PRTYPE_1LINCMT

PRTYPE_1LINCMT = 8192

PRTYPE_1LINE

PRTYPE_1LINE = 0