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_SYSZ 5*9a0e4156SSadaf Ebrahimi 6*9a0e4156SSadaf Ebrahimi #include "../../utils.h" 7*9a0e4156SSadaf Ebrahimi #include "../../MCRegisterInfo.h" 8*9a0e4156SSadaf Ebrahimi #include "SystemZDisassembler.h" 9*9a0e4156SSadaf Ebrahimi #include "SystemZInstPrinter.h" 10*9a0e4156SSadaf Ebrahimi #include "SystemZMapping.h" 11*9a0e4156SSadaf Ebrahimi #include "SystemZModule.h" 12*9a0e4156SSadaf Ebrahimi SystemZ_global_init(cs_struct * ud)13*9a0e4156SSadaf Ebrahimics_err SystemZ_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 SystemZ_init(mri); 19*9a0e4156SSadaf Ebrahimi ud->printer = SystemZ_printInst; 20*9a0e4156SSadaf Ebrahimi ud->printer_info = mri; 21*9a0e4156SSadaf Ebrahimi ud->getinsn_info = mri; 22*9a0e4156SSadaf Ebrahimi ud->disasm = SystemZ_getInstruction; 23*9a0e4156SSadaf Ebrahimi ud->post_printer = SystemZ_post_printer; 24*9a0e4156SSadaf Ebrahimi 25*9a0e4156SSadaf Ebrahimi ud->reg_name = SystemZ_reg_name; 26*9a0e4156SSadaf Ebrahimi ud->insn_id = SystemZ_get_insn_id; 27*9a0e4156SSadaf Ebrahimi ud->insn_name = SystemZ_insn_name; 28*9a0e4156SSadaf Ebrahimi ud->group_name = SystemZ_group_name; 29*9a0e4156SSadaf Ebrahimi 30*9a0e4156SSadaf Ebrahimi return CS_ERR_OK; 31*9a0e4156SSadaf Ebrahimi } 32*9a0e4156SSadaf Ebrahimi SystemZ_option(cs_struct * handle,cs_opt_type type,size_t value)33*9a0e4156SSadaf Ebrahimics_err SystemZ_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 // Do not set mode because only CS_MODE_BIG_ENDIAN is valid; we cannot 39*9a0e4156SSadaf Ebrahimi // test for CS_MODE_LITTLE_ENDIAN because it is 0 40*9a0e4156SSadaf Ebrahimi 41*9a0e4156SSadaf Ebrahimi return CS_ERR_OK; 42*9a0e4156SSadaf Ebrahimi } 43*9a0e4156SSadaf Ebrahimi 44*9a0e4156SSadaf Ebrahimi #endif 45