diff options
author | Romain Forlot <romain.forlot@iot.bzh> | 2017-09-17 19:20:40 +0200 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2017-12-14 11:00:25 +0100 |
commit | 12097251ec058b1fa9d9202998c829b27ee5554f (patch) | |
tree | 415d2592913bfa0b980232ffbee09d6cfb48fd02 /controller | |
parent | 5bbc6cb56995d23cb8a4eb584ef0161be092da1f (diff) |
Get CPP controller plugin works
Context passing variables not working well
Change-Id: Ibc67bef353e5cc2e53ef9e5579d106baab92a604
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'controller')
-rw-r--r-- | controller/ctl-plugin.c | 6 | ||||
-rw-r--r-- | controller/ctl-plugin.h | 4 |
2 files changed, 7 insertions, 3 deletions
diff --git a/controller/ctl-plugin.c b/controller/ctl-plugin.c index b14d591..69f0f09 100644 --- a/controller/ctl-plugin.c +++ b/controller/ctl-plugin.c @@ -21,6 +21,9 @@ #define _GNU_SOURCE #include <string.h> #include <dlfcn.h> +#include <link.h> +#include <stdio.h> +#include <stdlib.h> #ifdef CONTROL_SUPPORT_LUA #include "ctl-lua.h" @@ -202,7 +205,8 @@ STATIC int PluginLoadOne (CtlPluginT *ctlPlugin, json_object *pluginJ, void* han } } #endif - DispatchPluginInstallCbT ctlPluginOnload = dlsym(dlHandle, "CtlPluginOnload"); + +DispatchPluginInstallCbT ctlPluginOnload = dlsym(dlHandle, "CtlPluginOnload"); if (ctlPluginOnload) { ctlPlugin->context = (*ctlPluginOnload) (ctlPlugin, handle); } diff --git a/controller/ctl-plugin.h b/controller/ctl-plugin.h index 7c1d0f1..1c772c7 100644 --- a/controller/ctl-plugin.h +++ b/controller/ctl-plugin.h @@ -49,7 +49,7 @@ typedef struct { typedef struct { long magic; - char *label; + const char *label; void *handle; } CtlPluginMagicT; @@ -66,7 +66,7 @@ typedef void*(*DispatchPluginInstallCbT)(CtlPluginT *plugin, void* handle); #define MACRO_STR_VALUE(arg) #arg -#define CTLP_REGISTER(pluglabel) CtlPluginMagicT CtlPluginMagic={.magic=CTL_PLUGIN_MAGIC,.label=pluglabel}; struct afb_binding_data_v2; +#define CTLP_REGISTER(pluglabel) CtlPluginMagicT CtlPluginMagic={.magic=CTL_PLUGIN_MAGIC,.label=pluglabel,.handle=NULL}; struct afb_binding_data_v2; #define CTLP_ONLOAD(plugin, handle) void* CtlPluginOnload(CtlPluginT *plugin, void* handle) #define CTLP_CAPI(funcname, source, argsJ, queryJ, context) int funcname(CtlSourceT *source, json_object* argsJ, json_object* queryJ, void* context) |