plugin: Add debug support for external plugins

This commit is contained in:
Marcel Holtmann 2011-08-15 16:16:36 -07:00
parent 1d8ff99f75
commit 652b2d0c43
2 changed files with 11 additions and 1 deletions

View File

@ -23,6 +23,7 @@
#define __OFONO_PLUGIN_H
#include <ofono/version.h>
#include <ofono/log.h>
#ifdef __cplusplus
extern "C" {
@ -50,6 +51,8 @@ struct ofono_plugin_desc {
int priority;
int (*init) (void);
void (*exit) (void);
void *debug_start;
void *debug_stop;
};
/**
@ -69,10 +72,15 @@ struct ofono_plugin_desc {
};
#else
#define OFONO_PLUGIN_DEFINE(name, description, version, priority, init, exit) \
extern struct ofono_debug_desc __start___debug[] \
__attribute__ ((visibility("hidden"))); \
extern struct ofono_debug_desc __stop___debug[] \
__attribute__ ((visibility("hidden"))); \
extern struct ofono_plugin_desc ofono_plugin_desc \
__attribute__ ((visibility("default"))); \
struct ofono_plugin_desc ofono_plugin_desc = { \
#name, description, version, priority, init, exit \
#name, description, version, priority, init, exit, \
__start___debug, __stop___debug \
};
#endif

View File

@ -66,6 +66,8 @@ static gboolean add_plugin(void *handle, struct ofono_plugin_desc *desc)
plugin->active = FALSE;
plugin->desc = desc;
__ofono_log_enable(desc->debug_start, desc->debug_stop);
plugins = g_slist_insert_sorted(plugins, plugin, compare_priority);
return TRUE;