75 #define RZ_REG_COND_EQ 0
76 #define RZ_REG_COND_NE 1
77 #define RZ_REG_COND_CF 2
78 #define RZ_REG_COND_CARRY 2
79 #define RZ_REG_COND_NEG 3
80 #define RZ_REG_COND_NEGATIVE 3
81 #define RZ_REG_COND_OF 4
82 #define RZ_REG_COND_OVERFLOW 4
84 #define RZ_REG_COND_HI 5
85 #define RZ_REG_COND_HE 6
86 #define RZ_REG_COND_LO 7
87 #define RZ_REG_COND_LOE 8
89 #define RZ_REG_COND_GE 9
90 #define RZ_REG_COND_GT 10
91 #define RZ_REG_COND_LT 11
92 #define RZ_REG_COND_LE 12
93 #define RZ_REG_COND_LAST 13
RZ_API bool rz_reg_set_bytes(RzReg *reg, int type, const ut8 *buf, const int len)
RZ_API ut8 * rz_reg_arena_dup(RzReg *reg, const ut8 *source)
RZ_API bool rz_reg_read_regs(RzReg *reg, ut8 *buf, const int len)
RZ_API int rz_reg_fit_arena(RzReg *reg)
RZ_API ut8 * rz_reg_arena_peek(RzReg *reg)
RZ_API int rz_reg_arena_push(RzReg *reg)
RZ_API ut8 * rz_reg_get_bytes(RzReg *reg, int type, int *size)
RZ_API void rz_reg_arena_pop(RzReg *reg)
RZ_API void rz_reg_arena_shrink(RzReg *reg)
RZ_API void rz_reg_arena_zero(RzReg *reg, RzRegisterType type)
RZ_API void rz_reg_arena_swap(RzReg *reg, int copy)
RZ_API RzRegArena * rz_reg_arena_new(size_t size)
RZ_API void rz_reg_arena_poke(RzReg *reg, const ut8 *ret)
RZ_API void rz_reg_arena_free(RzRegArena *ra)
RZ_API int rz_reg_arena_set_bytes(RzReg *reg, const char *str)
RZ_API bool rz_reg_set_longdouble(RzReg *reg, RzRegItem *item, long double value)
RZ_API bool rz_reg_set_double(RzReg *reg, RzRegItem *item, double value)
RZ_API long double rz_reg_get_longdouble(RzReg *reg, RzRegItem *item)
RZ_API float rz_reg_get_float(RzReg *reg, RzRegItem *item)
RZ_API bool rz_reg_set_float(RzReg *reg, RzRegItem *item, float value)
RZ_API double rz_reg_get_double(RzReg *reg, RzRegItem *item)
RZ_API bool rz_reg_set_profile_string(RZ_NONNULL RzReg *reg, RZ_NONNULL const char *profile_str)
Parses a register profile string and sets up all registers accordingly in reg.
RZ_API bool rz_reg_set_reg_profile(RZ_BORROW RzReg *reg)
Fills reg->regset with the definitions and alias of the register profile.
RZ_API char * rz_reg_parse_gdb_profile(const char *profile_file)
RZ_API bool rz_reg_set_profile(RzReg *reg, const char *profile)
RZ_API char * rz_reg_profile_to_cc(RzReg *reg)
RZ_API bool rz_reg_cond_set(RzReg *r, const char *name, bool val)
RZ_API bool rz_reg_cond_bits_set(RzReg *r, int type, RzRegFlags *f, bool v)
RZ_API int rz_reg_cond_bits(RzReg *r, int type, RzRegFlags *f)
RZ_API void rz_reg_cond_apply(RzReg *r, RzRegFlags *f)
RZ_API int rz_reg_cond_from_string(const char *str)
RZ_API int rz_reg_cond_get_value(RzReg *r, const char *name)
RZ_API RzRegFlags * rz_reg_cond_retrieve(RzReg *r, RzRegFlags *f)
RZ_API RzRegItem * rz_reg_cond_get(RzReg *reg, const char *name)
RZ_API const char * rz_reg_cond_to_string(int n)
RZ_API int rz_reg_cond(RzReg *r, int type)
RZ_API void rz_reg_reindex(RzReg *reg)
RZ_API ut64 rz_reg_getv(RzReg *reg, const char *name)
RZ_API RzRegItem * rz_reg_get_at(RzReg *reg, int type, int regsize, int delta)
RZ_API RzRegItem * rz_reg_get(RzReg *reg, const char *name, int type)
RZ_API const char * rz_reg_64_to_32(RzReg *reg, const char *rreg64)
RZ_API const char * rz_reg_get_name_by_type(RzReg *reg, const char *alias_name)
RZ_API const char * rz_reg_get_name(RzReg *reg, int role)
RZ_API int rz_reg_get_name_idx(const char *type)
RZ_API RzRegItem * rz_reg_get_by_role(RzReg *reg, RzRegisterId role)
RZ_API bool rz_reg_is_readonly(RzReg *reg, RzRegItem *item)
RZ_API void rz_reg_free(RzReg *reg)
RZ_API int rz_reg_role_by_name(RZ_NONNULL const char *str)
Get the RzRegisterId with the given name or -1.
RZ_API RzRegItem * rz_reg_index_get(RzReg *reg, int idx)
RZ_API RzReg * rz_reg_new(void)
RZ_API ut64 rz_reg_setv(RzReg *reg, const char *name, ut64 val)
RZ_API RzRegItem * rz_reg_get_by_role_or_name(RzReg *reg, const char *name)
RZ_API RzRegSet * rz_reg_regset_get(RzReg *r, int type)
RZ_API int rz_reg_type_by_name(const char *str)
Returns the register type for the given type abbreviation.
RZ_API void rz_reg_free_internal(RzReg *reg, bool init)
RZ_API const char * rz_reg_get_type(int idx)
RZ_API void rz_reg_item_free(RzRegItem *item)
RZ_API const RzList * rz_reg_get_list(RzReg *reg, int type)
RZ_API RzRegItem * rz_reg_next_diff(RzReg *reg, int type, const ut8 *buf, int buflen, RzRegItem *prev_ri, int regsize)
RZ_API bool rz_reg_set_name(RZ_NONNULL RzReg *reg, RzRegisterId role, RZ_NONNULL const char *name)
RZ_API const char * rz_reg_get_role(int role)
RZ_API ut64 rz_reg_getv_by_role_or_name(RzReg *reg, const char *name)
RZ_API RZ_OWN RzList * rz_reg_filter_items_covered(RZ_BORROW RZ_NONNULL const RzList *regs)
Filter out all register items that are smaller than but covered entirely by some other register.
RZ_API const char * rz_reg_32_to_64(RzReg *reg, const char *rreg32)
RZ_API bool rz_reg_set_value_by_role(RzReg *reg, RzRegisterId role, ut64 val)
RZ_API bool rz_reg_set_bv(RZ_NONNULL RzReg *reg, RZ_NONNULL RzRegItem *item, RZ_NONNULL const RzBitVector *bv)
RZ_API ut64 rz_reg_get_value_big(RzReg *reg, RzRegItem *item, utX *val)
RZ_API ut64 rz_reg_set_bvalue(RzReg *reg, RzRegItem *item, const char *str)
RZ_API int rz_reg_set_pack(RzReg *reg, RzRegItem *item, int packidx, int packbits, ut64 val)
RZ_API ut64 rz_reg_get_pack(RzReg *reg, RzRegItem *item, int packidx, int packbits)
RZ_API RzBitVector * rz_reg_get_bv(RZ_NONNULL RzReg *reg, RZ_NONNULL RzRegItem *item)
RZ_API ut64 rz_reg_get_value_by_role(RzReg *reg, RzRegisterId role)
RZ_API RZ_HEAP char * rz_reg_get_bvalue(RzReg *reg, RzRegItem *item)
RZ_API bool rz_reg_set_value(RzReg *reg, RzRegItem *item, ut64 value)
RZ_API ut64 rz_reg_get_value(RzReg *reg, RzRegItem *item)
struct rz_reg_item_t RzRegItem
struct rz_reg_flags_t RzRegFlags
RZ_LIB_VERSION_HEADER(rz_reg)
struct rz_reg_arena_t RzRegArena
struct rz_reg_set_t RzRegSet
RzRegisterId role
Register role (PC, Argument etc.)
char * reg_name
Real register name of alias.
char * alias
Alias of register.
ut32 size
Register size in bits.
char * comment
Comment about register.
char * name
Register name.
RzRegisterType arena_type
The arena the register belongs to (e.g. flags belong to gpr; xmm into fpu).
char * flags
String describing the flags of the register.
RzRegisterType type
Reg type.
ut32 packed
Packet size of register in tes.
ut32 offset
Offset into profile in bits.
RzRegisterType type
Register type.
int size
in bits> 8,16,32,64 ... 128/256
int index
Index in register profile.
int arena
In which arena is this reg living. Usually equals type.
int packed_size
0 means no packed register, 1byte pack, 2b pack...
int offset
Offset into register profile in bits.
bool is_float
Flag for float registers.
char * comment
Comment to register.
ut32 maskregstype
which type of regs has this register set (logic mask with 1 << RZ_REG_TYPE_XXX)
HtPP * ht_regs
name:RzRegItem
RzRegSet regset[RZ_REG_TYPE_LAST]
ut64(WINAPI *w32_GetEnabledXStateFeatures)()