summaryrefslogtreecommitdiffstats
path: root/src/vshl-capabilities-binding.c
diff options
context:
space:
mode:
authorJan-Simon Moeller <jsmoeller@linuxfoundation.org>2019-10-15 17:45:29 +0000
committerGerrit Code Review <gerrit@automotivelinux.org>2019-10-15 17:45:29 +0000
commit266c9b1cefb3e33c825e6a994b8bb481654d86d1 (patch)
treeafead1d5151d6ba5031740ac24ae129632744ecb /src/vshl-capabilities-binding.c
parentc1de719af7bdae425f2e42dd3e0642550a8cd6b6 (diff)
parent62f552fe640df18320dd3afb1f141e8a1aedf2f4 (diff)
Merge "Switch to appcontroller library" into halibuthalibut_8.0.3halibut/8.0.38.0.3
Diffstat (limited to 'src/vshl-capabilities-binding.c')
-rw-r--r--src/vshl-capabilities-binding.c48
1 files changed, 23 insertions, 25 deletions
diff --git a/src/vshl-capabilities-binding.c b/src/vshl-capabilities-binding.c
index b38210a..d7b970c 100644
--- a/src/vshl-capabilities-binding.c
+++ b/src/vshl-capabilities-binding.c
@@ -15,30 +15,29 @@
#define _GNU_SOURCE
#include "vshl-capabilities-binding.h"
-afb_dynapi* AFB_default;
-
// Config Section definition (note: controls section index should match handle
// retrieval in HalConfigExec)
static CtlSectionT ctrlSections[] = {{.key = "plugins", .loadCB = PluginConfig},
{.key = "controls", .loadCB = ControlConfig},
{.key = NULL}};
-static AFB_ApiVerbs ctrlApiVerbs[] = {
+static afb_verb_t ctrlApiVerbs[] = {
{.verb = NULL} /* marker for end of the array */
};
-static int ctrlLoadStaticVerbs(afb_dynapi* apiHandle, AFB_ApiVerbs* verbs) {
+static int ctrlLoadStaticVerbs(afb_api_t apiHandle, afb_verb_t* verbs) {
int errcount = 0;
for (int idx = 0; verbs[idx].verb; idx++) {
- errcount += afb_dynapi_add_verb(
+ errcount += afb_api_add_verb(
apiHandle,
ctrlApiVerbs[idx].verb,
NULL,
ctrlApiVerbs[idx].callback,
(void*)&ctrlApiVerbs[idx],
ctrlApiVerbs[idx].auth,
- 0);
+ 0,
+ !!strchr(ctrlApiVerbs[idx].verb, '*'));
}
return errcount;
@@ -47,7 +46,7 @@ static int ctrlLoadStaticVerbs(afb_dynapi* apiHandle, AFB_ApiVerbs* verbs) {
// next generation dynamic API-V3 mode
#include <signal.h>
-static int CtrlInitOneApi(AFB_ApiT apiHandle)
+static int CtrlInitOneApi(afb_api_t apiHandle)
{
CtlConfigT *ctrlConfig;
@@ -55,72 +54,71 @@ static int CtrlInitOneApi(AFB_ApiT apiHandle)
return -1;
// Retrieve section config from api handle
- ctrlConfig = (CtlConfigT *) AFB_ApiGetUserData(apiHandle);
+ ctrlConfig = (CtlConfigT *) afb_api_get_userdata(apiHandle);
if(!ctrlConfig)
return -2;
return CtlConfigExec(apiHandle, ctrlConfig);
}
-static int ctrlLoadOneApi(void* cbdata, AFB_ApiT apiHandle) {
+static int ctrlLoadOneApi(void* cbdata, afb_api_t apiHandle) {
CtlConfigT* ctrlConfig = (CtlConfigT*)cbdata;
// save closure as api's data context
- afb_dynapi_set_userdata(apiHandle, ctrlConfig);
+ afb_api_set_userdata(apiHandle, ctrlConfig);
// add static controls verbs
int err = ctrlLoadStaticVerbs(apiHandle, ctrlApiVerbs);
if (err) {
- AFB_ApiError(apiHandle, "ctrlLoadStaticVerbs fail to register static V2 verbs");
+ AFB_API_ERROR(apiHandle, "ctrlLoadStaticVerbs fail to register static V2 verbs");
return ERROR;
}
// load section for corresponding API
err = CtlLoadSections(apiHandle, ctrlConfig, ctrlSections);
if (err) {
- AFB_ApiError(apiHandle, "CtlLoadSections fail to load the sections");
+ AFB_API_ERROR(apiHandle, "CtlLoadSections fail to load the sections");
return ERROR;
}
// declare an event event manager for this API;
- afb_dynapi_on_event(apiHandle, CtrlDispatchApiEvent);
+ afb_api_on_event(apiHandle, CtrlDispatchApiEvent);
// init API function (does not receive user closure ???
- afb_dynapi_on_init(apiHandle, CtrlInitOneApi);
+ afb_api_on_init(apiHandle, CtrlInitOneApi);
- afb_dynapi_seal(apiHandle);
+ afb_api_seal(apiHandle);
return err;
}
-int afbBindingEntry(afb_dynapi* apiHandle) {
- AFB_default = apiHandle;
- AFB_ApiNotice(apiHandle, "Controller in afbBindingEntry");
+int afbBindingEntry(afb_api_t apiHandle) {
+ AFB_API_NOTICE(apiHandle, "Controller in afbBindingEntry");
const char* dirList = getenv("CONTROL_CONFIG_PATH");
if (!dirList) dirList = CONTROL_CONFIG_PATH;
const char* configPath = CtlConfigSearch(apiHandle, dirList, "");
if (!configPath) {
- AFB_ApiError(apiHandle, "CtlPreInit: No %s* config found in %s ", GetBinderName(), dirList);
+ AFB_API_ERROR(apiHandle, "CtlPreInit: No %s* config found in %s ", GetBinderName(), dirList);
return ERROR;
}
// load config file and create API
CtlConfigT* ctrlConfig = CtlLoadMetaData(apiHandle, configPath);
if (!ctrlConfig) {
- AFB_ApiError(apiHandle, "CtrlBindingDyn No valid control config file in:\n-- %s", configPath);
+ AFB_API_ERROR(apiHandle, "CtrlBindingDyn No valid control config file in:\n-- %s", configPath);
return ERROR;
}
if (!ctrlConfig->api) {
- AFB_ApiError(apiHandle, "CtrlBindingDyn API Missing from metadata in:\n-- %s", configPath);
+ AFB_API_ERROR(apiHandle, "CtrlBindingDyn API Missing from metadata in:\n-- %s", configPath);
return ERROR;
}
- AFB_ApiNotice(apiHandle, "Controller API='%s' info='%s'", ctrlConfig->api, ctrlConfig->info);
+ AFB_API_NOTICE(apiHandle, "Controller API='%s' info='%s'", ctrlConfig->api, ctrlConfig->info);
- // create one API per config file (Pre-V3 return code ToBeChanged)
- int status = afb_dynapi_new_api(apiHandle, ctrlConfig->api, ctrlConfig->info, 1, ctrlLoadOneApi, ctrlConfig);
+ // create one API per config file
+ afb_api_t newApi = afb_api_new_api(apiHandle, ctrlConfig->api, ctrlConfig->info, 1, ctrlLoadOneApi, ctrlConfig);
- return status;
+ return newApi != NULL ? 0 : -1;
}