diff options
Diffstat (limited to 'src/arch/context.c')
-rw-r--r-- | src/arch/context.c | 55 |
1 files changed, 23 insertions, 32 deletions
diff --git a/src/arch/context.c b/src/arch/context.c index bb1d80a..98eebb2 100644 --- a/src/arch/context.c +++ b/src/arch/context.c @@ -104,6 +104,26 @@ static void g_proc_context_init(GProcContext *ctx) /****************************************************************************** * * +* Paramètres : ctx = contexte de désassemblage à mettre à jour. * +* counter = adresse du compteur à modifier. * +* * +* Description : Enregistre un compteur pour le décompte des points à traiter.* +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void g_proc_context_attach_counter(GProcContext *ctx, gint *counter) +{ + ctx->counter = counter; + +} + + +/****************************************************************************** +* * * 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. * @@ -155,6 +175,9 @@ void g_proc_context_push_drop_point(GProcContext *ctx, unsigned int level, virt_ g_mutex_lock(&ctx->dp_access); + if (ctx->counter != NULL) + g_atomic_int_inc(ctx->counter); + G_PROC_CONTEXT_GET_CLASS(ctx)->push_point(ctx, level, addr, ap); g_mutex_unlock(&ctx->dp_access); @@ -168,38 +191,6 @@ void g_proc_context_push_drop_point(GProcContext *ctx, unsigned int level, virt_ /****************************************************************************** * * -* Paramètres : ctx = contexte de désassemblage à consulter. * -* addr = adresse de mémoire virtuelle à rechercher. * -* * -* Description : Précise si une adresse donnée figure comme point de départ. * -* * -* Retour : true si l'adresse est connue en interne, false sinon. * -* * -* Remarques : - * -* * -******************************************************************************/ - -bool g_proc_context_has_addr_as_drop_points(GProcContext *ctx, virt_t addr) -{ - bool result; /* Bilan à retourner */ - size_t i; /* Boucle de parcours */ - - result = false; - - g_mutex_lock(&ctx->dp_access); - - for (i = 0; i < ctx->dp_count && !result; i++) - result = (ctx->drop_points[i] == addr); - - g_mutex_unlock(&ctx->dp_access); - - return result; - -} - - -/****************************************************************************** -* * * Paramètres : ctx = contexte de désassemblage à compléter. * * virt = adresse d'un point de départ de code à traiter. * * * |