IDAPython 8.4
Loading...
Searching...
No Matches
ida_enum Namespace Reference

Detailed Description

Assembly level enum management.

Enums and bitfields are represented as enum_t.

Classes

class  enum_member_visitor_t
 Proxy of C++ enum_member_visitor_t class. More...
 

Functions

"size_t" get_enum_qty (*args)
 get_enum_qty() -> size_t Get number of declared enum_t types.
 
"enum_t" getn_enum (*args)
 getn_enum(idx) -> enum_t Get enum by its index in the list of enums (0..get_enum_qty()-1).
 
"uval_t" get_enum_idx (*args)
 get_enum_idx(id) -> uval_t Get the index in the list of enums.
 
"enum_t" get_enum (*args)
 get_enum(name) -> enum_t Get enum by name.
 
"bool" is_bf (*args)
 is_bf(id) -> bool Is enum a bitfield? (otherwise - plain enum, no bitmasks except for DEFMASK are allowed)
 
"bool" is_enum_hidden (*args)
 is_enum_hidden(id) -> bool Is enum collapsed?
 
"bool" set_enum_hidden (*args)
 set_enum_hidden(id, hidden) -> bool Collapse enum.
 
"bool" is_enum_fromtil (*args)
 is_enum_fromtil(id) -> bool Does enum come from type library?
 
"bool" set_enum_fromtil (*args)
 set_enum_fromtil(id, fromtil) -> bool Specify that enum comes from a type library.
 
"bool" is_ghost_enum (*args)
 is_ghost_enum(id) -> bool Is a ghost copy of a local type?
 
"bool" set_enum_ghost (*args)
 set_enum_ghost(id, ghost) -> bool Specify that enum is a ghost copy of a local type.
 
"qstring *" get_enum_name (*args)
 get_enum_name(id) -> str
 
"qstring *" get_enum_name2 (*args)
 get_enum_name2(id, flags=0) -> str Get name of enum
 
"size_t" get_enum_width (*args)
 get_enum_width(id) -> size_t Get the width of a enum element allowed values: 0 (unspecified),1,2,4,8,16,32,64
 
"bool" set_enum_width (*args)
 set_enum_width(id, width) -> bool See comment for get_enum_width()
 
"qstring *" get_enum_cmt (*args)
 get_enum_cmt(id, repeatable) -> str Get enum comment.
 
"size_t" get_enum_size (*args)
 get_enum_size(id) -> size_t Get the number of the members of the enum.
 
"flags64_t" get_enum_flag (*args)
 get_enum_flag(id) -> flags64_t Get flags determining the representation of the enum.
 
"const_t" get_enum_member_by_name (*args)
 get_enum_member_by_name(name) -> const_t Get a reference to an enum member by its name.
 
"uval_t" get_enum_member_value (*args)
 get_enum_member_value(id) -> uval_t Get value of an enum member.
 
"enum_t" get_enum_member_enum (*args)
 get_enum_member_enum(id) -> enum_t Get the parent enum of an enum member.
 
"bmask_t" get_enum_member_bmask (*args)
 get_enum_member_bmask(id) -> bmask_t Get bitmask of an enum member.
 
"const_t" get_enum_member (*args)
 get_enum_member(id, value, serial, mask) -> const_t Find an enum member by enum, value and bitmask
 
"bmask_t" get_first_bmask (*args)
 get_first_bmask(enum_id) -> bmask_t Get first bitmask in the enum (bitfield)
 
"bmask_t" get_last_bmask (*args)
 get_last_bmask(enum_id) -> bmask_t Get last bitmask in the enum (bitfield)
 
"bmask_t" get_next_bmask (*args)
 get_next_bmask(enum_id, bmask) -> bmask_t Get next bitmask in the enum (bitfield)
 
"bmask_t" get_prev_bmask (*args)
 get_prev_bmask(enum_id, bmask) -> bmask_t Get prev bitmask in the enum (bitfield)
 
"uval_t" get_first_enum_member (*args)
 get_first_enum_member(id, bmask=(bmask_t(-1))) -> uval_t
 
"uval_t" get_last_enum_member (*args)
 get_last_enum_member(id, bmask=(bmask_t(-1))) -> uval_t
 
"uval_t" get_next_enum_member (*args)
 get_next_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t
 
"uval_t" get_prev_enum_member (*args)
 get_prev_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t
 
"qstring *" get_enum_member_name (*args)
 get_enum_member_name(id) -> str Get name of an enum member by const_t.
 
"qstring *" get_enum_member_cmt (*args)
 get_enum_member_cmt(id, repeatable) -> str Get enum member's comment.
 
