summaryrefslogtreecommitdiffstats
path: root/src/vshl-capabilities-binding.c
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2019-10-07 17:36:39 -0400
committerScott Murray <scott.murray@konsulko.com>2019-10-08 18:18:43 -0400
commit218cc70720fce6235d74fd4d851629dfda34a00e (patch)
treeec433213f54c97855816a29991c0b7eb299f4fc9 /src/vshl-capabilities-binding.c
parentd8ddb879b61b956d0a7ebd6a181595c9a41a9562 (diff)
Switch to appcontroller library
Remove old app-controller submodule usage in favor of library from the toolchain. Also update dynamic API calls for V3. Bug-AGL: SPEC-2857 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ib52d00939e0c5998004c96b9ec1a41905f8d71fb
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;
}