aboutsummaryrefslogtreecommitdiffstats
path: root/capstone/arch/ARM/ARMMapping.h
diff options
context:
space:
mode:
Diffstat (limited to 'capstone/arch/ARM/ARMMapping.h')
-rw-r--r--capstone/arch/ARM/ARMMapping.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/capstone/arch/ARM/ARMMapping.h b/capstone/arch/ARM/ARMMapping.h
new file mode 100644
index 000000000..1f413d0ce
--- /dev/null
+++ b/capstone/arch/ARM/ARMMapping.h
@@ -0,0 +1,40 @@
+/* Capstone Disassembly Engine */
+/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2019 */
+
+#ifndef CS_ARM_MAP_H
+#define CS_ARM_MAP_H
+
+#include "../../include/capstone/capstone.h"
+#include "../../utils.h"
+
+// return name of regiser in friendly string
+const char *ARM_reg_name(csh handle, unsigned int reg);
+const char *ARM_reg_name2(csh handle, unsigned int reg);
+
+// given internal insn id, return public instruction ID
+void ARM_get_insn_id(cs_struct *h, cs_insn *insn, unsigned int id);
+
+const char *ARM_insn_name(csh handle, unsigned int id);
+
+const char *ARM_group_name(csh handle, unsigned int id);
+
+// check if this insn is relative branch
+bool ARM_rel_branch(cs_struct *h, unsigned int insn_id);
+
+bool ARM_blx_to_arm_mode(cs_struct *h, unsigned int insn_id);
+
+const uint8_t *ARM_get_op_access(cs_struct *h, unsigned int id);
+
+void ARM_reg_access(const cs_insn *insn,
+ cs_regs regs_read, uint8_t *regs_read_count,
+ cs_regs regs_write, uint8_t *regs_write_count);
+
+typedef struct BankedReg {
+ const char *Name;
+ arm_sysreg sysreg;
+ uint16_t Encoding;
+} BankedReg;
+
+const BankedReg *lookupBankedRegByEncoding(uint8_t encoding);
+
+#endif