summaryrefslogtreecommitdiff
path: root/src/analysis/disass/block.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis/disass/block.h')
-rw-r--r--src/analysis/disass/block.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/analysis/disass/block.h b/src/analysis/disass/block.h
index 8d38976..755dbe6 100644
--- a/src/analysis/disass/block.h
+++ b/src/analysis/disass/block.h
@@ -29,6 +29,7 @@
#include "../../arch/instruction.h"
+#include "../../common/bits.h"
@@ -54,7 +55,7 @@ typedef struct _GBasicBlockClass GBasicBlockClass;
GType g_basic_block_get_type(void);
/* Crée un bloc basique d'exécution d'instructions. */
-GBasicBlock *g_basic_block_new(GArchInstruction *, GArchInstruction *);
+GBasicBlock *g_basic_block_new(GArchInstruction *, GArchInstruction *, const bitfield_t *);
/* Fournit les instructions limites d'un bloc basique. */
void g_basic_block_get_boundary(const GBasicBlock *, GArchInstruction **, GArchInstruction **);
@@ -68,6 +69,9 @@ unsigned int g_basic_block_get_rank(const GBasicBlock *);
/* Définit le rang du bloc basique dans le flot d'exécution. */
void g_basic_block_set_rank(GBasicBlock *, unsigned int);
+/* Indique la liste des blocs de code dominés. */
+const bitfield_t *g_basic_block_get_domination(const GBasicBlock *);
+
/* ------------------------- REGROUPEMENT EN LISTE DE BLOCS ------------------------- */
@@ -101,7 +105,10 @@ size_t g_block_list_count_blocks(const GBlockList *);
void g_block_list_add_block(GBlockList *, GBasicBlock *, size_t);
/* Fournit un bloc basique à d'une liste définie. */
-GBasicBlock *g_block_list_get_block(GBlockList *, size_t );
+GBasicBlock *g_block_list_get_block(const GBlockList *, size_t );
+
+/* Fournit l'indice d'un bloc basique d'une liste de blocs. */
+size_t g_block_list_get_index(const GBlockList *, GBasicBlock *);
/* Recherche un bloc basique selon une première instruction. */
GBasicBlock *g_block_list_find_by_starting_instr(const GBlockList *, GArchInstruction *);