1# By Dang Hoang Vu <danghvu@gmail.com>, 2014 2 3from libcpp cimport bool 4from libc.stdint cimport uint8_t, uint64_t, uint16_t 5 6cdef extern from "<capstone/capstone.h>": 7 8 ctypedef size_t csh 9 10 ctypedef enum cs_mode: 11 pass 12 13 ctypedef enum cs_arch: 14 pass 15 16 ctypedef struct cs_detail: 17 pass 18 19 ctypedef struct cs_insn: 20 unsigned int id 21 uint64_t address 22 uint16_t size 23 uint8_t bytes[24] 24 char mnemonic[32] 25 char op_str[160] 26 cs_detail *detail 27 28 ctypedef enum cs_err: 29 pass 30 31 ctypedef enum cs_opt_type: 32 pass 33 34 unsigned int cs_version(int *major, int *minor) 35 36 bool cs_support(int arch) 37 38 cs_err cs_open(cs_arch arch, cs_mode mode, csh *handle) 39 40 cs_err cs_close(csh *handle) 41 42 cs_err cs_errno(csh handle) 43 44 size_t cs_disasm(csh handle, 45 const uint8_t *code, size_t code_size, 46 uint64_t address, 47 size_t count, 48 cs_insn **insn) 49 50 cs_err cs_option(csh handle, cs_opt_type type, size_t value) 51 52 void cs_free(cs_insn *insn, size_t count) 53 54 const char *cs_reg_name(csh handle, unsigned int reg_id) 55 56 const char *cs_insn_name(csh handle, unsigned int insn_id) 57 58 const char *cs_group_name(csh handle, unsigned int group_id) 59 60 bool cs_insn_group(csh handle, cs_insn *insn, unsigned int group_id) 61 62 bool cs_reg_read(csh handle, cs_insn *insn, unsigned int reg_id) 63 64 bool cs_reg_write(csh handle, cs_insn *insn, unsigned int reg_id) 65 66 int cs_op_count(csh handle, cs_insn *insn, unsigned int op_type) 67 68 cs_err cs_regs_access(csh handle, cs_insn *insn, uint16_t *regs_read, uint8_t *read_count, uint16_t *regs_write, uint8_t *write_count) 69 70 int cs_op_index(csh handle, cs_insn *insn, unsigned int op_type, 71 unsigned int position) 72 73