"uchar *" get_first_serial_enum_member (*args)
 get_first_serial_enum_member(id, value, bmask) -> const_t
 
"uchar *" get_last_serial_enum_member (*args)
 get_last_serial_enum_member(id, value, bmask) -> const_t
 
"uchar *" get_next_serial_enum_member (*args)
 get_next_serial_enum_member(in_out_serial, first_cid) -> const_t
 
"uchar *" get_prev_serial_enum_member (*args)
 get_prev_serial_enum_member(in_out_serial, first_cid) -> const_t
 
"int" for_all_enum_members (*args)
 for_all_enum_members(id, cv) -> int Visit all members of a given enum.
 
"uchar" get_enum_member_serial (*args)
 get_enum_member_serial(cid) -> uchar Get serial number of an enum member.
 
"int32" get_enum_type_ordinal (*args)
 get_enum_type_ordinal(id) -> int32 Get corresponding type ordinal number.
 
"void" set_enum_type_ordinal (*args)
 set_enum_type_ordinal(id, ord) Set corresponding type ordinal number.
 
"enum_t" add_enum (*args)
 add_enum(idx, name, flag) -> enum_t Add new enum type.
 
"void" del_enum (*args)
 del_enum(id) Delete an enum type.
 
"bool" set_enum_idx (*args)
 set_enum_idx(id, idx) -> bool Set serial number of enum.
 
