summaryrefslogtreecommitdiff
path: root/src/arch/context.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2015-12-16 23:46:51 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2015-12-16 23:46:51 (GMT)
commit8ff010a34762737016624a68f593d0e6736d4349 (patch)
treeefcf9b65483ba94dd93d6c6a7227706424160c10 /src/arch/context.c
parente4b56188b664e6b986733d456e6a0ea9b2da6d53 (diff)
Tracked the ARM/Thumb areas in a clever way with levels.
Diffstat (limited to 'src/arch/context.c')
-rw-r--r--src/arch/context.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/arch/context.c b/src/arch/context.c
index fe2e220..bb1d80a 100644
--- a/src/arch/context.c
+++ b/src/arch/context.c
@@ -40,7 +40,7 @@ static void g_proc_context_class_init(GProcContextClass *);
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);
+static void _g_proc_context_push_drop_point(GProcContext *, unsigned int, virt_t, va_list);
@@ -104,8 +104,10 @@ static void g_proc_context_init(GProcContext *ctx)
/******************************************************************************
* *
-* Paramètres : ctx = contexte de désassemblage à compléter. *
-* addr = adresse d'un nouveau point de départ à traiter. *
+* Paramètres : ctx = contexte de désassemblage à compléter. *
+* level = indication de priorité et d'origine de l'adresse. *
+* addr = adresse d'un nouveau point de départ à traiter. *
+* ap = éventuelles informations complémentaires. *
* *
* Description : Ajoute une adresse virtuelle comme point de départ de code. *
* *
@@ -115,7 +117,7 @@ static void g_proc_context_init(GProcContext *ctx)
* *
******************************************************************************/
-static void _g_proc_context_push_drop_point(GProcContext *ctx, virt_t addr)
+static void _g_proc_context_push_drop_point(GProcContext *ctx, unsigned int level, virt_t addr, va_list ap)
{
if (ctx->dp_count >= ctx->dp_allocated)
{
@@ -132,8 +134,10 @@ static 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. *
+* Paramètres : ctx = contexte de désassemblage à compléter. *
+* level = indication de priorité et d'origine de l'adresse. *
+* addr = adresse d'un nouveau point de départ à traiter. *
+* ... = éventuelles informations complémentaires. *
* *
* Description : Ajoute une adresse virtuelle comme point de départ de code. *
* *
@@ -143,16 +147,22 @@ static void _g_proc_context_push_drop_point(GProcContext *ctx, virt_t addr)
* *
******************************************************************************/
-void g_proc_context_push_drop_point(GProcContext *ctx, virt_t addr)
+void g_proc_context_push_drop_point(GProcContext *ctx, unsigned int level, virt_t addr, ...)
{
+ va_list ap; /* Arguments complémentaires ? */
+
+ va_start(ap, addr);
+
g_mutex_lock(&ctx->dp_access);
- G_PROC_CONTEXT_GET_CLASS(ctx)->push_point(ctx, addr);
+ G_PROC_CONTEXT_GET_CLASS(ctx)->push_point(ctx, level, addr, ap);
g_mutex_unlock(&ctx->dp_access);
g_signal_emit_by_name(ctx, "drop-point-pushed");
+ va_end(ap);
+
}