• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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[16]
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    int cs_op_index(csh handle, cs_insn *insn, unsigned int op_type,
69        unsigned int position)
70