"bool" set_enum_bf (*args)
 set_enum_bf(id, bf) -> bool Set 'bitfield' bit of enum (i.e.
 
"bool" set_enum_name (*args)
 set_enum_name(id, name) -> bool Set name of enum type.
 
"bool" set_enum_cmt (*args)
 set_enum_cmt(id, cmt, repeatable) -> bool Set comment for enum type.
 
"bool" set_enum_flag (*args)
 set_enum_flag(id, flag) -> bool Set data representation flags.
 
"int" add_enum_member (*args)
 add_enum_member(id, name, value, bmask=(bmask_t(-1))) -> int Add member to enum type.
 
"bool" del_enum_member (*args)
 del_enum_member(id, value, serial, bmask) -> bool Delete member of enum type.
 
"bool" set_enum_member_name (*args)
 set_enum_member_name(id, name) -> bool Set name of enum member.
 
"bool" set_enum_member_cmt (*args)
 set_enum_member_cmt(id, cmt, repeatable) -> bool Set comment for enum member.
 
"bool" is_one_bit_mask (*args)
 is_one_bit_mask(mask) -> bool Is bitmask one bit?
 
"bool" set_bmask_name (*args)
 set_bmask_name(id, bmask, name) -> bool
 
"qstring *" get_bmask_name (*args)
 get_bmask_name(id, bmask) -> str
 
"bool" set_bmask_cmt (*args)
 set_bmask_cmt(id, bmask, cmt, repeatable) -> bool
 
"qstring *" get_bmask_cmt (*args)
 get_bmask_cmt(id, bmask, repeatable) -> str
 

Variables

 DEFMASK = _ida_enum.DEFMASK
 
 ENFL_REGEX = _ida_enum.ENFL_REGEX
 
 cvar = _ida_enum.cvar
 
 MAX_ENUM_SERIAL = cvar.MAX_ENUM_SERIAL
 
 ENUM_MEMBER_ERROR_NAME = _ida_enum.ENUM_MEMBER_ERROR_NAME
 
 ENUM_MEMBER_ERROR_VALUE = _ida_enum.ENUM_MEMBER_ERROR_VALUE
 
 ENUM_MEMBER_ERROR_ENUM = _ida_enum.ENUM_MEMBER_ERROR_ENUM
 
 ENUM_MEMBER_ERROR_MASK = _ida_enum.ENUM_MEMBER_ERROR_MASK
 
 ENUM_MEMBER_ERROR_ILLV = _ida_enum.ENUM_MEMBER_ERROR_ILLV
 

Function Documentation

◆ add_enum()

"enum_t" add_enum ( * args)
  • if idx==BADADDR then add as the last idx
  • if name==nullptr then generate a unique name "enum_%d"
Parameters
idx(C++: size_t)
name(C++: const char *) char const *
flag(C++: flags64_t)

◆ add_enum_member()

"int" add_enum_member ( * args)
Parameters
id(C++: enum_t)
name(C++: const char *) char const *
value(C++: uval_t)
bmask(C++: bmask_t)
Returns
: 0 if ok, otherwise one of Add enum member result codes

◆ del_enum()

"void" del_enum ( * args)
Parameters
id(C++: enum_t)

◆ del_enum_member()

"bool" del_enum_member ( * args)
Parameters
id(C++: enum_t)
value(C++: uval_t)
serial(C++: uchar)
bmask(C++: bmask_t)

◆ for_all_enum_members()

"int" for_all_enum_members ( * args)
Parameters
id(C++: enum_t)
cv(C++: enum_member_visitor_t &)

◆ get_bmask_cmt()

"qstring *" get_bmask_cmt ( * args)
Parameters
idenum_t
bmaskbmask_t
repeatablebool

◆ get_bmask_name()

"qstring *" get_bmask_name ( * args)
Parameters
idenum_t
bmaskbmask_t

◆ get_enum()

"enum_t" get_enum ( * args)
Parameters
name(C++: const char *) char const *

◆ get_enum_cmt()

"qstring *" get_enum_cmt ( * args)
Parameters
id(C++: enum_t)
repeatable(C++: bool)

◆ get_enum_flag()

"flags64_t" get_enum_flag ( * args)

(currently they define the numeric base: octal, decimal, hex, bin) and signness.

Parameters
id(C++: enum_t)

◆ get_enum_idx()

"uval_t" get_enum_idx ( * args)
Parameters
id(C++: enum_t)

◆ get_enum_member()

"const_t" get_enum_member ( * args)
Note
: if serial -1, return a member with any serial
Parameters
id(C++: enum_t)
value(C++: uval_t)
serial(C++: int)
mask(C++: bmask_t)

◆ get_enum_member_bmask()

"bmask_t" get_enum_member_bmask ( * args)
Parameters
id(C++: const_t)

◆ get_enum_member_by_name()

"const_t" get_enum_member_by_name ( * args)
Parameters
name(C++: const char *) char const *

◆ get_enum_member_cmt()

"qstring *" get_enum_member_cmt ( * args)
Parameters
id(C++: const_t)
repeatable(C++: bool)

◆ get_enum_member_enum()

"enum_t" get_enum_member_enum ( * args)
Parameters
id(C++: const_t)

◆ get_enum_member_name()

"qstring *" get_enum_member_name ( * args)
Parameters
id(C++: const_t)

◆ get_enum_member_serial()

"uchar" get_enum_member_serial ( * args)
Parameters
cid(C++: const_t)

◆ get_enum_member_value()

"uval_t" get_enum_member_value ( * args)
Parameters
id(C++: const_t)

◆ get_enum_name()

"qstring *" get_enum_name ( * args)
Parameters
idenum_t

◆ get_enum_name2()

"qstring *" get_enum_name2 ( * args)
Parameters
id(C++: enum_t) enum id
flags(C++: int) Enum name flags

◆ get_enum_qty()

"size_t" get_enum_qty ( * args)

◆ get_enum_size()

"size_t" get_enum_size ( * args)
Parameters
id(C++: enum_t)

◆ get_enum_type_ordinal()

"int32" get_enum_type_ordinal ( * args)
Parameters
id(C++: enum_t)

◆ get_enum_width()

"size_t" get_enum_width ( * args)
Parameters
id(C++: enum_t)

◆ get_first_bmask()

"bmask_t" get_first_bmask ( * args)
Parameters
enum_id(C++: enum_t) id of enum (bitfield)
Returns
: the smallest bitmask for enum, or DEFMASK

◆ get_first_enum_member()

"uval_t" get_first_enum_member ( * args)
Parameters
idenum_t
bmaskbmask_t

◆ get_first_serial_enum_member()

"uchar *" get_first_serial_enum_member ( * args)
Parameters
idenum_t
valueuval_t
bmaskbmask_t

◆ get_last_bmask()

"bmask_t" get_last_bmask ( * args)
Parameters
enum_id(C++: enum_t) id of enum
Returns
: the biggest bitmask for enum, or DEFMASK

◆ get_last_enum_member()

"uval_t" get_last_enum_member ( * args)
Parameters
idenum_t
bmaskbmask_t

◆ get_last_serial_enum_member()

"uchar *" get_last_serial_enum_member ( * args)
Parameters
idenum_t
valueuval_t
bmaskbmask_t

◆ get_next_bmask()

"bmask_t" get_next_bmask ( * args)
Parameters
enum_id(C++: enum_t) id of enum
bmask(C++: bmask_t) the current bitmask
Returns
: value of a bitmask with value higher than the specified value, or DEFMASK

◆ get_next_enum_member()

"uval_t" get_next_enum_member ( * args)
Parameters
idenum_t
valueuval_t
bmaskbmask_t

◆ get_next_serial_enum_member()

"uchar *" get_next_serial_enum_member ( * args)
Parameters
in_out_serialuchar *
first_cidconst_t

◆ get_prev_bmask()

"bmask_t" get_prev_bmask ( * args)
Parameters
enum_id(C++: enum_t) id of enum
bmask(C++: bmask_t) the current bitmask
Returns
: value of a bitmask with value lower than the specified value, or DEFMASK

◆ get_prev_enum_member()

"uval_t" get_prev_enum_member ( * args)
Parameters
idenum_t
valueuval_t
bmaskbmask_t

◆ get_prev_serial_enum_member()

"uchar *" get_prev_serial_enum_member ( * args)
Parameters
in_out_serialuchar *
first_cidconst_t

◆ getn_enum()

"enum_t" getn_enum ( * args)
Parameters
idx(C++: size_t)

◆ is_bf()

"bool" is_bf ( * args)
Parameters
id(C++: enum_t)

◆ is_enum_fromtil()

"bool" is_enum_fromtil ( * args)
Parameters
id(C++: enum_t)

◆ is_enum_hidden()

"bool" is_enum_hidden ( * args)
Parameters
id(C++: enum_t)

◆ is_ghost_enum()

"bool" is_ghost_enum ( * args)
Parameters
id(C++: enum_t)

◆ is_one_bit_mask()

"bool" is_one_bit_mask ( * args)
Parameters
mask(C++: bmask_t)

◆ set_bmask_cmt()

"bool" set_bmask_cmt ( * args)
Parameters
idenum_t
bmaskbmask_t
cmtchar const *
repeatablebool

◆ set_bmask_name()

"bool" set_bmask_name ( * args)
Parameters
idenum_t
bmaskbmask_t
namechar const *

◆ set_enum_bf()

"bool" set_enum_bf ( * args)

convert it to a bitfield)

