summaryrefslogtreecommitdiff
path: root/src/plugins/pglist.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/pglist.h')
-rw-r--r--src/plugins/pglist.h28
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)