|
| tinfo_t () |
| Constructor.
|
|
| tinfo_t (type_t decl_type) |
| Constructor - can only be used to initialize simple types!
|
|
| tinfo_t (const tinfo_t &r) |
| Constructor.
|
|
tinfo_t & | operator= (const tinfo_t &r) |
| Copy contents of given tinfo into this one.
|
|
| ~tinfo_t () |
| Destructor.
|
|
void | clear () |
| Clear contents of this tinfo, and remove from the type system.
|
|
void | swap (tinfo_t &r) |
| Assign this = r and r = this.
|
|
bool | get_named_type (const til_t *til, const char *name, type_t decl_type=BTF_TYPEDEF, bool resolve=true, bool try_ordinal=true) |
| Create a tinfo_t object for an existing named type. More...
|
|
bool | get_numbered_type (const til_t *til, uint32 ordinal, type_t decl_type=BTF_TYPEDEF, bool resolve=true) |
| Create a tinfo_t object for an existing ordinal type. More...
|
|
bool | serialize (qtype *type, qtype *fields=nullptr, qtype *fldcmts=nullptr, int sudt_flags=SUDT_FAST|SUDT_TRUNC) const |
| Serialize tinfo_t object into a type string.
|
|
bool | deserialize (const til_t *til, const type_t **ptype, const p_list **pfields=nullptr, const p_list **pfldcmts=nullptr, const char *cmt=nullptr) |
| Deserialize a type string into a tinfo_t object.
|
|
bool | deserialize (const til_t *til, const qtype *ptype, const qtype *pfields=nullptr, const qtype *pfldcmts=nullptr, const char *cmt=nullptr) |
| Deserialize a type string into a tinfo_t object. More...
|
|
bool | is_correct () const |
| Is the type object correct?. More...
|
|
type_t | get_realtype (bool full=false) const |
| Get the resolved base type. More...
|
|
THREAD_SAFE type_t | get_decltype () const |
| Get declared type (without resolving type references; they are returned as is). More...
|
|
THREAD_SAFE bool | empty () const |
| Was tinfo_t initialized with some type info or not?
|
|
bool | present () const |
| Is the type really present? (not a reference to a missing type, for example)
|
|
size_t | get_size (uint32 *p_effalign=nullptr, int gts_code=0) const |
| Get the type size in bytes. More...
|
|
size_t | get_unpadded_size () const |
| Get the type size in bytes without the final padding, in bytes. More...
|
|
type_sign_t | get_sign () const |
| Get type sign.
|
|
bool | is_signed () const |
| Is this a signed type?
|
|
bool | is_unsigned () const |
| Is this an unsigned type?
|
|
uchar | get_declalign () const |
| Get declared alignment of the type.
|
|
THREAD_SAFE bool | is_typeref () const |
| Is this type a type reference?.
|
|
THREAD_SAFE bool | has_details () const |
| Does this type refer to a nontrivial type?
|
|
bool | get_type_name (qstring *out) const |
| Does a type refer to a name?. More...
|
|
bool | get_nice_type_name (qstring *out) const |
| Get the beautified type name. More...
|
|
tinfo_code_t | rename_type (const char *name, int ntf_flags=0) |
| Rename a type. More...
|
|
bool | get_final_type_name (qstring *out) const |
| Use in the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). More...
|
|
bool | get_next_type_name (qstring *out) const |
| Use In the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). More...
|
|
tid_t | get_tid () const |
| Get the type tid Each type in the local type library has a so-called `tid` associated with it. More...
|
|
tid_t | force_tid () |
| Get the type tid. More...
|
|
uint32 | get_ordinal () const |
| Get type ordinal (only if the type was created as a numbered type, 0 if none)
|
|
uint32 | get_final_ordinal () const |
| Get final type ordinal (0 if none)
|
|
til_t * | get_til () const |
| Get the type library for tinfo_t.
|
|
bool | is_from_subtil () const |
| Was the named type found in some base type library (not the top level type library)?. More...
|
|
bool | is_forward_decl () const |
| Is this a forward declaration?. More...
|
|
type_t | get_forward_type () const |
| Get type of a forward declaration. More...
|
|
bool | is_forward_struct () const |
|
bool | is_forward_union () const |
|
bool | is_forward_enum () const |
|
bool | is_typedef () const |
| Is this a typedef?. More...
|
|
int | get_type_cmt (qstring *out) const |
| Get type comment. More...
|
|
bool | get_type_rptcmt (qstring *out) const |
| Get type comment only if it is repeatable.
|
|
THREAD_SAFE bool | is_decl_const () const |
| is_type_const(get_decltype())
|
|
THREAD_SAFE bool | is_decl_volatile () const |
| is_type_volatile(get_decltype())
|
|
THREAD_SAFE bool | is_decl_void () const |
| is_type_void(get_decltype())
|
|
THREAD_SAFE bool | is_decl_partial () const |
| is_type_partial(get_decltype())
|
|
THREAD_SAFE bool | is_decl_unknown () const |
| is_type_unknown(get_decltype())
|
|
THREAD_SAFE bool | is_decl_last () const |
| is_typeid_last(get_decltype())
|
|
THREAD_SAFE bool | is_decl_ptr () const |
| is_type_ptr(get_decltype())
|
|
THREAD_SAFE bool | is_decl_array () const |
| is_type_array(get_decltype())
|
|
THREAD_SAFE bool | is_decl_func () const |
| is_type_func(get_decltype())
|
|
THREAD_SAFE bool | is_decl_complex () const |
| is_type_complex(get_decltype())
|
|
THREAD_SAFE bool | is_decl_typedef () const |
| is_type_typedef(get_decltype())
|
|
THREAD_SAFE bool | is_decl_sue () const |
| is_type_sue(get_decltype())
|
|
THREAD_SAFE bool | is_decl_struct () const |
| is_type_struct(get_decltype())
|
|
THREAD_SAFE bool | is_decl_union () const |
| is_type_union(get_decltype())
|
|
THREAD_SAFE bool | is_decl_udt () const |
| is_type_struni(get_decltype())
|
|
THREAD_SAFE bool | is_decl_enum () const |
| is_type_enum(get_decltype())
|
|
THREAD_SAFE bool | is_decl_bitfield () const |
| is_type_bitfld(get_decltype())
|
|
THREAD_SAFE bool | is_decl_int128 () const |
| is_type_int128(get_decltype())
|
|
THREAD_SAFE bool | is_decl_int64 () const |
| is_type_int64(get_decltype())
|
|
THREAD_SAFE bool | is_decl_int32 () const |
| is_type_int32(get_decltype())
|
|
THREAD_SAFE bool | is_decl_int16 () const |
| is_type_int16(get_decltype())
|
|
THREAD_SAFE bool | is_decl_int () const |
| is_type_int(get_decltype())
|
|
THREAD_SAFE bool | is_decl_char () const |
| is_type_char(get_decltype())
|
|
THREAD_SAFE bool | is_decl_uint () const |
| is_type_uint(get_decltype())
|
|
THREAD_SAFE bool | is_decl_uchar () const |
| is_type_uchar(get_decltype())
|
|
THREAD_SAFE bool | is_decl_uint16 () const |
| is_type_uint16(get_decltype())
|
|
THREAD_SAFE bool | is_decl_uint32 () const |
| is_type_uint32(get_decltype())
|
|
THREAD_SAFE bool | is_decl_uint64 () const |
| is_type_uint64(get_decltype())
|
|
THREAD_SAFE bool | is_decl_uint128 () const |
| is_type_uint128(get_decltype())
|
|
THREAD_SAFE bool | is_decl_ldouble () const |
| is_type_ldouble(get_decltype())
|
|
THREAD_SAFE bool | is_decl_double () const |
| is_type_double(get_decltype())
|
|
THREAD_SAFE bool | is_decl_float () const |
| is_type_float(get_decltype())
|
|
THREAD_SAFE bool | is_decl_tbyte () const |
| is_type_tbyte(get_decltype())
|
|
THREAD_SAFE bool | is_decl_floating () const |
| is_type_floating(get_decltype())
|
|
THREAD_SAFE bool | is_decl_bool () const |
| is_type_bool(get_decltype())
|
|
THREAD_SAFE bool | is_decl_paf () const |
| is_type_paf(get_decltype())
|
|
THREAD_SAFE bool | is_well_defined () const |
| !(empty()) && !(is_decl_partial())
|
|
bool | is_const () const |
| is_type_const(get_realtype())
|
|
bool | is_volatile () const |
| is_type_volatile(get_realtype())
|
|
bool | is_void () const |
| is_type_void(get_realtype())
|
|
bool | is_partial () const |
| is_type_partial(get_realtype())
|
|
bool | is_unknown () const |
| is_type_unknown(get_realtype())
|
|
bool | is_ptr () const |
| is_type_ptr(get_realtype())
|
|
bool | is_array () const |
| is_type_array(get_realtype())
|
|
bool | is_func () const |
| is_type_func(get_realtype())
|
|
bool | is_complex () const |
| is_type_complex(get_realtype())
|
|
bool | is_struct () const |
| is_type_struct(get_realtype())
|
|
bool | is_union () const |
| is_type_union(get_realtype())
|
|
bool | is_udt () const |
| is_type_struni(get_realtype())
|
|
bool | is_enum () const |
| is_type_enum(get_realtype())
|
|
bool | is_sue () const |
| is_type_sue(get_realtype())
|
|
bool | is_bitfield () const |
| is_type_bitfld(get_realtype())
|
|
bool | is_int128 () const |
| is_type_int128(get_realtype())
|
|
bool | is_int64 () const |
| is_type_int64(get_realtype())
|
|
bool | is_int32 () const |
| is_type_int32(get_realtype())
|
|
bool | is_int16 () const |
| is_type_int16(get_realtype())
|
|
bool | is_int () const |
| is_type_int(get_realtype())
|
|
bool | is_char () const |
| is_type_char(get_realtype())
|
|
bool | is_uint () const |
| is_type_uint(get_realtype())
|
|
bool | is_uchar () const |
| is_type_uchar(get_realtype())
|
|
bool | is_uint16 () const |
| is_type_uint16(get_realtype())
|
|
bool | is_uint32 () const |
| is_type_uint32(get_realtype())
|
|
bool | is_uint64 () const |
| is_type_uint64(get_realtype())
|
|
bool | is_uint128 () const |
| is_type_uint128(get_realtype())
|
|
bool | is_ldouble () const |
| is_type_ldouble(get_realtype())
|
|
bool | is_double () const |
| is_type_double(get_realtype())
|
|
bool | is_float () const |
| is_type_float(get_realtype())
|
|
bool | is_tbyte () const |
| is_type_tbyte(get_realtype())
|
|
bool | is_bool () const |
| is_type_bool(get_realtype())
|
|
bool | is_paf () const |
| is_type_paf(get_realtype())
|
|
bool | is_ptr_or_array () const |
| is_type_ptr_or_array(get_realtype())
|
|
bool | is_integral () const |
| is_type_integral(get_realtype())
|
|
bool | is_ext_integral () const |
| is_type_ext_integral(get_realtype())
|
|
bool | is_floating () const |
| is_type_floating(get_realtype())
|
|
bool | is_arithmetic () const |
| is_type_arithmetic(get_realtype())
|
|
bool | is_ext_arithmetic () const |
| is_type_ext_arithmetic(get_realtype())
|
|
bool | is_scalar () const |
| Does the type represent a single number?
|
|
bool | get_ptr_details (ptr_type_data_t *pi) const |
| Get the pointer info.
|
|
bool | get_array_details (array_type_data_t *ai) const |
| Get the array specific info.
|
|
bool | get_enum_details (enum_type_data_t *ei) const |
| Get the enum specific info.
|
|
bool | get_bitfield_details (bitfield_type_data_t *bi) const |
| Get the bitfield specific info.
|
|
bool | get_udt_details (udt_type_data_t *udt, gtd_udt_t gtd=GTD_CALC_LAYOUT) const |
| Get the udt specific info.
|
|
bool | get_func_details (func_type_data_t *fi, gtd_func_t gtd=GTD_CALC_ARGLOCS) const |
| Get only the function specific info for this tinfo_t.
|
|
bool | is_funcptr () const |
| Is this pointer to a function?
|
|
bool | is_shifted_ptr () const |
| Is a shifted pointer?
|
|
bool | is_varstruct () const |
| Is a variable-size structure?
|
|
bool | is_varmember () const |
| Can the type be of a variable struct member? This function checks for: is_array() && array.nelems==0 Such a member can be only the very last member of a structure.
|
|
int | get_ptrarr_objsize () const |
| BT_PTR & BT_ARRAY: get size of pointed object or array element. On error returns -1
|
|
tinfo_t | get_ptrarr_object () const |
| BT_PTR & BT_ARRAY: get the pointed object or array element. More...
|
|
tinfo_t | get_pointed_object () const |
| BT_PTR: get type of pointed object. More...
|
|
bool | is_pvoid () const |
| Is "void *"?. This function does not check the pointer attributes and type modifiers.
|
|
tinfo_t | get_array_element () const |
| BT_ARRAY: get type of array element. See also get_ptrarr_object()
|
|
tinfo_t | get_final_element () const |
| repeat recursively: if an array, return the type of its element; else return the type itself.
|
|
int | get_array_nelems () const |
| BT_ARRAY: get number of elements (-1 means error)
|
|
tinfo_t | get_nth_arg (int n) const |
| BT_FUNC or BT_PTR BT_FUNC: Get type of n-th arg (-1 means return type, see get_rettype())
|
|
tinfo_t | get_rettype () const |
| BT_FUNC or BT_PTR BT_FUNC: Get the function's return type
|
|
int | get_nargs () const |
| BT_FUNC or BT_PTR BT_FUNC: Calculate number of arguments (-1 - error)
|
|
cm_t | get_cc () const |
| BT_FUNC or BT_PTR BT_FUNC: Get calling convention
|
|
bool | is_user_cc () const |
| is_user_cc(get_cc())
|
|
bool | is_vararg_cc () const |
| is_vararg_cc(get_cc())
|
|
bool | is_purging_cc () const |
| is_purging_cc(get_cc())
|
|
int | calc_purged_bytes () const |
| BT_FUNC: Calculate number of purged bytes
|
|
bool | is_high_func () const |
| BT_FUNC: Is high level type?
|
|
bool | get_methods (udtmembervec_t *methods) const |
| BT_COMPLEX: get a list of member functions declared in this udt. More...
|
|
bool | get_bit_buckets (range64vec_t *buckets) const |
| ::BT_STRUCT: get bit buckets Bit buckets are used to layout bitfields More...
|
|
int | find_udm (struct udm_t *udm, int strmem_flags) const |
| BTF_STRUCT,BTF_UNION: Find a udt member. More...
|
|
int | get_udt_nmembers () const |
| Get number of udt members. -1-error.
|
|
bool | is_empty_udt () const |
| Is an empty struct/union? (has no fields)
|
|
bool | is_small_udt () const |
| Is a small udt? (can fit a register or a pair of registers)
|
|
bool | requires_qualifier (qstring *out, const char *name, uint64 offset) const |
| Requires full qualifier? (name is not unique) More...
|
|
bool | append_covered (rangeset_t *out, uint64 offset=0) const |
| Calculate set of covered bytes for the type. More...
|
|
bool | calc_gaps (rangeset_t *out) const |
| Calculate set of padding bytes for the type. More...
|
|
bool | is_one_fpval () const |
| Floating value or an object consisting of one floating member entirely.
|
|
bool | is_sse_type () const |
| Is a SSE vector type?
|
|
bool | is_anonymous_udt () const |
| Is an anonymous struct/union? We assume that types with names are anonymous if the name starts with $.
|
|
bool | is_vftable () const |
| Is a vftable type?
|
|
bool | has_vftable () const |
| Has a vftable?
|
|
bool | has_union () const |
| Has a member of type "union"?
|
|
type_t | get_enum_base_type () const |
| Get enum base type (convert enum to integer type) Returns BT_UNK if failed to convert.
|
|
bool | is_bitmask_enum () const |
| Is bitmask enum? More...
|
|
int | get_enum_radix () const |
| Get enum constant radix. More...
|
|
tinfo_code_t | get_edm (edm_t *edm, size_t idx) const |
| Get enum member. More...
|
|
tinfo_code_t | find_edm (edm_t *edm, uint64 value, bmask64_t bmask=DEFMASK64, uchar serial=0) const |
| Find enum member. More...
|
|
tinfo_code_t | find_edm (edm_t *edm, const char *name) const |
| Find enum member. More...
|
|
tinfo_t | get_onemember_type () const |
| For objects consisting of one member entirely: return type of the member.
|
|
tinfo_t | get_innermost_udm (uint64 bitoffset, size_t *out_index=nullptr, uint64 *out_bitoffset=nullptr) const |
| Get the innermost member at the given offset. More...
|
|
uint32 | calc_score () const |
| Calculate the type score (the higher - the nicer is the type)
|
|
bool | print (qstring *out, const char *name=nullptr, int prtype_flags=PRTYPE_1LINE, int indent=0, int cmtindent=0, const char *prefix=nullptr, const char *cmt=nullptr) const |
| Get a C-like string representation of the type. More...
|
|
const char * | dstr () const |
| Function to facilitate debugging.
|
|
bool | get_attrs (type_attrs_t *tav, bool all_attrs=false) const |
| Get type attributes (all_attrs: include attributes of referenced types, if any)
|
|
bool | get_attr (const qstring &key, bytevec_t *bv, bool all_attrs=true) const |
| Get a type attribute.
|
|
bool | set_attrs (type_attrs_t *tav) |
| Set type attributes. More...
|
|
bool | set_attr (const type_attr_t &ta, bool may_overwrite=true) |
| Set a type attribute. If necessary, a new typid will be created.
|
|
void | del_attrs () |
| Del all type attributes. typerefs cannot be modified by this function.
|
|
bool | del_attr (const qstring &key, bool make_copy=true) |
| Del a type attribute. typerefs cannot be modified by this function.
|
|
bool | create_simple_type (type_t decl_type) |
|
bool | create_ptr (const ptr_type_data_t &p, type_t decl_type=BT_PTR) |
|
bool | create_array (const array_type_data_t &p, type_t decl_type=BT_ARRAY) |
|
bool | create_bitfield (const bitfield_type_data_t &p, type_t decl_type=BT_BITFIELD) |
|
bool | create_typedef (const typedef_type_data_t &p, type_t decl_type=BTF_TYPEDEF, bool try_ordinal=true) |
|
bool | parse (const char *decl, til_t *til=nullptr, int pt_flags=0) |
| Convenience function to parse a string with a type declaration. More...
|
|
bool | get_type_by_edm_name (const char *mname, til_t *til=nullptr) |
| Retrieve enum tinfo using enum member name. More...
|
|
tinfo_code_t | create_forward_decl (til_t *til, type_t decl_type, const char *name, int ntf_flags=0) |
| Create a forward declaration. More...
|
|
bool | convert_array_to_ptr () |
| Convert an array into a pointer. More...
|
|
bool | remove_ptr_or_array () |
| Replace the current type with the ptr obj or array element. More...
|
|
tinfo_code_t | set_type_alignment (uchar declalign, uint etf_flags=0) |
| Set type alignment.
|
|
bool | change_sign (type_sign_t sign) |
| Change the type sign. Works only for the types that may have sign.
|
|
bool | calc_udt_aligns (int sudt_flags=SUDT_GAPS) |
| Calculate the udt alignments using the field offsets/sizes and the total udt size This function does not work on typerefs.
|
|
bool | set_methods (udtmembervec_t &methods) |
| BT_COMPLEX: set the list of member functions. More...
|
|
tinfo_code_t | set_type_cmt (const char *cmt, bool is_regcmt=false, uint etf_flags=0) |
| Set type comment This function works only for non-trivial types.
|
|
uint32 | get_alias_target () const |
| Get type alias If the type has no alias, return 0. More...
|
|
bool | is_aliased () const |
|
bool | set_type_alias (uint32 dest_ord) |
| Set type alias Redirects all references to source type to the destination type. More...
|
|
tinfo_code_t | set_udt_alignment (int sda, uint etf_flags=0) |
| Set declared structure alignment (sda) This alignment supersedes the alignment returned by get_declalign() and is really used when calculating the struct layout. More...
|
|
tinfo_code_t | set_udt_pack (int pack, uint etf_flags=0) |
| Set structure packing. More...
|
|
tid_t | get_udm_tid (size_t idx) const |
| Get udt member TID. More...
|
|
tinfo_code_t | add_udm (const udm_t &udm, uint etf_flags=0, size_t times=1, ssize_t idx=-1) |
| Add a structure/union member. More...
|
|
tinfo_code_t | del_udm (size_t index, uint etf_flags=0) |
| Delete a structure/union member.
|
|
tinfo_code_t | del_udms (size_t idx1, size_t idx2, uint etf_flags=0) |
| Delete structure/union members in the range [idx1, idx2)
|
|
tinfo_code_t | rename_udm (size_t index, const char *name, uint etf_flags=0) |
| Rename a structure/union member. More...
|
|
tinfo_code_t | set_udm_type (size_t index, const tinfo_t &tif, uint etf_flags=0, const value_repr_t *repr=nullptr) |
| Set type of a structure/union member. More...
|
|
tinfo_code_t | set_udm_cmt (size_t index, const char *cmt, bool is_regcmt=false, uint etf_flags=0) |
| Set a comment for a structure/union member. More...
|
|
tinfo_code_t | set_udm_repr (size_t index, const value_repr_t &repr, uint etf_flags=0) |
| Set the representation of a structure/union member.
|
|
tinfo_code_t | expand_udt (size_t idx, adiff_t delta, uint etf_flags=0) |
| Expand/shtrink a structure by adding/removing a gap before the specified member. More...
|
|
tinfo_code_t | set_enum_width (int nbytes, uint etf_flags=0) |
| Set the width of enum base type. More...
|
|
tinfo_code_t | set_enum_sign (type_sign_t sign, uint etf_flags=0) |
| Set enum sign. More...
|
|
tinfo_code_t | set_enum_is_bitmask (bitmask_cvt_stance_t stance=ENUMBM_ON, uint etf_flags=0) |
|
tinfo_code_t | set_enum_repr (const value_repr_t &repr, uint etf_flags=0) |
| Set the representation of enum members. More...
|
|
tinfo_code_t | add_edm (const edm_t &edm, bmask64_t bmask=DEFMASK64, uint etf_flags=0, ssize_t idx=-1) |
| Add a new enum member (a new symbolic constant) More...
|
|
tinfo_code_t | del_edms (size_t idx1, size_t idx2, uint etf_flags=0) |
| Delete enum members. More...
|
|
tinfo_code_t | del_edm (size_t idx, uint etf_flags=0) |
|
tinfo_code_t | rename_edm (size_t idx, const char *name, uint etf_flags=0) |
| Rename a enum member. More...
|
|
tinfo_code_t | set_edm_cmt (size_t idx, const char *cmt, uint etf_flags=0) |
| Set a comment for an enum member. More...
|
|
tinfo_code_t | edit_edm (size_t idx, uint64 value, bmask64_t bmask=DEFMASK64, uint etf_flags=0) |
| Change constant value and/or bitmask. More...
|
|
tinfo_code_t | edit_udt (const std::function< tinfo_code_t(udt_type_data_t *)> &editor, uint etf_flags=0) |
| Edit udt/enum/func/array/ptr/bitfield. More...
|
|
tinfo_code_t | edit_enum (const std::function< tinfo_code_t(enum_type_data_t *)> &editor, uint etf_flags=0) |
|
tinfo_code_t | edit_func (const std::function< tinfo_code_t(func_type_data_t *)> &editor, uint etf_flags=0) |
|
tinfo_code_t | edit_array (const std::function< tinfo_code_t(array_type_data_t *)> &editor, uint etf_flags=0) |
|
tinfo_code_t | edit_ptr (const std::function< tinfo_code_t(ptr_type_data_t *)> &editor, uint etf_flags=0) |
|
tinfo_code_t | edit_bitfield (const std::function< tinfo_code_t(bitfield_type_data_t *)> &editor, uint etf_flags=0) |
|
bool | compare_with (const tinfo_t &r, int tcflags=0) const |
| Compare two types, based on given flags (see tinfo_t comparison flags)
|
|
bool | equals_to (const tinfo_t &r) const |
|
bool | is_castable_to (const tinfo_t &target) const |
|
bool | is_manually_castable_to (const tinfo_t &target) const |
|
|
bool | create_ptr (const tinfo_t &tif, uchar bps=0, type_t decl_type=BT_PTR) |
|
bool | create_array (const tinfo_t &tif, uint32 nelems=0, uint32 base=0, type_t decl_type=BT_ARRAY) |
|
void | create_typedef (const til_t *til, const char *name, type_t decl_type=BTF_TYPEDEF, bool try_ordinal=true) |
|
void | create_typedef (const til_t *til, uint ord, type_t decl_type=BTF_TYPEDEF) |
|
bool | create_bitfield (uchar nbytes, uchar width, bool is_unsigned=false, type_t decl_type=BT_BITFIELD) |
|
|
These functions consume 'p' (make it empty)
|
bool | create_udt (udt_type_data_t &p) |
|
bool | create_udt (udt_type_data_t &p, type_t decl_type) |
|
bool | create_enum (enum_type_data_t &p, type_t decl_type=BTF_ENUM) |
|
bool | create_func (func_type_data_t &p, type_t decl_type=BT_FUNC) |
|
|
ssize_t | get_udm_by_tid (udm_t *udm, tid_t tid) |
| Retrive tinfo using type TID or struct/enum member MID. More...
|
|
ssize_t | get_edm_by_tid (edm_t *edm, tid_t tid) |
|
bool | get_type_by_tid (tid_t tid) |
|
|
Store the type info in the type library as a named or numbered type.
The tinfo_t object will be replaced by a reference to the created type. Allowed bits for ntf_flags: NTF_NOBASE, NTF_REPLACE
|
tinfo_code_t | set_named_type (til_t *til, const char *name, int ntf_flags=0) |
|
tinfo_code_t | set_symbol_type (til_t *til, const char *name, int ntf_flags=0) |
|
tinfo_code_t | set_numbered_type (til_t *til, uint32 ord, int ntf_flags=0, const char *name=nullptr) |
|
tinfo_code_t | save_type (int ntf_flags=NTF_TYPE|NTF_REPLACE) |
|
tinfo_code_t | copy_type (til_t *til, const char *name, int ntf_flags=NTF_TYPE|NTF_COPY) |
|
|
Helper functions to store/extract bitfield values
|
uint64 | read_bitfield_value (uint64 v, int bitoff) const |
|
uint64 | write_bitfield_value (uint64 dst, uint64 v, int bitoff) const |
|
|
Work with type modifiers: const and volatile
|
type_t | get_modifiers () const |
|
void | set_modifiers (type_t mod) |
|
void | set_const () |
|
void | set_volatile () |
|
void | clr_decl_const_volatile () |
|
bool | clr_const () |
|
bool | clr_volatile () |
|
bool | clr_const_volatile () |
|