Local types information and manipulation helpers

// Enum type information
class enum_type_data_t
{
  // tattr_enum, see TAENUM_... flags
  attribute taenum_bits;

  // enum member sizes (shift amount) and style, see BTE_... constants
  attribute bte;

  // number of enum members
  attribute member_cnt;

  // add enum constant
  success add_constant(string name, string name, uint64 value, string comment=nullptr);
};

// Get named local type TID // name - type name // returns: TID or BADADDR long get_named_type_tid(string name);

// Get numbered local type TID // ord - type ordinal // returns: TID or BADADDR long get_numbered_type_tid(long ord);

// create type enum // enum_name - type name // ei - enum type data of type enum_type_data_t // enum_width - the width of a enum element, allowed values: 0 (unspecified),1,2,4,8 // sign - enum signess (any from TYPE_SIGN_... constants) // convert_to_bitmask - try convert enum to bitmask enum (0-false or 1-true) // enum_cmt - enum type comment // returns: enum TID long create_enum_type( string enum_name, object ei, long enum_width, long sign, long convert_to_bitmask, string enum_cmt=nullptr); // type signedness #define TYPE_SIGN_NO_SIGN 0 // no sign, or unknown #define TYPE_SIGN_TYPE_SIGNED 1 // signed type #define TYPE_SIGN_TYPE_UNSIGNED 2 // unsigned type

Last updated