Parameters
id(C++: enum_t)
bf(C++: bool)

◆ set_enum_cmt()

"bool" set_enum_cmt ( * args)
Parameters
id(C++: enum_t)
cmt(C++: const char *) char const *
repeatable(C++: bool)

◆ set_enum_flag()

"bool" set_enum_flag ( * args)
Parameters
id(C++: enum_t)
flag(C++: flags64_t)

◆ set_enum_fromtil()

"bool" set_enum_fromtil ( * args)
Parameters
id(C++: enum_t)
fromtil(C++: bool)

◆ set_enum_ghost()

"bool" set_enum_ghost ( * args)
Parameters
id(C++: enum_t)
ghost(C++: bool)

◆ set_enum_hidden()

"bool" set_enum_hidden ( * args)
Parameters
id(C++: enum_t)
hidden(C++: bool)

◆ set_enum_idx()

"bool" set_enum_idx ( * args)

Also see get_enum_idx().

Parameters
id(C++: enum_t)
idx(C++: size_t)

◆ set_enum_member_cmt()

"bool" set_enum_member_cmt ( * args)
Parameters
id(C++: const_t)
cmt(C++: const char *) char const *
repeatable(C++: bool)

◆ set_enum_member_name()

"bool" set_enum_member_name ( * args)
Parameters
id(C++: const_t)
name(C++: const char *) char const *

◆ set_enum_name()

"bool" set_enum_name ( * args)
Parameters
id(C++: enum_t)
name(C++: const char *) char const *

◆ set_enum_type_ordinal()

"void" set_enum_type_ordinal ( * args)
Parameters
id(C++: enum_t)
ord(C++: int32)

◆ set_enum_width()

"bool" set_enum_width ( * args)
Parameters
id(C++: enum_t)
width(C++: int)

Variable Documentation

◆ cvar

cvar = _ida_enum.cvar

◆ DEFMASK

DEFMASK = _ida_enum.DEFMASK

◆ ENFL_REGEX

ENFL_REGEX = _ida_enum.ENFL_REGEX

◆ ENUM_MEMBER_ERROR_ENUM

ENUM_MEMBER_ERROR_ENUM = _ida_enum.ENUM_MEMBER_ERROR_ENUM

◆ ENUM_MEMBER_ERROR_ILLV

ENUM_MEMBER_ERROR_ILLV = _ida_enum.ENUM_MEMBER_ERROR_ILLV

◆ ENUM_MEMBER_ERROR_MASK

ENUM_MEMBER_ERROR_MASK = _ida_enum.ENUM_MEMBER_ERROR_MASK

◆ ENUM_MEMBER_ERROR_NAME

ENUM_MEMBER_ERROR_NAME = _ida_enum.ENUM_MEMBER_ERROR_NAME

◆ ENUM_MEMBER_ERROR_VALUE

ENUM_MEMBER_ERROR_VALUE = _ida_enum.ENUM_MEMBER_ERROR_VALUE

◆ MAX_ENUM_SERIAL

MAX_ENUM_SERIAL = cvar.MAX_ENUM_SERIAL