Rizin
unix-like reverse engineering framework and cli tools
rz_il_reg.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: 2021 Florian Märkl <info@florianmaerkl.de>
2 // SPDX-License-Identifier: LGPL-3.0-only
3 
4 #ifndef RZ_IL_REG_H
5 #define RZ_IL_REG_H
6 
7 #include <rz_reg.h>
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 typedef struct rz_il_reg_binding_item_t {
14  char *name;
17 
22 typedef struct rz_il_reg_binding_t {
23  size_t regs_count;
26 
27 struct rz_il_vm_t;
28 
32 
36 
37 #ifdef __cplusplus
38 }
39 #endif
40 
41 #endif
static char * regs[]
Definition: analysis_sh.c:203
#define RZ_API
uint32_t ut32
#define reg(n)
struct rz_il_reg_binding_t RzILRegBinding
RZ_API void rz_il_vm_sync_from_reg(RZ_NONNULL struct rz_il_vm_t *vm, RZ_NONNULL RzILRegBinding *rb, RZ_NONNULL RzReg *reg)
struct rz_il_reg_binding_item_t RzILRegBindingItem
RZ_API RzILRegBinding * rz_il_reg_binding_exactly(RZ_NONNULL RzReg *reg, size_t regs_count, RZ_NONNULL RZ_BORROW const char **regs)
Definition: il_reg.c:154
RZ_API void rz_il_vm_setup_reg_binding(RZ_NONNULL struct rz_il_vm_t *vm, RZ_NONNULL RZ_BORROW RzILRegBinding *rb)
RZ_API void rz_il_reg_binding_free(RzILRegBinding *rb)
Definition: il_reg.c:207
RZ_API RzILRegBinding * rz_il_reg_binding_derive(RZ_NONNULL RzReg *reg)
Calculate a new binding of IL variables against the profile of the given RzReg.
Definition: il_reg.c:35
RZ_API bool rz_il_vm_sync_to_reg(RZ_NONNULL struct rz_il_vm_t *vm, RZ_NONNULL RzILRegBinding *rb, RZ_NONNULL RzReg *reg)
#define RZ_NONNULL
Definition: rz_types.h:64
#define RZ_BORROW
Definition: rz_types.h:63
ut32 size
number of bits of the register and variable
Definition: rz_il_reg.h:15
char * name
name of both the register and the variable that binds to it
Definition: rz_il_reg.h:14
RzILRegBindingItem * regs
regs_count registers that are bound to variables
Definition: rz_il_reg.h:24
Low-level VM to execute raw IL code.
Definition: rz_il_vm.h:37