1*9a0e4156SSadaf Ebrahimi /* Capstone Disassembly Engine */ 2*9a0e4156SSadaf Ebrahimi /* By Nguyen Anh Quynh <[email protected]>, 2013-2015 */ 3*9a0e4156SSadaf Ebrahimi 4*9a0e4156SSadaf Ebrahimi #ifndef CS_ARM_MAP_H 5*9a0e4156SSadaf Ebrahimi #define CS_ARM_MAP_H 6*9a0e4156SSadaf Ebrahimi 7*9a0e4156SSadaf Ebrahimi #include "../../include/capstone/capstone.h" 8*9a0e4156SSadaf Ebrahimi #include "../../utils.h" 9*9a0e4156SSadaf Ebrahimi 10*9a0e4156SSadaf Ebrahimi // return name of regiser in friendly string 11*9a0e4156SSadaf Ebrahimi const char *ARM_reg_name(csh handle, unsigned int reg); 12*9a0e4156SSadaf Ebrahimi const char *ARM_reg_name2(csh handle, unsigned int reg); 13*9a0e4156SSadaf Ebrahimi 14*9a0e4156SSadaf Ebrahimi // given internal insn id, return public instruction ID 15*9a0e4156SSadaf Ebrahimi void ARM_get_insn_id(cs_struct *h, cs_insn *insn, unsigned int id); 16*9a0e4156SSadaf Ebrahimi 17*9a0e4156SSadaf Ebrahimi const char *ARM_insn_name(csh handle, unsigned int id); 18*9a0e4156SSadaf Ebrahimi 19*9a0e4156SSadaf Ebrahimi const char *ARM_group_name(csh handle, unsigned int id); 20*9a0e4156SSadaf Ebrahimi 21*9a0e4156SSadaf Ebrahimi // check if this insn is relative branch 22*9a0e4156SSadaf Ebrahimi bool ARM_rel_branch(cs_struct *h, unsigned int insn_id); 23*9a0e4156SSadaf Ebrahimi 24*9a0e4156SSadaf Ebrahimi bool ARM_blx_to_arm_mode(cs_struct *h, unsigned int insn_id); 25*9a0e4156SSadaf Ebrahimi 26*9a0e4156SSadaf Ebrahimi uint8_t *ARM_get_op_access(cs_struct *h, unsigned int id); 27*9a0e4156SSadaf Ebrahimi 28*9a0e4156SSadaf Ebrahimi void ARM_reg_access(const cs_insn *insn, 29*9a0e4156SSadaf Ebrahimi cs_regs regs_read, uint8_t *regs_read_count, 30*9a0e4156SSadaf Ebrahimi cs_regs regs_write, uint8_t *regs_write_count); 31*9a0e4156SSadaf Ebrahimi 32*9a0e4156SSadaf Ebrahimi #endif 33