diff options
Diffstat (limited to 'src/plugins/pglist.h')
-rw-r--r-- | src/plugins/pglist.h | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/src/plugins/pglist.h b/src/plugins/pglist.h index 4964d1d..fec31c2 100644 --- a/src/plugins/pglist.h +++ b/src/plugins/pglist.h @@ -41,14 +41,30 @@ bool init_all_plugins(GObject *); /* Procède au déchargement des différents greffons présents. */ void exit_all_plugins(void); -/* Founit un greffon offrant le service demandé. */ -GPluginModule *get_one_plugin_for_action(PluginAction); - /* Founit less greffons offrant le service demandé. */ -GPluginModule **get_all_plugins_for_action(PluginAction, size_t *) __attribute__ ((deprecated)); +const GPluginModule **get_all_plugins_for_action(PluginAction, size_t *); + + +/** + * Définitions des opérations appliquables à une catégories de greffons. + */ -/*Opère une action donnée sur un binaire défini. */ -void run_plugins_on_binary(GLoadedBinary *, PluginAction, bool); +#define process_all__plugins_for(a, f, ...) \ + do \ + { \ + size_t __count; \ + const GPluginModule **__list; \ + size_t __i; \ + __list = get_all_plugins_for_action(a, &__count); \ + for (__i = 0; __i < __count; __i++) \ + f(__list[__i], a, __VA_ARGS__); \ + } \ + while (0) + +/* DPS_DISASSEMBLY */ + +#define process_disassembly_event(a, b) \ + process_all__plugins_for(a, g_plugin_module_process_disassembly_event, b) |