summaryrefslogtreecommitdiff
path: root/src/arch/context.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2014-12-30 08:25:05 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2014-12-30 08:25:05 (GMT)
commit57d7eff57c20e75aaa4ccd34f1d9d733e12bb232 (patch)
treea60199f7323a31e0bf22b8f8747fdf402f2c481d /src/arch/context.c
parent19e1a97fafb1b73d0efcd995b31951daf1a5c661 (diff)
Tracked each binary area during the disassembling process and tried to follow the execution flow.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@445 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/arch/context.c')
-rw-r--r--src/arch/context.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/arch/context.c b/src/arch/context.c
index 46c4dd1..794030a 100644
--- a/src/arch/context.c
+++ b/src/arch/context.c
@@ -39,6 +39,9 @@ static void g_proc_context_class_init(GProcContextClass *);
/* Initialise une instance de contexte de processeur. */
static void g_proc_context_init(GProcContext *);
+/* Ajoute une adresse virtuelle comme point de départ de code. */
+static void _g_proc_context_push_drop_point(GProcContext *, virt_t);
+
/* Indique le type définit par la GLib pour le contexte de processeur. */
@@ -60,6 +63,7 @@ G_DEFINE_TYPE(GProcContext, g_proc_context, G_TYPE_OBJECT);
static void g_proc_context_class_init(GProcContextClass *klass)
{
+ klass->push_point = (push_drop_point_fc)_g_proc_context_push_drop_point;
}
@@ -97,7 +101,7 @@ static void g_proc_context_init(GProcContext *ctx)
* *
******************************************************************************/
-void g_proc_context_push_drop_point(GProcContext *ctx, virt_t addr)
+static void _g_proc_context_push_drop_point(GProcContext *ctx, virt_t addr)
{
ctx->drop_points = (virt_t *)realloc(ctx->drop_points, ++ctx->dp_count * sizeof(virt_t));
@@ -108,6 +112,26 @@ void g_proc_context_push_drop_point(GProcContext *ctx, virt_t addr)
/******************************************************************************
* *
+* Paramètres : ctx = contexte de désassemblage à compléter. *
+* addr = adresse d'un nouveau point de départ à traiter. *
+* *
+* Description : Ajoute une adresse virtuelle comme point de départ de code. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void g_proc_context_push_drop_point(GProcContext *ctx, virt_t addr)
+{
+ return G_PROC_CONTEXT_GET_CLASS(ctx)->push_point(ctx, addr);
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : ctx = contexte de désassemblage à consulter. *
* *
* Description : Indique si des points de départ restent à traiter ou non. *