diff options
Diffstat (limited to 'src/plugins/plugin.c')
| -rw-r--r-- | src/plugins/plugin.c | 42 | 
1 files changed, 39 insertions, 3 deletions
| diff --git a/src/plugins/plugin.c b/src/plugins/plugin.c index fca22c1..89a8040 100644 --- a/src/plugins/plugin.c +++ b/src/plugins/plugin.c @@ -252,8 +252,26 @@ GPluginModule *g_plugin_module_new(const gchar *filename)                  switch (sub)                  { +                    case DPS_FORMAT: +                        switch (result->interface->actions[i]) +                        { +                            case PGA_FORMAT_LOADER_LAST: +                                if (!load_plugin_symbol(result->module, +                                                        "handle_binary_format", &result->handle_format)) +                                    goto bad_plugin; +                                break; + +                            default: +                                log_variadic_message(LMT_WARNING, +                                                     _("Unknown action '0x%02x' in plugin '%s'..."), +                                                     result->interface->actions[i], filename); +                                break; + +                        } + +                        break;                      case DPS_DISASSEMBLY:                          if (!load_plugin_symbol(result->module, @@ -423,6 +441,27 @@ void g_plugin_module_log_variadic_message(const GPluginModule *plugin, LogMessag  *                                                                             *  *  Paramètres  : plugin = greffon à manipuler.                                *  *                action = type d'action attendue.                             * +*                format = format de binaire à manipuler pendant l'opération.  * +*                                                                             * +*  Description : Procède à une opération liée au format de fichier uniquement.* +*                                                                             * +*  Retour      : Bilan de l'exécution du traitement.                          * +*                                                                             * +*  Remarques   : -                                                            * +*                                                                             * +******************************************************************************/ + +bool g_plugin_module_handle_binary_format(const GPluginModule *plugin, PluginAction action, GBinFormat *format) +{ +    return plugin->handle_format(plugin, action, format); + +} + + +/****************************************************************************** +*                                                                             * +*  Paramètres  : plugin = greffon à manipuler.                                * +*                action = type d'action attendue.                             *  *                binary = binaire dont le contenu est en cours de traitement. *  *                                                                             *  *  Description : Exécute une action pendant un désassemblage de binaire.      * @@ -435,9 +474,6 @@ void g_plugin_module_log_variadic_message(const GPluginModule *plugin, LogMessag  void g_plugin_module_process_disassembly_event(const GPluginModule *plugin, PluginAction action, GLoadedBinary *binary)  { -    printf("plugin = %p\n", plugin); -    printf("plugin->proc_disass = %p\n", plugin->proc_disass); -      plugin->proc_disass(plugin, action, binary);  } | 
