diff options
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); + } |