1*9a0e4156SSadaf Ebrahimi /* Capstone Disassembly Engine */ 2*9a0e4156SSadaf Ebrahimi /* By Dang Hoang Vu <[email protected]> 2013 */ 3*9a0e4156SSadaf Ebrahimi 4*9a0e4156SSadaf Ebrahimi #ifdef CAPSTONE_HAS_ARM64 5*9a0e4156SSadaf Ebrahimi 6*9a0e4156SSadaf Ebrahimi #include "../../utils.h" 7*9a0e4156SSadaf Ebrahimi #include "../../MCRegisterInfo.h" 8*9a0e4156SSadaf Ebrahimi #include "AArch64Disassembler.h" 9*9a0e4156SSadaf Ebrahimi #include "AArch64InstPrinter.h" 10*9a0e4156SSadaf Ebrahimi #include "AArch64Mapping.h" 11*9a0e4156SSadaf Ebrahimi #include "AArch64Module.h" 12*9a0e4156SSadaf Ebrahimi AArch64_global_init(cs_struct * ud)13*9a0e4156SSadaf Ebrahimics_err AArch64_global_init(cs_struct *ud) 14*9a0e4156SSadaf Ebrahimi { 15*9a0e4156SSadaf Ebrahimi MCRegisterInfo *mri; 16*9a0e4156SSadaf Ebrahimi mri = cs_mem_malloc(sizeof(*mri)); 17*9a0e4156SSadaf Ebrahimi 18*9a0e4156SSadaf Ebrahimi AArch64_init(mri); 19*9a0e4156SSadaf Ebrahimi ud->printer = AArch64_printInst; 20*9a0e4156SSadaf Ebrahimi ud->printer_info = mri; 21*9a0e4156SSadaf Ebrahimi ud->getinsn_info = mri; 22*9a0e4156SSadaf Ebrahimi ud->disasm = AArch64_getInstruction; 23*9a0e4156SSadaf Ebrahimi ud->reg_name = AArch64_reg_name; 24*9a0e4156SSadaf Ebrahimi ud->insn_id = AArch64_get_insn_id; 25*9a0e4156SSadaf Ebrahimi ud->insn_name = AArch64_insn_name; 26*9a0e4156SSadaf Ebrahimi ud->group_name = AArch64_group_name; 27*9a0e4156SSadaf Ebrahimi ud->post_printer = AArch64_post_printer; 28*9a0e4156SSadaf Ebrahimi #ifndef CAPSTONE_DIET 29*9a0e4156SSadaf Ebrahimi ud->reg_access = AArch64_reg_access; 30*9a0e4156SSadaf Ebrahimi #endif 31*9a0e4156SSadaf Ebrahimi 32*9a0e4156SSadaf Ebrahimi return CS_ERR_OK; 33*9a0e4156SSadaf Ebrahimi } 34*9a0e4156SSadaf Ebrahimi AArch64_option(cs_struct * handle,cs_opt_type type,size_t value)35*9a0e4156SSadaf Ebrahimics_err AArch64_option(cs_struct *handle, cs_opt_type type, size_t value) 36*9a0e4156SSadaf Ebrahimi { 37*9a0e4156SSadaf Ebrahimi if (type == CS_OPT_MODE) { 38*9a0e4156SSadaf Ebrahimi handle->mode = (cs_mode)value; 39*9a0e4156SSadaf Ebrahimi } 40*9a0e4156SSadaf Ebrahimi 41*9a0e4156SSadaf Ebrahimi return CS_ERR_OK; 42*9a0e4156SSadaf Ebrahimi } 43*9a0e4156SSadaf Ebrahimi 44*9a0e4156SSadaf Ebrahimi #endif 45