1*9a0e4156SSadaf Ebrahimi /* Capstone Disassembly Engine */ 2*9a0e4156SSadaf Ebrahimi /* By Nguyen Anh Quynh <[email protected]>, 2013-2015 */ 3*9a0e4156SSadaf Ebrahimi 4*9a0e4156SSadaf Ebrahimi #ifdef CAPSTONE_HAS_POWERPC 5*9a0e4156SSadaf Ebrahimi 6*9a0e4156SSadaf Ebrahimi #include "../../utils.h" 7*9a0e4156SSadaf Ebrahimi #include "../../MCRegisterInfo.h" 8*9a0e4156SSadaf Ebrahimi #include "PPCDisassembler.h" 9*9a0e4156SSadaf Ebrahimi #include "PPCInstPrinter.h" 10*9a0e4156SSadaf Ebrahimi #include "PPCMapping.h" 11*9a0e4156SSadaf Ebrahimi #include "PPCModule.h" 12*9a0e4156SSadaf Ebrahimi PPC_global_init(cs_struct * ud)13*9a0e4156SSadaf Ebrahimics_err PPC_global_init(cs_struct *ud) 14*9a0e4156SSadaf Ebrahimi { 15*9a0e4156SSadaf Ebrahimi MCRegisterInfo *mri; 16*9a0e4156SSadaf Ebrahimi mri = (MCRegisterInfo *) cs_mem_malloc(sizeof(*mri)); 17*9a0e4156SSadaf Ebrahimi 18*9a0e4156SSadaf Ebrahimi PPC_init(mri); 19*9a0e4156SSadaf Ebrahimi ud->printer = PPC_printInst; 20*9a0e4156SSadaf Ebrahimi ud->printer_info = mri; 21*9a0e4156SSadaf Ebrahimi ud->getinsn_info = mri; 22*9a0e4156SSadaf Ebrahimi ud->disasm = PPC_getInstruction; 23*9a0e4156SSadaf Ebrahimi ud->post_printer = PPC_post_printer; 24*9a0e4156SSadaf Ebrahimi 25*9a0e4156SSadaf Ebrahimi ud->reg_name = PPC_reg_name; 26*9a0e4156SSadaf Ebrahimi ud->insn_id = PPC_get_insn_id; 27*9a0e4156SSadaf Ebrahimi ud->insn_name = PPC_insn_name; 28*9a0e4156SSadaf Ebrahimi ud->group_name = PPC_group_name; 29*9a0e4156SSadaf Ebrahimi 30*9a0e4156SSadaf Ebrahimi return CS_ERR_OK; 31*9a0e4156SSadaf Ebrahimi } 32*9a0e4156SSadaf Ebrahimi PPC_option(cs_struct * handle,cs_opt_type type,size_t value)33*9a0e4156SSadaf Ebrahimics_err PPC_option(cs_struct *handle, cs_opt_type type, size_t value) 34*9a0e4156SSadaf Ebrahimi { 35*9a0e4156SSadaf Ebrahimi if (type == CS_OPT_SYNTAX) 36*9a0e4156SSadaf Ebrahimi handle->syntax = (int) value; 37*9a0e4156SSadaf Ebrahimi 38*9a0e4156SSadaf Ebrahimi if (type == CS_OPT_MODE) { 39*9a0e4156SSadaf Ebrahimi handle->mode = (cs_mode)value; 40*9a0e4156SSadaf Ebrahimi } 41*9a0e4156SSadaf Ebrahimi 42*9a0e4156SSadaf Ebrahimi return CS_ERR_OK; 43*9a0e4156SSadaf Ebrahimi } 44*9a0e4156SSadaf Ebrahimi 45*9a0e4156SSadaf Ebrahimi #endif 46