understanding that ConnMan hasn't reached a stable API."
#endif
+#define CONNMAN_PLUGIN_PRIORITY_LOW -100
+#define CONNMAN_PLUGIN_PRIORITY_DEFAULT 0
+#define CONNMAN_PLUGIN_PRIORITY_HIGH 100
+
/**
* SECTION:plugin
* @title: Plugin premitives
const char *name;
const char *description;
const char *version;
+ int priority;
int (*init) (void);
void (*exit) (void);
};
* example_init, example_exit)
* ]|
*/
-#define CONNMAN_PLUGIN_DEFINE(name, description, version, init, exit) \
+#ifdef CONNMAN_PLUGIN_BUILTIN
+#define CONNMAN_PLUGIN_DEFINE(name, description, version, priority, init, exit) \
+ extern struct connman_plugin_desc connman_builtin_ ## name \
+ __attribute__ ((visibility("default"))); \
+ 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_plugin_desc connman_plugin_desc \
+ __attribute__ ((visibility("default"))); \
struct connman_plugin_desc connman_plugin_desc = { \
- #name, description, version, init, exit \
+ #name, description, version, priority, init, exit \
};
+#endif
#ifdef __cplusplus
}