Base Code merged to SPIN 2.4
[platform/upstream/connman.git] / include / plugin.h
old mode 100644 (file)
new mode 100755 (executable)
index 086786c..8d2bb08
@@ -2,7 +2,7 @@
  *
  *  Connection Manager
  *
- *  Copyright (C) 2007-2009  Intel Corporation. All rights reserved.
+ *  Copyright (C) 2007-2012  Intel Corporation. All rights reserved.
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License version 2 as
@@ -23,6 +23,7 @@
 #define __CONNMAN_PLUGIN_H
 
 #include <connman/version.h>
+#include <connman/log.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -50,6 +51,8 @@ struct connman_plugin_desc {
        int priority;
        int (*init) (void);
        void (*exit) (void);
+       void *debug_start;
+       void *debug_stop;
 };
 
 /**
@@ -78,12 +81,24 @@ struct connman_plugin_desc {
  *                                     example_init, example_exit)
  * ]|
  */
+#ifdef CONNMAN_PLUGIN_BUILTIN
 #define CONNMAN_PLUGIN_DEFINE(name, description, version, priority, init, exit) \
+               struct connman_plugin_desc __connman_builtin_ ## name = { \
+                       #name, description, version, priority, init, exit \
+               };
+#else
+#define CONNMAN_PLUGIN_DEFINE(name, description, version, priority, init, exit) \
+               extern struct connman_debug_desc __start___debug[] \
+                               __attribute__ ((weak, visibility("hidden"))); \
+               extern struct connman_debug_desc __stop___debug[] \
+                               __attribute__ ((weak, visibility("hidden"))); \
                extern struct connman_plugin_desc connman_plugin_desc \
                                __attribute__ ((visibility("default"))); \
                struct connman_plugin_desc connman_plugin_desc = { \
-                       #name, description, version, priority, init, exit \
+                       #name, description, version, priority, init, exit, \
+                       __start___debug, __stop___debug \
                };
+#endif
 
 #ifdef __cplusplus
 }