diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2015-12-16 23:46:51 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2015-12-16 23:46:51 (GMT) |
commit | 8ff010a34762737016624a68f593d0e6736d4349 (patch) | |
tree | efcf9b65483ba94dd93d6c6a7227706424160c10 /src/arch/context.c | |
parent | e4b56188b664e6b986733d456e6a0ea9b2da6d53 (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.c | 26 |
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); + } |