*
* 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
#ifndef __CONNMAN_PLUGIN_H
#define __CONNMAN_PLUGIN_H
+#include <connman/version.h>
+#include <connman/log.h>
+
#ifdef __cplusplus
extern "C" {
#endif
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);
+ void *debug_start;
+ void *debug_stop;
};
/**
* {
* }
*
- * CONNMAN_PLUGIN_DEFINE(example, "Example plugin", VERSION,
+ * CONNMAN_PLUGIN_DEFINE(example, "Example plugin", CONNMAN_VERSION,
* 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) \
+ 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, init, exit \
+ #name, description, version, priority, init, exit, \
+ __start___debug, __stop___debug \
};
+#endif
#ifdef __cplusplus
}