summaryrefslogtreecommitdiff
path: root/src/analysis/blocks/flow.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2013-03-19 21:13:51 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2013-03-19 21:13:51 (GMT)
commitcf97db0ea4d1ea983db38df85984034b49fa4f77 (patch)
treeb6d69945b24ec8da93f0bef7ccf4dfdbe1d920a2 /src/analysis/blocks/flow.h
parente7a85861ba8bcd00ceb7bf9e47f4eadccd48ce3f (diff)
Defined the first steps towards new graph renderings.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@345 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/analysis/blocks/flow.h')
-rw-r--r--src/analysis/blocks/flow.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/analysis/blocks/flow.h b/src/analysis/blocks/flow.h
index a01ef64..ab8fada 100644
--- a/src/analysis/blocks/flow.h
+++ b/src/analysis/blocks/flow.h
@@ -70,6 +70,18 @@ GType g_flow_block_get_type(void);
/* Crée un bloc d'exécution d'instructions. */
GInstrBlock *g_flow_block_new(GArchInstruction *, GArchInstruction *, GArchInstruction *);
+/* Fournit le rang du bloc dans le flot d'exécution. */
+unsigned int g_flow_block_get_rank(const GFlowBlock *);
+
+/* Définit le rang du bloc dans le flot d'exécution. */
+void g_flow_block_set_rank(GFlowBlock *, unsigned int);
+
+/* Fournit le rang minimal du bloc suivant pour l'exécution. */
+unsigned int g_flow_block_get_next_rank(const GFlowBlock *);
+
+/* Définit le rang minimal du bloc suivant pour l'exécution. */
+void g_flow_block_set_next_rank(GFlowBlock *, unsigned int);
+
/* Fournit la liste d'appartenance des instructions du bloc. */
GArchInstruction *g_flow_block_get_all_instructions_list(const GFlowBlock *);
@@ -79,6 +91,9 @@ void g_flow_block_get_boundary(const GFlowBlock *, GArchInstruction **, GArchIns
/* Fournit les adresses limites d'un bloc d'exécution. */
void g_flow_block_get_boundary_addresses(const GFlowBlock *, vmpa_t *, vmpa_t *);
+/* Détermine si un bloc peut conduire à un autre. */
+bool g_flow_block_is_looping_to(GFlowBlock *, const GInstrBlock *, GFlowBlock *);
+
/* Suit le flot d'excution bloc par bloc. */
bool g_flow_block_follow(GFlowBlock *, const GInstrBlock *, BlockFollowPosition, flow_block_follow_cb, void *);