summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2011-08-15 16:16:36 -0700
committerMarcel Holtmann <marcel@holtmann.org>2011-08-15 16:16:36 -0700
commit652b2d0c4305bbff41c456f31ee465f1103ec5f8 (patch)
treee5c9b534b0c1f7c52f969f38b3a1ffaf4e1316f1
parent1d8ff99f756c96f4582e7246b0e8950875186ae9 (diff)
downloadofono-652b2d0c4305bbff41c456f31ee465f1103ec5f8.tar.bz2
plugin: Add debug support for external plugins
-rw-r--r--include/plugin.h10
-rw-r--r--src/plugin.c2
2 files changed, 11 insertions, 1 deletions
diff --git a/include/plugin.h b/include/plugin.h
index 6f580424..ca273beb 100644
--- a/include/plugin.h
+++ b/include/plugin.h
@@ -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
diff --git a/src/plugin.c b/src/plugin.c
index d4841856..ccfedb1b 100644
--- a/src/plugin.c
+++ b/src/plugin.c
@@ -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;