X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=include%2Fplugin.h;h=db76ad9f2255647e24b94f757b5cf6f2d68fe4c3;hb=7aabc6d00645abd107d0571ca121cfdbbc043e4b;hp=cbd1c12a09aa50c327cc2b5077c7763d85f4e009;hpb=8e65bc5177df5ac686c04986ed60d54a98f11fb2;p=connman diff --git a/include/plugin.h b/include/plugin.h index cbd1c12..db76ad9 100644 --- a/include/plugin.h +++ b/include/plugin.h @@ -2,7 +2,7 @@ * * Connection Manager * - * Copyright (C) 2007-2008 Intel Corporation. All rights reserved. + * Copyright (C) 2007-2009 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 @@ -22,6 +22,8 @@ #ifndef __CONNMAN_PLUGIN_H #define __CONNMAN_PLUGIN_H +#include + #ifdef __cplusplus extern "C" { #endif @@ -31,6 +33,10 @@ extern "C" { 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 @@ -41,6 +47,7 @@ struct connman_plugin_desc { const char *name; const char *description; const char *version; + int priority; int (*init) (void); void (*exit) (void); }; @@ -67,14 +74,23 @@ struct connman_plugin_desc { * { * } * - * 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_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 }