Rizin
unix-like reverse engineering framework and cli tools
hexagon_arch.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: 2021 Rot127 <unisono@quyllur.org>
2 // SPDX-License-Identifier: LGPL-3.0-only
3 
4 // LLVM commit: 96e220e6886868d6663d966ecc396befffc355e7
5 // LLVM commit date: 2022-01-05 11:01:52 +0000 (ISO 8601 format)
6 // Date of code generation: 2022-01-24 07:53:55-05:00
7 //========================================
8 // The following code is generated.
9 // Do not edit. Repository of code generator:
10 // https://github.com/rizinorg/rz-hexagon
11 #ifndef HEXAGON_ARCH_H
12 #define HEXAGON_ARCH_H
13 
14 #include "hexagon.h"
15 
16 // The packet position indicators added to the instruction mnemonic.
17 typedef enum {
26 
27 // The type of opcode reversing which is be done on the opcode.
28 typedef enum {
32 
37 typedef struct {
38  HexReverseAction action; // Whether ana_op, asm_op or both should be filled.
42 
43 #define HEX_PKT_UNK "? "
44 #define HEX_PKT_SINGLE "[ "
45 #define HEX_PKT_SINGLE_UTF8 "[ "
46 #define HEX_PKT_FIRST_UTF8 "┌ "
47 #define HEX_PKT_MID_UTF8 "│ "
48 #define HEX_PKT_LAST_UTF8 "└ "
49 #define HEX_PKT_FIRST_SDK "{ "
50 #define HEX_PKT_SDK_PADDING " "
51 #define HEX_PKT_LAST_SDK " }"
52 #define HEX_PKT_FIRST "/ "
53 #define HEX_PKT_MID "| "
54 #define HEX_PKT_LAST "\\ "
55 #define HEX_PKT_ELOOP_01_UTF8 " ∎ endloop01"
56 #define HEX_PKT_ELOOP_1_UTF8 " ∎ endloop1"
57 #define HEX_PKT_ELOOP_0_UTF8 " ∎ endloop0"
58 #define HEX_PKT_ELOOP_01 " < endloop01"
59 #define HEX_PKT_ELOOP_1 " < endloop1"
60 #define HEX_PKT_ELOOP_0 " < endloop0"
61 #define HEX_PKT_ELOOP_01_SDK ":endloop01"
62 #define HEX_PKT_ELOOP_1_SDK ":endloop1"
63 #define HEX_PKT_ELOOP_0_SDK ":endloop0"
64 
68 RZ_API void hexagon_reverse_opcode(const RzAsm *rz_asm, HexReversedOpcode *rz_reverse, const ut8 *buf, const ut64 addr);
71 #endif
lzma_index ** i
Definition: index.h:629
#define RZ_API
uint32_t ut32
HexLoopAttr
Definition: hexagon.h:71
RZ_API HexLoopAttr hex_get_loop_flag(const HexPkt *p)
Returns the loop type of a packet. Though only if this packet is the last packet in last packet in a ...
Definition: hexagon_arch.c:446
RZ_API void hexagon_reverse_opcode(const RzAsm *rz_asm, HexReversedOpcode *rz_reverse, const ut8 *buf, const ut64 addr)
Reverses a given opcode and copies the result into one of the rizin structs in rz_reverse.
Definition: hexagon_arch.c:772
RZ_API void hex_insn_free(HexInsn *i)
RZ_API ut8 hexagon_get_pkt_index_of_addr(const ut32 addr, const HexPkt *p)
Returns the index of an addr in a given packet.
Definition: hexagon_arch.c:103
RZ_API HexState * hexagon_get_state()
Initializes each packet of the state once.
Definition: hexagon_arch.c:217
HexPktSyntaxIndicator
Definition: hexagon_arch.h:17
@ FIRST_IN_PKT
Definition: hexagon_arch.h:19
@ ELOOP_01_PKT
Definition: hexagon_arch.h:24
@ LAST_IN_PKT
Definition: hexagon_arch.h:21
@ SINGLE_IN_PKT
Definition: hexagon_arch.h:18
@ MID_IN_PKT
Definition: hexagon_arch.h:20
@ ELOOP_0_PKT
Definition: hexagon_arch.h:22
@ ELOOP_1_PKT
Definition: hexagon_arch.h:23
RZ_API void hex_const_ext_free(HexConstExt *ce)
HexReverseAction
Definition: hexagon_arch.h:28
@ HEXAGON_ANALYSIS
Definition: hexagon_arch.h:29
@ HEXAGON_DISAS
Definition: hexagon_arch.h:30
voidpf void * buf
Definition: ioapi.h:138
uint8_t ut8
Definition: lh5801.h:11
void * p
Definition: libc.cpp:67
Pointer to the rizin structs for disassembled and analysed instructions.
Definition: hexagon_arch.h:37
RzAnalysisOp * ana_op
Definition: hexagon_arch.h:39
RzAsmOp * asm_op
Definition: hexagon_arch.h:40
HexReverseAction action
Definition: hexagon_arch.h:38
Buffer packets for reversed instructions.
Definition: hexagon.h:134
ut64(WINAPI *w32_GetEnabledXStateFeatures)()
static int addr
Definition: z80asm.c:58