|
THREAD_SAFE bool | is_type_const (type_t t) |
| See BTM_CONST.
|
|
THREAD_SAFE bool | is_type_volatile (type_t t) |
| See BTM_VOLATILE.
|
|
THREAD_SAFE type_t | get_base_type (type_t t) |
| Get get basic type bits (TYPE_BASE_MASK)
|
|
THREAD_SAFE type_t | get_type_flags (type_t t) |
| Get type flags (TYPE_FLAGS_MASK)
|
|
THREAD_SAFE type_t | get_full_type (type_t t) |
| Get basic type bits + type flags (TYPE_FULL_MASK)
|
|
THREAD_SAFE bool | is_typeid_last (type_t t) |
| Is the type_t the last byte of type declaration? (there are no additional bytes after a basic type, see _BT_LAST_BASIC)
|
|
THREAD_SAFE bool | is_type_partial (type_t t) |
| Identifies an unknown or void type with a known size (see Basic type: unknown & void)
|
|
THREAD_SAFE bool | is_type_void (type_t t) |
| See BTF_VOID.
|
|
THREAD_SAFE bool | is_type_unknown (type_t t) |
| See BT_UNKNOWN.
|
|
THREAD_SAFE bool | is_type_ptr (type_t t) |
| See BT_PTR.
|
|
THREAD_SAFE bool | is_type_complex (type_t t) |
| See BT_COMPLEX.
|
|
THREAD_SAFE bool | is_type_func (type_t t) |
| See BT_FUNC.
|
|
THREAD_SAFE bool | is_type_array (type_t t) |
| See BT_ARRAY.
|
|
THREAD_SAFE bool | is_type_typedef (type_t t) |
| See BTF_TYPEDEF.
|
|
THREAD_SAFE bool | is_type_sue (type_t t) |
| Is the type a struct/union/enum?
|
|
THREAD_SAFE bool | is_type_struct (type_t t) |
| See BTF_STRUCT.
|
|
THREAD_SAFE bool | is_type_union (type_t t) |
| See BTF_UNION.
|
|
THREAD_SAFE bool | is_type_struni (type_t t) |
| Is the type a struct or union?
|
|
THREAD_SAFE bool | is_type_enum (type_t t) |
| See BTF_ENUM.
|
|
THREAD_SAFE bool | is_type_bitfld (type_t t) |
| See BT_BITFIELD.
|
|
THREAD_SAFE bool | is_type_int (type_t bt) |
| Does the type_t specify one of the basic types in Basic type: integer?
|
|
THREAD_SAFE bool | is_type_int128 (type_t t) |
| Does the type specify a 128-bit value? (signed or unsigned, see Basic type: integer)
|
|
THREAD_SAFE bool | is_type_int64 (type_t t) |
| Does the type specify a 64-bit value? (signed or unsigned, see Basic type: integer)
|
|
THREAD_SAFE bool | is_type_int32 (type_t t) |
| Does the type specify a 32-bit value? (signed or unsigned, see Basic type: integer)
|
|
THREAD_SAFE bool | is_type_int16 (type_t t) |
| Does the type specify a 16-bit value? (signed or unsigned, see Basic type: integer)
|
|
THREAD_SAFE bool | is_type_char (type_t t) |
| Does the type specify a char value? (signed or unsigned, see Basic type: integer)
|
|
THREAD_SAFE bool | is_type_paf (type_t t) |
| Is the type a pointer, array, or function type?
|
|
THREAD_SAFE bool | is_type_ptr_or_array (type_t t) |
| Is the type a pointer or array type?
|
|
THREAD_SAFE bool | is_type_floating (type_t t) |
| Is the type a floating point type?
|
|
THREAD_SAFE bool | is_type_integral (type_t t) |
| Is the type an integral type (char/short/int/long/bool)?
|
|
THREAD_SAFE bool | is_type_ext_integral (type_t t) |
| Is the type an extended integral type? (integral or enum)
|
|
THREAD_SAFE bool | is_type_arithmetic (type_t t) |
| Is the type an arithmetic type? (floating or integral)
|
|
THREAD_SAFE bool | is_type_ext_arithmetic (type_t t) |
| Is the type an extended arithmetic type? (arithmetic or enum)
|
|
THREAD_SAFE bool | is_type_uint (type_t t) |
| See BTF_UINT.
|
|
THREAD_SAFE bool | is_type_uchar (type_t t) |
| See BTF_UCHAR.
|
|
THREAD_SAFE bool | is_type_uint16 (type_t t) |
| See BTF_UINT16.
|
|
THREAD_SAFE bool | is_type_uint32 (type_t t) |
| See BTF_UINT32.
|
|
THREAD_SAFE bool | is_type_uint64 (type_t t) |
| See BTF_UINT64.
|
|
THREAD_SAFE bool | is_type_uint128 (type_t t) |
| See BTF_UINT128.
|
|
THREAD_SAFE bool | is_type_ldouble (type_t t) |
| See BTF_LDOUBLE.
|
|
THREAD_SAFE bool | is_type_double (type_t t) |
| See BTF_DOUBLE.
|
|
THREAD_SAFE bool | is_type_float (type_t t) |
| See BTF_FLOAT.
|
|
THREAD_SAFE bool | is_type_tbyte (type_t t) |
| See BTF_FLOAT.
|
|
THREAD_SAFE bool | is_type_bool (type_t t) |
| See BTF_BOOL.
|
|
THREAD_SAFE bool | is_tah_byte (type_t t) |
| The TAH byte (type attribute header byte) denotes the start of type attributes. More...
|
|
THREAD_SAFE bool | is_sdacl_byte (type_t t) |
| Identify an sdacl byte. More...
|
|
THREAD_SAFE bool | operator< (const bytevec_t &v1, const bytevec_t &v2) |
| Compare two bytevecs with '<'. More...
|
|
idaman bool ida_export | append_argloc (qtype *out, const argloc_t &vloc) |
| Serialize argument location.
|
|
idaman bool ida_export | extract_argloc (argloc_t *vloc, const type_t **ptype, bool forbid_stkoff) |
| Deserialize an argument location. More...
|
|
idaman const type_t *ida_export | resolve_typedef (const til_t *til, const type_t *type) |
|
bool | is_restype_void (const til_t *til, const type_t *type) |
|
bool | is_restype_enum (const til_t *til, const type_t *type) |
|
bool | is_restype_struni (const til_t *til, const type_t *type) |
|
bool | is_restype_struct (const til_t *til, const type_t *type) |
|
idaman type_t ida_export | get_scalar_bt (int size) |
|
idaman til_t *ida_export | new_til (const char *name, const char *desc) |
| Initialize a til.
|
|
idaman int ida_export | add_base_tils (qstring *errbuf, til_t *ti, const char *tildir, const char *bases, bool gen_events) |
| Add multiple base tils. More...
|
|
idaman til_t *ida_export | load_til (const char *name, qstring *errbuf, const char *tildir=nullptr) |
| Load til from a file without adding it to the database list (see also add_til). More...
|
|
idaman bool ida_export | sort_til (til_t *ti) |
| Sort til (use after modifying it). More...
|
|
idaman bool ida_export | compact_til (til_t *ti) |
| Collect garbage in til. More...
|
|
idaman bool ida_export | store_til (til_t *ti, const char *tildir, const char *name) |
| Store til to a file. More...
|
|
idaman void ida_export | free_til (til_t *ti) |
| Free memory allocated by til.
|
|
idaman til_t *ida_export | load_til_header (const char *tildir, const char *name, qstring *errbuf) |
| Get human-readable til description.
|
|
THREAD_SAFE bool | is_code_far (cm_t cm) |
| Does the given model specify far code?.
|
|
THREAD_SAFE bool | is_data_far (cm_t cm) |
| Does the given model specify far data?.
|
|
idaman int ida_export | install_custom_argloc (const custloc_desc_t *custloc) |
| Save a custom argloc.
|
|
idaman bool ida_export | remove_custom_argloc (int idx) |
| Delete the custom argloc at the given index.
|
|
idaman const custloc_desc_t *ida_export | retrieve_custom_argloc (int idx) |
| Retrieve the custom argloc at the given index.
|
|
idaman int ida_export | verify_argloc (const argloc_t &vloc, int size, const rangeset_t *gaps) |
| Verify argloc_t. More...
|
|
idaman bool ida_export | optimize_argloc (argloc_t *vloc, int size, const rangeset_t *gaps) |
| Verify and optimize scattered argloc into simple form. More...
|
|
idaman size_t ida_export | print_argloc (char *buf, size_t bufsize, const argloc_t &vloc, int size=0, int vflags=0) |
| Convert an argloc to human readable form.
|
|
idaman int ida_export | for_all_arglocs (aloc_visitor_t &vv, argloc_t &vloc, int size, int off=0) |
| Compress larger argloc types and initiate the aloc visitor.
|
|
int idaapi | for_all_const_arglocs (const_aloc_visitor_t &vv, const argloc_t &vloc, int size, int off=0) |
| See for_all_arglocs()
|
|
constexpr THREAD_SAFE cm_t | get_cc (cm_t cm) |
| Get the calling convention.
|
|
cm_t | get_effective_cc (cm_t cm) |
| Get effective calling convention (with respect to default CC)
|
|
constexpr THREAD_SAFE bool | is_user_cc (cm_t cm) |
| Does the calling convention specify argument locations explicitly?
|
|
constexpr THREAD_SAFE bool | is_vararg_cc (cm_t cm) |
| Does the calling convention use ellipsis?
|
|
constexpr THREAD_SAFE bool | is_purging_cc (cm_t cm) |
| Does the calling convention clean the stack arguments upon return?. More...
|
|
constexpr bool | is_golang_cc (cm_t cc) |
| GO language calling convention (return value in stack)?
|
|
constexpr bool | is_swift_cc (cm_t cc) |
| Swift calling convention (arguments and return values in registers)?
|
|
THREAD_SAFE comp_t | get_comp (comp_t comp) |
| Get compiler bits.
|
|
idaman const char *ida_export | get_compiler_name (comp_t id) |
| Get full compiler name.
|
|
idaman const char *ida_export | get_compiler_abbr (comp_t id) |
| Get abbreviated compiler name.
|
|
idaman void ida_export | get_compilers (compvec_t *ids, qstrvec_t *names, qstrvec_t *abbrs) |
| Get names of all built-in compilers.
|
|
THREAD_SAFE comp_t | is_comp_unsure (comp_t comp) |
| See COMP_UNSURE.
|
|
comp_t | default_compiler () |
| Get compiler specified by inf.cc.
|
|
bool | is_gcc () |
| Is the target compiler COMP_GNU?
|
|
bool | is_gcc32 () |
| Is the target compiler 32 bit gcc?
|
|
bool | is_gcc64 () |
| Is the target compiler 64 bit gcc?
|
|
bool | gcc_layout () |
| Should use the struct/union layout as done by gcc?
|
|
idaman bool ida_export | set_compiler (const compiler_info_t &cc, int flags, const char *abiname=nullptr) |
| Change current compiler. More...
|
|
bool idaapi | set_compiler_id (comp_t id, const char *abiname=nullptr) |
| Set the compiler id (see Compiler IDs)
|
|
bool idaapi | set_abi_name (const char *abiname, bool user_level=false) |
| Set abi name (see Compiler IDs)
|
|
idaman ssize_t ida_export | get_abi_name (qstring *out) |
| Get ABI name. More...
|
|
idaman bool ida_export | append_abi_opts (const char *abi_opts, bool user_level=false) |
| Add/remove/check ABI option General form of full abi name: abiname-opt1-opt2-... or -opt1-opt2-... More...
|
|
idaman bool ida_export | remove_abi_opts (const char *abi_opts, bool user_level=false) |
|
idaman bool ida_export | set_compiler_string (const char *compstr, bool user_level) |
|
bool | use_golang_cc () |
| is GOLANG calling convention used by default?
|
|
void | switch_to_golang () |
| switch to GOLANG calling convention (to be used as default CC)
|
|
idaman int ida_export | h2ti (til_t *ti, lexer_t *lx, const char *input, int flags=HTI_HIGH, h2ti_type_cb *type_cb=nullptr, h2ti_type_cb *var_cb=nullptr, printer_t *print_cb=nullptr, void *_cb_data=nullptr, abs_t _isabs=ABS_UNK) |
| Convert declarations to type_t*. More...
|
|
THREAD_SAFE int | convert_pt_flags_to_hti (int pt_flags) |
| Convert Type parsing flags to Type formatting flags. More...
|
|
idaman bool ida_export | parse_decl (tinfo_t *out_tif, qstring *out_name, til_t *til, const char *decl, int pt_flags) |
| Parse ONE declaration. More...
|
|
idaman int ida_export | parse_decls (til_t *til, const char *input, printer_t *printer, int hti_flags) |
| Parse many declarations and store them in a til. More...
|
|
idaman bool ida_export | print_type (qstring *out, ea_t ea, int prtype_flags) |
| Get type declaration for the specified address. More...
|
|
idaman int ida_export | get_named_type (const til_t *ti, const char *name, int ntf_flags, const type_t **type=nullptr, const p_list **fields=nullptr, const char **cmt=nullptr, const p_list **fieldcmts=nullptr, sclass_t *sclass=nullptr, uint32 *value=nullptr) |
| Get named typeinfo. More...
|
|
int idaapi | get_named_type64 (const til_t *ti, const char *name, int ntf_flags, const type_t **type=nullptr, const p_list **fields=nullptr, const char **cmt=nullptr, const p_list **fieldcmts=nullptr, sclass_t *sclass=nullptr, uint64 *value=nullptr) |
| See get_named_type() above. More...
|
|
idaman const char *ida_export | tinfo_errstr (tinfo_code_t code) |
| Helper function to convert an error code into a printable string. More...
|
|
idaman bool ida_export | del_named_type (til_t *ti, const char *name, int ntf_flags) |
| Delete information about a symbol. More...
|
|
idaman const char *ida_export | first_named_type (const til_t *ti, int ntf_flags) |
| Enumerate types. More...
|
|
idaman const char *ida_export | next_named_type (const til_t *ti, const char *name, int ntf_flags) |
| Enumerate types. More...
|
|
idaman uint32 ida_export | copy_named_type (til_t *dsttil, const til_t *srctil, const char *name) |
| Copy a named type from one til to another. More...
|
|
idaman bool ida_export | decorate_name (qstring *out, const char *name, bool mangle, cm_t cc=CM_CC_UNKNOWN, const tinfo_t *type=nullptr) |
| Decorate/undecorate a C symbol name. More...
|
|
idaman bool ida_export | gen_decorate_name (qstring *out, const char *name, bool mangle, cm_t cc, const tinfo_t *type) |
| Generic function for decorate_name() (may be used in IDP modules)
|
|
idaman ssize_t ida_export | calc_c_cpp_name (qstring *out, const char *name, const tinfo_t *type, int ccn_flags) |
| Get C or C++ form of the name. More...
|
|
idaman bool ida_export | enable_numbered_types (til_t *ti, bool enable) |
| Enable the use of numbered types in til. More...
|
|
idaman bool ida_export | get_numbered_type (const til_t *ti, uint32 ordinal, const type_t **type=nullptr, const p_list **fields=nullptr, const char **cmt=nullptr, const p_list **fieldcmts=nullptr, sclass_t *sclass=nullptr) |
| Retrieve a type by its ordinal number.
|
|
idaman uint32 ida_export | alloc_type_ordinals (til_t *ti, int qty) |
| Allocate a range of ordinal numbers for new types. More...
|
|
uint32 | alloc_type_ordinal (til_t *ti) |
| alloc_type_ordinals(ti, 1)
|
|
idaman uint32 ida_export | get_ordinal_limit (const til_t *ti=nullptr) |
| Get number of allocated ordinals + 1. More...
|
|
uint32 | get_ordinal_count (const til_t *ti=nullptr) |
| Get number of allocated ordinals. More...
|
|
idaman bool ida_export | del_numbered_type (til_t *ti, uint32 ordinal) |
| Delete a numbered type.
|
|
idaman bool ida_export | set_type_alias (til_t *ti, uint32 src_ordinal, uint32 dst_ordinal) |
| Create a type alias. More...
|
|
idaman uint32 ida_export | get_alias_target (const til_t *ti, uint32 ordinal) |
| Find the final alias destination. More...
|
|
idaman int32 ida_export | get_type_ordinal (const til_t *ti, const char *name) |
| Get type ordinal by its name.
|
|
idaman const char *ida_export | get_numbered_type_name (const til_t *ti, uint32 ordinal) |
| Get type name (if exists) by its ordinal. More...
|
|
idaman ssize_t ida_export | create_numbered_type_name (qstring *buf, int32 ord) |
| Create anonymous name for numbered type. More...
|
|
idaman bool ida_export | is_ordinal_name (const char *name, uint32 *ord=nullptr) |
| Check if the name is an ordinal name. More...
|
|
idaman void ida_export | build_anon_type_name (qstring *buf, const type_t *type, const p_list *fields) |
| Generate a name like $hex_numbers based on the field types and names.
|
|
idaman int ida_export | compact_numbered_types (til_t *ti, uint32 min_ord=0, intvec_t *p_ordmap=nullptr, int flags=0) |
| Compact numbered types to get rid of empty slots. More...
|
|
idaman bool ida_export | is_type_choosable (const til_t *ti, uint32 ordinal) |
| Check if a struct/union type is choosable. More...
|
|
idaman void ida_export | set_type_choosable (til_t *ti, uint32 ordinal, bool value) |
| Enable/disable 'choosability' flag for a struct/union type. More...
|
|
idaman ea_t ida_export | get_vftable_ea (uint32 ordinal) |
| Get address of a virtual function table. More...
|
|
idaman uint32 ida_export | get_vftable_ordinal (ea_t vftable_ea) |
| Get ordinal number of the virtual function table. More...
|
|
idaman bool ida_export | set_vftable_ea (uint32 ordinal, ea_t vftable_ea) |
| Set the address of a vftable instance for a vftable type. More...
|
|
bool | del_vftable_ea (uint32 ordinal) |
| Delete the address of a vftable instance for a vftable type. More...
|
|
size_t | get_default_align () |
| Get default alignment for structure fields. More...
|
|
THREAD_SAFE void | align_size (size_t &cur_tot_size, size_t elem_size, size_t algn) |
| Get alignment delta for the a structure field. More...
|
|
idaman bool ida_export | deref_ptr (ea_t *ptr_ea, const tinfo_t &tif, ea_t *closure_obj=nullptr) |
| Dereference a pointer. More...
|
|
idaman bool ida_export | remove_tinfo_pointer (tinfo_t *tif, const char **pname, const til_t *til=nullptr) |
| Remove pointer of a type. More...
|
|
idaman int ida_export | add_til (const char *name, int flags) |
| Load a til file and add it the database type libraries list. More...
|
|
idaman bool ida_export | del_til (const char *name) |
| Unload a til file.
|
|
idaman bool ida_export | apply_named_type (ea_t ea, const char *name) |
| Apply the specified named type to the address. More...
|
|
idaman bool ida_export | apply_tinfo (ea_t ea, const tinfo_t &tif, uint32 flags) |
| Apply the specified type to the specified address. More...
|
|
idaman bool ida_export | apply_cdecl (til_t *til, ea_t ea, const char *decl, int flags=0) |
| Apply the specified type to the address. More...
|
|
idaman bool ida_export | apply_callee_tinfo (ea_t caller, const tinfo_t &tif) |
| Apply the type of the called function to the calling instruction. More...
|
|
idaman bool ida_export | get_arg_addrs (eavec_t *out, ea_t caller) |
| Retrieve argument initialization addresses. More...
|
|
idaman bool ida_export | apply_once_tinfo_and_name (ea_t dea, const tinfo_t &tif, const char *name) |
| Apply the specified type and name to the address. More...
|
|
idaman int ida_export | guess_tinfo (tinfo_t *out, tid_t id) |
| Generate a type information about the id from the disassembly. More...
|
|
void | set_c_header_path (const char *incdir) |
| Set include directory path the target compiler.
|
|
ssize_t | get_c_header_path (qstring *buf) |
| Get the include directory path of the target compiler.
|
|
void | set_c_macros (const char *macros) |
| Set predefined macros for the target compiler.
|
|
ssize_t | get_c_macros (qstring *buf) |
| Get predefined macros for the target compiler.
|
|
idaman til_t *ida_export | get_idati () |
| Pointer to the local type library - this til is private for each IDB file Functions that accept til_t* default to `idati` when is nullptr provided. More...
|
|
idaman bool ida_export | get_idainfo_by_type (size_t *out_size, flags_t *out_flags, opinfo_t *out_mt, const tinfo_t &tif, size_t *out_alsize=nullptr) |
| Extract information from a tinfo_t. More...
|
|
idaman bool ida_export | get_idainfo64_by_type (size_t *out_size, flags64_t *out_flags, opinfo_t *out_mt, const tinfo_t &tif, size_t *out_alsize=nullptr) |
| Extract information from a tinfo_t. More...
|
|
idaman bool ida_export | get_tinfo_by_flags (tinfo_t *out, flags64_t flags) |
| Get tinfo object that corresponds to data flags. More...
|
|
idaman cm_t ida_export | guess_func_cc (const func_type_data_t &fti, int npurged, int cc_flags) |
| Use func_type_data_t::guess_cc()
|
|
idaman bool ida_export | dump_func_type_data (qstring *out, const func_type_data_t &fti, int praloc_bits) |
| Use func_type_data_t::dump()
|
|
bool | stroff_as_size (int plen, const tinfo_t &tif, asize_t value) |
| Should display a structure offset expression as the structure size?
|
|
idaman int ida_export | visit_stroff_udms (udm_visitor_t &sfv, const tid_t *path, int plen, adiff_t *disp, bool appzero) |
| Visit structure fields in a stroff expression or in a reference to a struct data variable. More...
|
|
THREAD_SAFE bool | is_one_bit_mask (uval_t mask) |
| Is bitmask one bit?
|
|
bool | inf_pack_stkargs (cm_t cc) |
|
bool | inf_big_arg_align (cm_t cc) |
|
bool | inf_huge_arg_align (cm_t cc) |
|
int | get_arg_align (int type_align, int slotsize, cm_t cc=CM_CC_UNKNOWN) |
|
int | get_arg_align (const tinfo_t &tif, int slotsize, cm_t cc=CM_CC_UNKNOWN) |
|
sval_t | align_stkarg_up (sval_t spoff, int type_align, int slotsize, cm_t cc=CM_CC_UNKNOWN) |
|
sval_t | align_stkarg_up (sval_t spoff, const tinfo_t &tif, int slotsize, cm_t cc=CM_CC_UNKNOWN) |
|
tinfo_t | remove_pointer (const tinfo_t &tif) |
| BT_PTR: If the current type is a pointer, return the pointed object. More...
|
|
idaman error_t ida_export | unpack_idcobj_from_idb (idc_value_t *obj, const tinfo_t &tif, ea_t ea, const bytevec_t *off0, int pio_flags=0) |
| Collection of register objects. More...
|
|
idaman error_t ida_export | unpack_idcobj_from_bv (idc_value_t *obj, const tinfo_t &tif, const bytevec_t &bytes, int pio_flags=0) |
| Read a typed idc object from the byte vector.
|
|
idaman error_t ida_export | pack_idcobj_to_idb (const idc_value_t *obj, const tinfo_t &tif, ea_t ea, int pio_flags=0) |
| Write a typed idc object to the database.
|
|
idaman error_t ida_export | pack_idcobj_to_bv (const idc_value_t *obj, const tinfo_t &tif, relobj_t *bytes, void *objoff, int pio_flags=0) |
| Write a typed idc object to the byte vector. More...
|
|
idaman bool ida_export | apply_tinfo_to_stkarg (const insn_t &insn, const op_t &x, uval_t v, const tinfo_t &tif, const char *name) |
| Helper function for the processor modules. More...
|
|
idaman void ida_export | gen_use_arg_tinfos (struct argtinfo_helper_t *_this, ea_t caller, func_type_data_t *fti, funcargvec_t *rargs) |
| Do not call this function directly, use argtinfo_helper_t.
|
|
idaman bool ida_export | func_has_stkframe_hole (ea_t ea, const func_type_data_t &fti) |
| Looks for a hole at the beginning of the stack arguments. More...
|
|
idaman int ida_export | lower_type (til_t *til, tinfo_t *tif, const char *name=nullptr, lowertype_helper_t *_helper=nullptr) |
| Lower type. More...
|
|
idaman int ida_export | replace_ordinal_typerefs (til_t *til, tinfo_t *tif) |
| Replace references to ordinal types by name references. More...
|
|
idaman void ida_export | begin_type_updating (update_type_t utp) |
| Mark the beginning of a large update operation on the types. More...
|
|
idaman void ida_export | end_type_updating (update_type_t utp) |
| Mark the end of a large update operation on the types (see begin_type_updating())
|
|
idaman tid_t ida_export | get_named_type_tid (const char *name) |
| Get named local type TID. More...
|
|
idaman bool ida_export | get_tid_name (qstring *out, tid_t tid) |
| Get a type name for the specified TID. More...
|
|
idaman uint32 ida_export | get_tid_ordinal (tid_t tid) |
| Get type ordinal number for TID. More...
|
|
idaman ssize_t ida_export | get_udm_by_fullname (udm_t *udm, const char *fullname) |
| Get udt member by full name. More...
|
|
idaman bool ida_export | get_idainfo_by_udm (flags64_t *flags, opinfo_t *ti, const udm_t &udm) |
| Calculate IDA info from udt member. More...
|
|
tid_t | create_enum_type (const char *enum_name, enum_type_data_t &ei, int enum_width, type_sign_t sign, bool convert_to_bitmask, const char *enum_cmt=nullptr) |
| Create type enum. More...
|
|
idaman bool ida_export | format_cdata (qstrvec_t *outvec, const idc_value_t &idc_value, const tinfo_t *tif, valstr_t *vtree=nullptr, const format_data_info_t *fdi=nullptr) |
| Format a data value as a C initializer. More...
|
|
idaman int ida_export | print_cdata (text_sink_t &printer, const idc_value_t &idc_value, const tinfo_t *tif, const format_data_info_t *fdi=nullptr) |
| The same as format_cdata(), but instead of returning the answer in a vector, print it. More...
|
|
idaman int ida_export | print_decls (text_sink_t &printer, const til_t *til, const ordvec_t *ordinals, uint32 pdf_flags) |
| Print types (and possibly their dependencies) in a format suitable for using in a header file. More...
|
|
idaman int ida_export | calc_number_of_children (const argloc_t &loc, const tinfo_t &tif, bool dont_deref_ptr=false) |
| Calculate max number of lines of a formatted c data, when expanded (PTV_EXPAND). More...
|
|
idaman bool ida_export | get_enum_member_expr (qstring *buf, const tinfo_t &tif, int serial, uint64 value) |
| Return a C expression that can be used to represent an enum member. More...
|
|
idaman bool ida_export | choose_named_type (til_symbol_t *out_sym, const til_t *root_til, const char *title, int ntf_flags, predicate_t *predicate=nullptr) |
| Choose a type from a type library. More...
|
|
idaman uint32 ida_export | choose_local_tinfo (const til_t *ti, const char *title, local_tinfo_predicate_t *func=nullptr, uint32 def_ord=0, void *ud=nullptr) |
| Choose a type from the local type library. More...
|
|
idaman uint32 ida_export | choose_local_tinfo_and_delta (int32 *delta, const til_t *ti, const char *title, local_tinfo_predicate_t *func=nullptr, uint32 def_ord=0, void *ud=nullptr) |
| Choose a type from the local type library and specify the pointer shift value. More...
|
|
idaman ssize_t ida_export | visit_edms (const tinfo_t &tif, uint64 value, int nbytes, uchar serial, const enum_type_visitor_t &visitor) |
| Visit enum members having the specified value. More...
|
|
|
#define | DEFMASK64 bmask64_t(-1) |
| default bitmask 64bits
|
|
#define | RESERVED_BYTE 0xFF |
| multifunctional purpose
|
|
#define | TAH_BYTE 0xFE |
| type attribute header byte
|
|
#define | FAH_BYTE 0xFF |
| function argument attribute header byte
|
|
#define | MAX_DECL_ALIGN 0x000F |
|
#define | TAH_HASATTRS 0x0010 |
| has extended attributes
|
|
#define | TAUDT_UNALIGNED 0x0040 |
| struct: unaligned struct
|
|
#define | TAUDT_MSSTRUCT 0x0020 |
| struct: gcc msstruct attribute
|
|
#define | TAUDT_CPPOBJ 0x0080 |
| struct: a c++ object, not simple pod type
|
|
#define | TAUDT_VFTABLE 0x0100 |
| struct: is virtual function table
|
|
#define | TAUDT_FIXED 0x0400 |
| struct: fixed field offsets, stored in serialized form; cannot be set for unions
|
|
#define | TAFLD_BASECLASS 0x0020 |
| field: do not include but inherit from the current field
|
|
#define | TAFLD_UNALIGNED 0x0040 |
| field: unaligned field
|
|
#define | TAFLD_VIRTBASE 0x0080 |
| field: virtual base (not supported yet)
|
|
#define | TAFLD_VFTABLE 0x0100 |
| field: ptr to virtual function table
|
|
#define | TAFLD_METHOD 0x0200 |
| denotes a udt member function
|
|
#define | TAFLD_GAP 0x0400 |
| field: gap member (displayed as padding in type details)
|
|
#define | TAFLD_REGCMT 0x0800 |
| field: the comment is regular (if not set, it is repeatable)
|
|
#define | TAFLD_FRAME_R 0x1000 |
| frame: function return address frame slot
|
|
#define | TAFLD_FRAME_S 0x2000 |
| frame: function saved registers frame slot
|
|
#define | TAFLD_BYTIL 0x4000 |
| field: was the member created due to the type system
|
|
#define | TAPTR_PTR32 0x0020 |
| ptr: __ptr32
|
|
#define | TAPTR_PTR64 0x0040 |
| ptr: __ptr64
|
|
#define | TAPTR_RESTRICT 0x0060 |
| ptr: __restrict
|
|
#define | TAPTR_SHIFTED 0x0080 |
| ptr: __shifted(parent_struct, delta)
|
|
#define | TAENUM_64BIT 0x0020 |
| enum: store 64-bit values
|
|
#define | TAENUM_UNSIGNED 0x0040 |
| enum: unsigned
|
|
#define | TAENUM_SIGNED 0x0080 |
| enum: signed
|
|
#define | TAENUM_OCT 0x0100 |
| enum: octal representation, if BTE_HEX
|
|
#define | TAENUM_BIN 0x0200 |
| enum: binary representation, if BTE_HEX only one of OCT/BIN bits can be set. More...
|
|
#define | TAENUM_NUMSIGN 0x0400 |
| enum: signed representation, if BTE_HEX
|
|
#define | TAENUM_LZERO 0x0800 |
| enum: print numbers with leading zeroes (only for HEX/OCT/BIN)
|
|
#define | TAH_ALL 0x7FF0 |
| all defined bits
|
|
#define | TA_ORG_TYPEDEF "__org_typedef" |
| the original typedef name (simple string)
|
|
#define | TA_ORG_ARRDIM "__org_arrdim" |
| the original array dimension (pack_dd)
|
|
#define | TA_FORMAT "format" |
| info about the 'format' argument. More...
|
|
#define | TA_VALUE_REPR "\x01" |
| serialized value_repr_t (used for scalars and arrays)
|
|
#define | TIL_ZIP 0x0001 |
| pack buckets using zip
|
|
#define | TIL_MAC 0x0002 |
| til has macro table
|
|
#define | TIL_ESI 0x0004 |
| extended sizeof info (short, long, longlong)
|
|
#define | TIL_UNI 0x0008 |
| universal til for any compiler
|
|
#define | TIL_ORD 0x0010 |
| type ordinal numbers are present
|
|
#define | TIL_ALI 0x0020 |
| type aliases are present (this bit is used only on the disk)
|
|
#define | TIL_MOD 0x0040 |
| til has been modified, should be saved
|
|
#define | TIL_STM 0x0080 |
| til has extra streams
|
|
#define | TIL_SLD 0x0100 |
| sizeof(long double)
|
|
#define | TIL_ADD_FAILED 0 |
| see errbuf
|
|
#define | TIL_ADD_OK 1 |
| some tils were added
|
|
#define | TIL_ADD_ALREADY 2 |
| the base til was already added
|
|
#define | ARGLOC_HELPER_DEFINITIONS(decl) |
| Helper to declare common argloc_t related functions. More...
|
|
#define | PRALOC_VERIFY 0x01 |
| interr if illegal argloc
|
|
#define | PRALOC_STKOFF 0x02 |
| print stack offsets
|
|
#define | SETCOMP_OVERRIDE 0x0001 |
| may override old compiler info
|
|
#define | SETCOMP_ONLY_ID 0x0002 |
| cc has only 'id' field; the rest will be set to defaults corresponding to the program bitness
|
|
#define | SETCOMP_ONLY_ABI 0x0004 |
| ignore cc field complete, use only abiname
|
|
#define | SETCOMP_BY_USER 0x0008 |
| invoked by user, cannot be replaced by module/loader
|
|
#define | MAX_FUNC_ARGS 256 |
| max number of function arguments
|
|
#define | HTI_CPP 0x00000001 |
| C++ mode (not implemented)
|
|
#define | HTI_INT 0x00000002 |
| debug: print internal representation of types
|
|
#define | HTI_EXT 0x00000004 |
| debug: print external representation of types
|
|
#define | HTI_LEX 0x00000008 |
| debug: print tokens
|
|
#define | HTI_UNP 0x00000010 |
| debug: check the result by unpacking it
|
|
#define | HTI_TST 0x00000020 |
| test mode: discard the result
|
|
#define | HTI_FIL 0x00000040 |
| "input" is file name, otherwise "input" contains a C declaration
|
|
#define | HTI_MAC 0x00000080 |
| define macros from the base tils
|
|
#define | HTI_NWR 0x00000100 |
| no warning messages
|
|
#define | HTI_NER 0x00000200 |
| ignore all errors but display them
|
|
#define | HTI_DCL 0x00000400 |
| don't complain about redeclarations
|
|
#define | HTI_NDC 0x00000800 |
| don't decorate names
|
|
#define | HTI_PAK 0x00007000 |
| explicit structure pack value (#pragma pack)
|
|
#define | HTI_PAK_SHIFT 12 |
| shift for HTI_PAK. More...
|
|
#define | HTI_PAKDEF 0x00000000 |
| default pack value
|
|
#define | HTI_PAK1 0x00001000 |
| #pragma pack(1)
|
|
#define | HTI_PAK2 0x00002000 |
| #pragma pack(2)
|
|
#define | HTI_PAK4 0x00003000 |
| #pragma pack(4)
|
|
#define | HTI_PAK8 0x00004000 |
| #pragma pack(8)
|
|
#define | HTI_PAK16 0x00005000 |
| #pragma pack(16)
|
|
#define | HTI_HIGH 0x00008000 |
| assume high level prototypes (with hidden args, etc)
|
|
#define | HTI_LOWER 0x00010000 |
| lower the function prototypes
|
|
#define | HTI_RAWARGS 0x00020000 |
| leave argument names unchanged (do not remove underscores)
|
|
#define | HTI_RELAXED 0x00080000 |
| accept references to unknown namespaces
|
|
#define | HTI_NOBASE 0x00100000 |
| do not inspect base tils
|
|
#define | PT_SIL 0x0001 |
| silent, no messages
|
|
#define | PT_NDC 0x0002 |
| don't decorate names
|
|
#define | PT_TYP 0x0004 |
| return declared type information
|
|
#define | PT_VAR 0x0008 |
| return declared object information
|
|
#define | PT_PACKMASK 0x0070 |
| mask for pack alignment values
|
|
#define | PT_HIGH 0x0080 |
| assume high level prototypes (with hidden args, etc)
|
|
#define | PT_LOWER 0x0100 |
| lower the function prototypes
|
|
#define | PT_REPLACE 0x0200 |
| replace the old type (used in idc)
|
|
#define | PT_RAWARGS 0x0400 |
| leave argument names unchanged (do not remove underscores)
|
|
#define | PT_RELAXED 0x1000 |
| accept references to unknown namespaces
|
|
#define | PT_EMPTY 0x2000 |
| accept empty decl
|
|
#define | PRTYPE_1LINE 0x00000 |
| print to one line
|
|
#define | PRTYPE_MULTI 0x00001 |
| print to many lines
|
|
#define | PRTYPE_TYPE 0x00002 |
| print type declaration (not variable declaration)
|
|
#define | PRTYPE_PRAGMA 0x00004 |
| print pragmas for alignment
|
|
#define | PRTYPE_SEMI 0x00008 |
| append ; to the end
|
|
#define | PRTYPE_CPP 0x00010 |
| use c++ name (only for print_type())
|
|
#define | PRTYPE_DEF 0x00020 |
| tinfo_t: print definition, if available
|
|
#define | PRTYPE_NOARGS 0x00040 |
| tinfo_t: do not print function argument names
|
|
#define | PRTYPE_NOARRS 0x00080 |
| tinfo_t: print arguments with FAI_ARRAY as pointers
|
|
#define | PRTYPE_NORES 0x00100 |
| tinfo_t: never resolve types (meaningful with PRTYPE_DEF)
|
|
#define | PRTYPE_RESTORE 0x00200 |
| tinfo_t: print restored types for FAI_ARRAY and FAI_STRUCT
|
|
#define | PRTYPE_NOREGEX 0x00400 |
| do not apply regular expressions to beautify name
|
|
#define | PRTYPE_COLORED 0x00800 |
| add color tag COLOR_SYMBOL for any parentheses, commas and colons
|
|
#define | PRTYPE_METHODS 0x01000 |
| tinfo_t: print udt methods
|
|
#define | PRTYPE_1LINCMT 0x02000 |
| print comments even in the one line mode
|
|
#define | PRTYPE_HEADER 0x04000 |
| print only type header (only for definitions)
|
|
#define | PRTYPE_OFFSETS 0x08000 |
| print udt member offsets
|
|
#define | PRTYPE_MAXSTR 0x10000 |
| limit the output length to 1024 bytes (the output may be slightly longer)
|
|
#define | PRTYPE_TAIL 0x20000 |
| print only the definition tail (only for definitions, exclusive with PRTYPE_HEADER)
|
|
#define | NTF_TYPE 0x0001 |
| type name
|
|
#define | NTF_SYMU 0x0008 |
| symbol, name is unmangled ('func')
|
|
#define | NTF_SYMM 0x0000 |
| symbol, name is mangled ('_func'); only one of NTF_TYPE and NTF_SYMU, NTF_SYMM can be used
|
|
#define | NTF_NOBASE 0x0002 |
| don't inspect base tils (for get_named_type)
|
|
#define | NTF_REPLACE 0x0004 |
| replace original type (for set_named_type)
|
|
#define | NTF_UMANGLED 0x0008 |
| name is unmangled (don't use this flag)
|
|
#define | NTF_NOCUR 0x0020 |
| don't inspect current til file (for get_named_type)
|
|
#define | NTF_64BIT 0x0040 |
| value is 64bit
|
|
#define | NTF_FIXNAME 0x0080 |
| force-validate the name of the type when setting (set_named_type, set_numbered_type only)
|
|
#define | NTF_IDBENC 0x0100 |
| the name is given in the IDB encoding; non-ASCII bytes will be decoded accordingly (set_named_type, set_numbered_type only)
|
|
#define | NTF_CHKSYNC 0x0200 |
| check that synchronization to IDB passed OK (set_numbered_type, set_named_type)
|
|
#define | NTF_NO_NAMECHK 0x0400 |
| do not validate type name (set_numbered_type, set_named_type)
|
|
#define | NTF_NOSYNC 0x0800 |
| do not sync type to IDB *- (set_named_type, set_numbered_type only) *-
|
|
#define | NTF_COPY 0x1000 |
| save a new type definition, not a typeref (tinfo_t::set_numbered_type, tinfo_t::set_named_type)
|
|
#define | CCN_C 0x00 |
|
#define | CCN_CPP 0x01 |
|
#define | ADDTIL_DEFAULT 0x0000 |
| default behavior
|
|
#define | ADDTIL_INCOMP 0x0001 |
| load incompatible tils
|
|
#define | ADDTIL_SILENT 0x0002 |
| do not ask any questions
|
|
#define | ADDTIL_FAILED 0 |
| something bad, the warning is displayed
|
|
#define | ADDTIL_OK 1 |
| ok, til is loaded
|
|
#define | ADDTIL_COMP 2 |
| ok, but til is not compatible with the current compiler
|
|
#define | ADDTIL_ABORTED 3 |
| til was not loaded (incompatible til rejected by user)
|
|
#define | TINFO_GUESSED 0x0000 |
| this is a guessed type
|
|
#define | TINFO_DEFINITE 0x0001 |
| this is a definite type
|
|
#define | TINFO_DELAYFUNC 0x0002 |
| if type is a function and no function exists at ea, schedule its creation and argument renaming to auto-analysis, otherwise try to create it immediately
|
|
#define | TINFO_STRICT 0x0004 |
| never convert given type to another one before applying
|
|
#define | GUESS_FUNC_FAILED 0 |
| couldn't guess the function type
|
|
#define | GUESS_FUNC_TRIVIAL 1 |
| the function type doesn't have interesting info
|
|
#define | GUESS_FUNC_OK 2 |
| ok, some non-trivial information is gathered
|
|
#define | SUDT_SORT 0x0001 |
| fields are not sorted by offset, sort them first
|
|
#define | SUDT_ALIGN 0x0002 |
| recalculate field alignments, struct packing, etc to match the offsets and size info
|
|
#define | SUDT_GAPS 0x0004 |
| allow to fill gaps with additional members (_BYTE[])
|
|
#define | SUDT_UNEX 0x0008 |
| references to nonexistent member types are acceptable; in this case it is better to set the corresponding udm_t::fda field to the type alignment. More...
|
|
#define | SUDT_FAST 0x0010 |
| serialize without verifying offsets and alignments
|
|
#define | SUDT_CONST 0x0040 |
| only for serialize_udt: make type const
|
|
#define | SUDT_VOLATILE 0x0080 |
| only for serialize_udt: make type volatile
|
|
#define | SUDT_TRUNC 0x0100 |
| serialize: truncate useless strings from fields, fldcmts
|
|
#define | SUDT_SERDEF 0x0200 |
| serialize: if a typeref, serialize its definition
|
|
#define | DECLARE_TINFO_HELPERS(decl) |
| Macro to declare common tinfo_t related functions.
|
|
#define | STRMEM_MASK 0x000F |
|
#define | STRMEM_OFFSET 0x0000 |
| get member by offset More...
|
|
#define | STRMEM_INDEX 0x0001 |
| get member by number More...
|
|
#define | STRMEM_AUTO 0x0002 |
| get member by offset if struct, or get member by index if union More...
|
|
#define | STRMEM_NAME 0x0003 |
| get member by name More...
|
|
#define | STRMEM_TYPE 0x0004 |
| get member by type. More...
|
|
#define | STRMEM_SIZE 0x0005 |
| get member by size. More...
|
|
#define | STRMEM_MINS 0x0006 |
| get smallest member by size.
|
|
#define | STRMEM_MAXS 0x0007 |
| get biggest member by size.
|
|
#define | STRMEM_LOWBND 0x0008 |
| get member by offset or the next member (lower bound) More...
|
|
#define | STRMEM_NEXT 0x0009 |
| get next member after the offset More...
|
|
#define | STRMEM_VFTABLE 0x10000000 |
| can be combined with STRMEM_OFFSET, STRMEM_AUTO get vftable instead of the base class
|
|
#define | STRMEM_SKIP_EMPTY 0x20000000 |
| can be combined with STRMEM_OFFSET, STRMEM_AUTO skip empty members (i.e. More...
|
|
#define | STRMEM_CASTABLE_TO 0x40000000 |
| can be combined with STRMEM_TYPE: member type must be castable to the specified type
|
|
#define | STRMEM_ANON 0x80000000 |
| can be combined with STRMEM_NAME: look inside anonymous members too. More...
|
|
#define | STRMEM_SKIP_GAPS 0x01000000 |
| can be combined with STRMEM_OFFSET, STRMEM_LOWBND skip gap members
|
|
#define | TCMP_EQUAL 0x0000 |
| are types equal?
|
|
#define | TCMP_IGNMODS 0x0001 |
| ignore const/volatile modifiers
|
|
#define | TCMP_AUTOCAST 0x0002 |
| can t1 be cast into t2 automatically?
|
|
#define | TCMP_MANCAST 0x0004 |
| can t1 be cast into t2 manually?
|
|
#define | TCMP_CALL 0x0008 |
| can t1 be called with t2 type?
|
|
#define | TCMP_DELPTR 0x0010 |
| remove pointer from types before comparing
|
|
#define | TCMP_DECL 0x0020 |
| compare declarations without resolving them
|
|
#define | TCMP_ANYBASE 0x0040 |
| accept any base class when casting
|
|
#define | TCMP_SKIPTHIS 0x0080 |
| skip the first function argument in comparison
|
|
#define | FAI_HIDDEN 0x0001 |
| hidden argument
|
|
#define | FAI_RETPTR 0x0002 |
| pointer to return value. implies hidden
|
|
#define | FAI_STRUCT 0x0004 |
| was initially a structure
|
|
#define | FAI_ARRAY 0x0008 |
| was initially an array; see "__org_typedef" or "__org_arrdim" type attributes to determine the original type
|
|
#define | FAI_UNUSED 0x0010 |
| argument is not used by the function
|
|
#define | FTI_SPOILED 0x0001 |
| information about spoiled registers is present
|
|
#define | FTI_NORET 0x0002 |
| noreturn
|
|
#define | FTI_PURE 0x0004 |
| __pure
|
|
#define | FTI_HIGH 0x0008 |
| high level prototype (with possibly hidden args)
|
|
#define | FTI_STATIC 0x0010 |
| static
|
|
#define | FTI_VIRTUAL 0x0020 |
| virtual
|
|
#define | FTI_CALLTYPE 0x00C0 |
| mask for FTI_*CALL
|
|
#define | FTI_DEFCALL 0x0000 |
| default call
|
|
#define | FTI_NEARCALL 0x0040 |
| near call
|
|
#define | FTI_FARCALL 0x0080 |
| far call
|
|
#define | FTI_INTCALL 0x00C0 |
| interrupt call
|
|
#define | FTI_ARGLOCS 0x0100 |
| info about argument locations has been calculated (stkargs and retloc too)
|
|
#define | FTI_EXPLOCS 0x0200 |
| all arglocs are specified explicitly
|
|
#define | FTI_CONST 0x0400 |
| const member function
|
|
#define | FTI_CTOR 0x0800 |
| constructor
|
|
#define | FTI_DTOR 0x1000 |
| destructor
|
|
#define | FTI_ALL 0x1FFF |
| all defined bits
|
|
#define | CC_CDECL_OK 0x01 |
| can use __cdecl calling convention?
|
|
#define | CC_ALLOW_ARGPERM 0x02 |
| disregard argument order?
|
|
#define | CC_ALLOW_REGHOLES 0x04 |
| allow holes in register argument list?
|
|
#define | CC_HAS_ELLIPSIS 0x08 |
| function has a variable list of arguments?
|
|
#define | CC_GOLANG_OK 0x10 |
| can use __golang calling convention
|
|
#define | FRB_MASK 0xF |
| Mask for the value type (* means requires additional info):
|
|
#define | FRB_UNK 0x0 |
| Unknown.
|
|
#define | FRB_NUMB 0x1 |
| Binary number.
|
|
#define | FRB_NUMO 0x2 |
| Octal number.
|
|
#define | FRB_NUMH 0x3 |
| Hexadecimal number.
|
|
#define | FRB_NUMD 0x4 |
| Decimal number.
|
|
#define | FRB_FLOAT 0x5 |
| Floating point number (for interpreting an integer type as a floating value)
|
|
#define | FRB_CHAR 0x6 |
| Char.
|
|
#define | FRB_SEG 0x7 |
| Segment.
|
|
#define | FRB_ENUM 0x8 |
| *Enumeration
|
|
#define | FRB_OFFSET 0x9 |
| *Offset
|
|
#define | FRB_STRLIT 0xA |
| *String literal (used for arrays)
|
|
#define | FRB_STROFF 0xB |
| *Struct offset
|
|
#define | FRB_CUSTOM 0xC |
| *Custom data type
|
|
#define | FRB_INVSIGN 0x0100 |
| Invert sign (0x01 is represented as -0xFF)
|
|
#define | FRB_INVBITS 0x0200 |
| Invert bits (0x01 is represented as ~0xFE)
|
|
#define | FRB_SIGNED 0x0400 |
| Force signed representation.
|
|
#define | FRB_LZERO 0x0800 |
| Toggle leading zeroes (used for integers)
|
|
#define | FRB_TABFORM 0x1000 |
| has additional tabular parameters
|
|
#define | STRUC_SEPARATOR '.' |
| structname.fieldname
|
|
#define | VTBL_SUFFIX "_vtbl" |
|
#define | VTBL_MEMNAME "__vftable" |
|
#define | TPOS_LNNUM "\x05" |
|
#define | TPOS_REGCMT '\x06' |
|
#define | TVIS_TYPE 0x0001 |
| new type info is present
|
|
#define | TVIS_NAME 0x0002 |
| new name is present (only for funcargs and udt members)
|
|
#define | TVIS_CMT 0x0004 |
| new comment is present (only for udt members)
|
|
#define | TVIS_RPTCMT 0x0008 |
| the new comment is repeatable
|
|
#define | TVST_PRUNE 0x01 |
| don't visit children of current type
|
|
#define | TVST_DEF 0x02 |
| visit type definition (meaningful for typerefs)
|
|
#define | TVST_LEVEL 0x04 |
|
#define | PIO_NOATTR_FAIL 0x0004 |
| missing attributes are not ok
|
|
#define | PIO_IGNORE_PTRS 0x0008 |
| do not follow pointers
|
|
#define | PTV_DEREF 0x0001 |
| take value to print from the debugged process. More...
|
|
#define | PTV_QUEST 0x0002 |
| print '?' for uninited data
|
|
#define | PTV_EMPTY 0x0004 |
| return empty string for uninited data; should not specify PTV_QUEST and PTV_EMPTY together
|
|
#define | PTV_CSTR 0x0008 |
| print constant strings inline
|
|
#define | PTV_EXPAND 0x0010 |
| print only top level on separate lines; max_length applies to separate lines; margin is ignored
|
|
#define | PTV_LZERO 0x0020 |
| print numbers with leading zeroes (only for hex/oct/bin)
|
|
#define | PTV_STPFLT 0x0040 |
| fail on bad floating point numbers (if not set, just print ?flt for them)
|
|
#define | PTV_SPACE 0x0080 |
| add spaces after commas and around braces
|
|
#define | PTV_DEBUG 0x0100 |
| format output for debugger
|
|
#define | PTV_NOPTR 0x0200 |
| prevent pointer values from appearing in the output
|
|
#define | PTV_NTOP 0x40000000 |
| internal flag, do not use
|
|
#define | PTV_KEEP 0x80000000 |
| internal flag, do not use
|
|
#define | VALSTR_OPEN 0x01 |
| printed opening curly brace '{'
|
|
#define | PDF_INCL_DEPS 0x1 |
| Include all type dependencies.
|
|
#define | PDF_DEF_FWD 0x2 |
| Allow forward declarations.
|
|
#define | PDF_DEF_BASE 0x4 |
| Include base types: __int8, __int16, etc..
|
|
#define | PDF_HEADER_CMT 0x8 |
| Prepend output with a descriptive comment.
|
|
|
const type_t | TYPE_BASE_MASK = 0x0F |
| the low 4 bits define the basic type
|
|
const type_t | TYPE_FLAGS_MASK = 0x30 |
| type flags - they have different meaning depending on the basic type
|
|
const type_t | TYPE_MODIF_MASK = 0xC0 |
| modifiers. More...
|
|
const type_t | TYPE_FULL_MASK = (TYPE_BASE_MASK | TYPE_FLAGS_MASK) |
| basic type with type flags
|
|
const type_t | BT_UNK = 0x00 |
| unknown
|
|
const type_t | BT_VOID = 0x01 |
| void
|
|
const type_t | BTMT_SIZE0 = 0x00 |
| BT_VOID - normal void; BT_UNK - don't use
|
|
const type_t | BTMT_SIZE12 = 0x10 |
| size = 1 byte if BT_VOID; 2 if BT_UNK
|
|
const type_t | BTMT_SIZE48 = 0x20 |
| size = 4 bytes if BT_VOID; 8 if BT_UNK
|
|
const type_t | BTMT_SIZE128 = 0x30 |
| size = 16 bytes if BT_VOID; unknown if BT_UNK (IN struct alignment - see below)
|
|
const type_t | BT_INT8 = 0x02 |
| __int8
|
|
const type_t | BT_INT16 = 0x03 |
| __int16
|
|
const type_t | BT_INT32 = 0x04 |
| __int32
|
|
const type_t | BT_INT64 = 0x05 |
| __int64
|
|
const type_t | BT_INT128 = 0x06 |
| __int128 (for alpha & future use)
|
|
const type_t | BT_INT = 0x07 |
| natural int. (size provided by idp module)
|
|
const type_t | BTMT_UNKSIGN = 0x00 |
| unknown signedness
|
|
const type_t | BTMT_SIGNED = 0x10 |
| signed
|
|
const type_t | BTMT_USIGNED = 0x20 |
| unsigned
|
|
const type_t | BTMT_UNSIGNED = BTMT_USIGNED |
|
const type_t | BTMT_CHAR = 0x30 |
| specify char or segment register More...
|
|
const type_t | BT_BOOL = 0x08 |
| bool
|
|
const type_t | BTMT_DEFBOOL = 0x00 |
| size is model specific or unknown(?)
|
|
const type_t | BTMT_BOOL1 = 0x10 |
| size 1byte
|
|
const type_t | BTMT_BOOL2 = 0x20 |
| size 2bytes - !inf_is_64bit()
|
|
const type_t | BTMT_BOOL8 = 0x20 |
| size 8bytes - inf_is_64bit()
|
|
const type_t | BTMT_BOOL4 = 0x30 |
| size 4bytes
|
|
const type_t | BT_FLOAT = 0x09 |
| float
|
|
const type_t | BTMT_FLOAT = 0x00 |
| float (4 bytes)
|
|
const type_t | BTMT_DOUBLE = 0x10 |
| double (8 bytes)
|
|
const type_t | BTMT_LNGDBL = 0x20 |
| long double (compiler specific)
|
|
const type_t | BTMT_SPECFLT = 0x30 |
| float (variable size). More...
|
|
const type_t | _BT_LAST_BASIC = BT_FLOAT |
| the last basic type, all basic types may be followed by [tah-typeattrs]
|
|
const type_t | BT_PTR = 0x0A |
| pointer. More...
|
|
const type_t | BTMT_DEFPTR = 0x00 |
| default for model
|
|
const type_t | BTMT_NEAR = 0x10 |
| near
|
|
const type_t | BTMT_FAR = 0x20 |
| far
|
|
const type_t | BTMT_CLOSURE = 0x30 |
| closure. More...
|
|
const type_t | BT_ARRAY = 0x0B |
| array
|
|
const type_t | BTMT_NONBASED = 0x10 |
|
const type_t | BTMT_ARRESERV = 0x20 |
| reserved bit
|
|
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'
|
|
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_RESERVED = 0x0F |
| RESERVED.
|
|
const type_t | BTM_CONST = 0x40 |
| const
|
|
const type_t | BTM_VOLATILE = 0x80 |
| volatile
|
|
const bte_t | BTE_SIZE_MASK = 0x07 |
| storage size. More...
|
|
const bte_t | BTE_RESERVED = 0x08 |
| must be 0, in order to distinguish from a tah-byte
|
|
const bte_t | BTE_BITMASK = 0x10 |
| 'subarrays'. More...
|
|
const bte_t | BTE_OUT_MASK = 0x60 |
| output style mask
|
|
const bte_t | BTE_HEX = 0x00 |
| hex
|
|
const bte_t | BTE_CHAR = 0x20 |
| char or hex
|
|
const bte_t | BTE_SDEC = 0x40 |
| signed decimal
|
|
const bte_t | BTE_UDEC = 0x60 |
| unsigned decimal
|
|
const bte_t | BTE_ALWAYS = 0x80 |
| this bit MUST be present
|
|
const type_t | BT_SEGREG = (BT_INT | BTMT_CHAR) |
| segment register
|
|
const type_t | BT_UNK_BYTE = (BT_VOID | BTMT_SIZE12) |
| 1 byte
|
|
const type_t | BT_UNK_WORD = (BT_UNK | BTMT_SIZE12) |
| 2 bytes
|
|
const type_t | BT_UNK_DWORD = (BT_VOID | BTMT_SIZE48) |
| 4 bytes
|
|
const type_t | BT_UNK_QWORD = (BT_UNK | BTMT_SIZE48) |
| 8 bytes
|
|
const type_t | BT_UNK_OWORD = (BT_VOID | BTMT_SIZE128) |
| 16 bytes
|
|
const type_t | BT_UNKNOWN = (BT_UNK | BTMT_SIZE128) |
| unknown size - for parameters
|
|
const type_t | BTF_BYTE = BT_UNK_BYTE |
| byte
|
|
const type_t | BTF_UNK = BT_UNKNOWN |
| unknown
|
|
const type_t | BTF_VOID = BT_VOID | BTMT_SIZE0 |
| void
|
|
const type_t | BTF_INT8 = BT_INT8 | BTMT_SIGNED |
| signed byte
|
|
const type_t | BTF_CHAR = BT_INT8 | BTMT_CHAR |
| signed char
|
|
const type_t | BTF_UCHAR = BT_INT8 | BTMT_USIGNED |
| unsigned char
|
|
const type_t | BTF_UINT8 = BT_INT8 | BTMT_USIGNED |
| unsigned byte
|
|
const type_t | BTF_INT16 = BT_INT16 | BTMT_SIGNED |
| signed short
|
|
const type_t | BTF_UINT16 = BT_INT16 | BTMT_USIGNED |
| unsigned short
|
|
const type_t | BTF_INT32 = BT_INT32 | BTMT_SIGNED |
| signed int
|
|
const type_t | BTF_UINT32 = BT_INT32 | BTMT_USIGNED |
| unsigned int
|
|
const type_t | BTF_INT64 = BT_INT64 | BTMT_SIGNED |
| signed long
|
|
const type_t | BTF_UINT64 = BT_INT64 | BTMT_USIGNED |
| unsigned long
|
|
const type_t | BTF_INT128 = BT_INT128 | BTMT_SIGNED |
| signed 128-bit value
|
|
const type_t | BTF_UINT128 = BT_INT128 | BTMT_USIGNED |
| unsigned 128-bit value
|
|
const type_t | BTF_INT = BT_INT | BTMT_UNKSIGN |
| int, unknown signedness
|
|
const type_t | BTF_UINT = BT_INT | BTMT_USIGNED |
| unsigned int
|
|
const type_t | BTF_SINT = BT_INT | BTMT_SIGNED |
| singed int
|
|
const type_t | BTF_BOOL = BT_BOOL |
| boolean
|
|
const type_t | BTF_FLOAT = BT_FLOAT | BTMT_FLOAT |
| float
|
|
const type_t | BTF_DOUBLE = BT_FLOAT | BTMT_DOUBLE |
| double
|
|
const type_t | BTF_LDOUBLE = BT_FLOAT | BTMT_LNGDBL |
| long double
|
|
const type_t | BTF_TBYTE = BT_FLOAT | BTMT_SPECFLT |
| see BTMT_SPECFLT
|
|
const type_t | BTF_STRUCT = BT_COMPLEX | BTMT_STRUCT |
| struct
|
|
const type_t | BTF_UNION = BT_COMPLEX | BTMT_UNION |
| union
|
|
const type_t | BTF_ENUM = BT_COMPLEX | BTMT_ENUM |
| enum
|
|
const type_t | BTF_TYPEDEF = BT_COMPLEX | BTMT_TYPEDEF |
| typedef
|
|
const type_sign_t | no_sign = 0 |
| no sign, or unknown
|
|
const type_sign_t | type_signed = 1 |
| signed type
|
|
const type_sign_t | type_unsigned = 2 |
| unsigned type
|
|
const cm_t | CM_MASK = 0x03 |
|
const cm_t | CM_UNKNOWN = 0x00 |
| unknown
|
|
const cm_t | CM_N8_F16 = 0x01 |
| if sizeof(int)<=2: near 1 byte, far 2 bytes
|
|
const cm_t | CM_N64 = 0x01 |
| if sizeof(int)>2: near 8 bytes, far 8 bytes
|
|
const cm_t | CM_N16_F32 = 0x02 |
| near 2 bytes, far 4 bytes
|
|
const cm_t | CM_N32_F48 = 0x03 |
| near 4 bytes, far 6 bytes
|
|
const cm_t | CM_M_MASK = 0x0C |
|
const cm_t | CM_M_NN = 0x00 |
| small: code=near, data=near (or unknown if CM_UNKNOWN)
|
|
const cm_t | CM_M_FF = 0x04 |
| large: code=far, data=far
|
|
const cm_t | CM_M_NF = 0x08 |
| compact: code=near, data=far
|
|
const cm_t | CM_M_FN = 0x0C |
| medium: code=far, data=near
|
|
const cm_t | CM_CC_MASK = 0xF0 |
|
const cm_t | CM_CC_INVALID = 0x00 |
| this value is invalid
|
|
const cm_t | CM_CC_UNKNOWN = 0x10 |
| unknown calling convention
|
|
const cm_t | CM_CC_VOIDARG = 0x20 |
| function without arguments if has other cc and argnum == 0, represent as f() - unknown list
|
|
const cm_t | CM_CC_CDECL = 0x30 |
| stack
|
|
const cm_t | CM_CC_ELLIPSIS = 0x40 |
| cdecl + ellipsis
|
|
const cm_t | CM_CC_STDCALL = 0x50 |
| stack, purged
|
|
const cm_t | CM_CC_PASCAL = 0x60 |
| stack, purged, reverse order of args
|
|
const cm_t | CM_CC_FASTCALL = 0x70 |
| stack, purged (x86), first args are in regs (compiler-dependent)
|
|
const cm_t | CM_CC_THISCALL = 0x80 |
| stack, purged (x86), first arg is in reg (compiler-dependent)
|
|
const cm_t | CM_CC_SWIFT = 0x90 |
| (Swift) arguments and return values in registers (compiler-dependent)
|
|
const cm_t | CM_CC_SPOILED = 0xA0 |
| This is NOT a cc! Mark of __spoil record the low nibble is count and after n {spoilreg_t} present real cm_t byte. More...
|
|
const cm_t | CM_CC_GOLANG = 0xB0 |
| (Go) arguments and return value in stack
|
|
const cm_t | CM_CC_RESERVE3 = 0xC0 |
|
const cm_t | CM_CC_SPECIALE = 0xD0 |
| CM_CC_SPECIAL with ellipsis
|
|
const cm_t | CM_CC_SPECIALP = 0xE0 |
| Equal to CM_CC_SPECIAL, but with purged stack.
|
|
const cm_t | CM_CC_SPECIAL = 0xF0 |
| usercall: locations of all arguments and the return value are explicitly specified
|
|
const type_t | BFA_NORET = 0x01 |
| __noreturn
|
|
const type_t | BFA_PURE = 0x02 |
| __pure
|
|
const type_t | BFA_HIGH = 0x04 |
| high level prototype (with possibly hidden args)
|
|
const type_t | BFA_STATIC = 0x08 |
| static
|
|
const type_t | BFA_VIRTUAL = 0x10 |
| virtual
|
|
const cm_t | BFA_FUNC_MARKER = 0x0F |
| This is NOT a cc! (used internally as a marker)
|
|
const type_t | BFA_FUNC_EXT_FORMAT = 0x80 |
| This is NOT a real attribute (used internally as marker for extended format)
|
|
const argloc_type_t | ALOC_NONE = 0 |
| none
|
|
const argloc_type_t | ALOC_STACK = 1 |
| stack offset
|
|
const argloc_type_t | ALOC_DIST = 2 |
| distributed (scattered)
|
|
const argloc_type_t | ALOC_REG1 = 3 |
| one register (and offset within it)
|
|
const argloc_type_t | ALOC_REG2 = 4 |
| register pair
|
|
const argloc_type_t | ALOC_RREL = 5 |
| register relative
|
|
const argloc_type_t | ALOC_STATIC = 6 |
| global address
|
|
const argloc_type_t | ALOC_CUSTOM = 7 |
| custom argloc (7 or higher)
|
|
const cm_t | C_PC_TINY = (CM_N16_F32 | CM_M_NN) |
|
const cm_t | C_PC_SMALL = (CM_N16_F32 | CM_M_NN) |
|
const cm_t | C_PC_COMPACT = (CM_N16_F32 | CM_M_NF) |
|
const cm_t | C_PC_MEDIUM = (CM_N16_F32 | CM_M_FN) |
|
const cm_t | C_PC_LARGE = (CM_N16_F32 | CM_M_FF) |
|
const cm_t | C_PC_HUGE = (CM_N16_F32 | CM_M_FF) |
|
const cm_t | C_PC_FLAT = (CM_N32_F48 | CM_M_NN) |
|
const comp_t | COMP_MASK = 0x0F |
|
const comp_t | COMP_UNK = 0x00 |
| Unknown.
|
|
const comp_t | COMP_MS = 0x01 |
| Visual C++.
|
|
const comp_t | COMP_BC = 0x02 |
| Borland C++.
|
|
const comp_t | COMP_WATCOM = 0x03 |
| Watcom C++.
|
|
const comp_t | COMP_GNU = 0x06 |
| GNU C++.
|
|
const comp_t | COMP_VISAGE = 0x07 |
| Visual Age C++.
|
|
const comp_t | COMP_BP = 0x08 |
| Delphi.
|
|
const comp_t | COMP_UNSURE = 0x80 |
| uncertain compiler id
|
|
const size_t | BADSIZE = size_t(-1) |
| bad type size
|
|
const int | FIRST_NONTRIVIAL_TYPID = 0x100 |
| Denotes the first bit describing a nontrivial type.
|
|
const int | TYPID_ISREF = 0x100 |
| Identifies that a type that is a typeref.
|
|
const int | TYPID_SHIFT = 9 |
| First type detail bit.
|
|
const uchar | MAX_ENUM_SERIAL = 255 |
| Max number of identical constants allowed for one enum type.
|
|