/src/capstonenext/arch/Xtensa/XtensaModule.c
Line  | Count  | Source  | 
1  |  | /* Capstone Disassembly Engine */  | 
2  |  | /* By billow <billow.fun@gmail.com>, 2024 */  | 
3  |  |  | 
4  |  | #include "../../utils.h"  | 
5  |  | #include "../../MCRegisterInfo.h"  | 
6  |  | #include "XtensaInstPrinter.h"  | 
7  |  | #include "XtensaMapping.h"  | 
8  |  | #include "XtensaModule.h"  | 
9  |  |  | 
10  |  | cs_err Xtensa_global_init(cs_struct *ud)  | 
11  | 1.67k  | { | 
12  | 1.67k  |   MCRegisterInfo *mri;  | 
13  | 1.67k  |   mri = cs_mem_calloc(1, sizeof(*mri));  | 
14  |  |  | 
15  | 1.67k  |   Xtensa_init_mri(mri);  | 
16  | 1.67k  |   ud->printer = Xtensa_printer;  | 
17  | 1.67k  |   ud->printer_info = mri;  | 
18  | 1.67k  |   ud->getinsn_info = mri;  | 
19  | 1.67k  |   ud->disasm = Xtensa_disasm;  | 
20  | 1.67k  |   ud->reg_name = Xtensa_reg_name;  | 
21  | 1.67k  |   ud->insn_id = Xtensa_insn_id;  | 
22  | 1.67k  |   ud->insn_name = Xtensa_insn_name;  | 
23  | 1.67k  |   ud->group_name = Xtensa_group_name;  | 
24  | 1.67k  |   ud->post_printer = NULL;  | 
25  | 1.67k  | #ifndef CAPSTONE_DIET  | 
26  | 1.67k  |   ud->reg_access = Xtensa_reg_access;  | 
27  | 1.67k  | #endif  | 
28  |  |  | 
29  | 1.67k  |   return CS_ERR_OK;  | 
30  | 1.67k  | }  | 
31  |  |  | 
32  |  | cs_err Xtensa_option(cs_struct *handle, cs_opt_type type, size_t value)  | 
33  | 504  | { | 
34  | 504  |   if (type == CS_OPT_SYNTAX) { | 
35  | 504  |     handle->syntax |= (int)value;  | 
36  | 504  |   }  | 
37  |  |  | 
38  | 504  |   if (type == CS_OPT_MODE) { | 
39  | 0  |     handle->mode |= (cs_mode)value;  | 
40  | 0  |   }  | 
41  |  |  | 
42  | 504  |   if (type == CS_OPT_LITBASE) { | 
43  | 0  |     handle->LITBASE = (uint32_t)value;  | 
44  | 0  |   }  | 
45  |  |  | 
46  | 504  |   return CS_ERR_OK;  | 
47  | 504  | }  |