diff options
author | Jonathan Aillet <jonathan.aillet@iot.bzh> | 2018-09-06 10:15:23 +0200 |
---|---|---|
committer | Jonathan Aillet <jonathan.aillet@iot.bzh> | 2018-10-08 15:57:27 +0200 |
commit | f410a02a35b565de39f247c8ee48e7b98ff78432 (patch) | |
tree | 1564e3b44e18472076fcb33fe0c58b421b56074e /4a-hal/4a-hal-manager/4a-hal-manager.c | |
parent | 6adfd2cf4db2da2b1c1ce5b2931d38bbfc05c87e (diff) |
Force hals init before ending hal-manager init
Force launched hals initialization before ending
hal-manager initialization.
This way, external api requiring 'hal-manager' will be sure that all
launched hals are initialized.
Change-Id: I00b9b14da623828d7cf7bc507873ad6de8ba2391
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
Diffstat (limited to '4a-hal/4a-hal-manager/4a-hal-manager.c')
-rw-r--r-- | 4a-hal/4a-hal-manager/4a-hal-manager.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/4a-hal/4a-hal-manager/4a-hal-manager.c b/4a-hal/4a-hal-manager/4a-hal-manager.c index 19f8e8a..0a75923 100644 --- a/4a-hal/4a-hal-manager/4a-hal-manager.c +++ b/4a-hal/4a-hal-manager/4a-hal-manager.c @@ -69,6 +69,7 @@ struct SpecificHalData **HalMngGetFirstHalData(void) static int HalMgrInitApi(AFB_ApiT apiHandle) { + struct SpecificHalData *currentCtlHalData; struct HalMgrData *HalMgrGlobalData; if(! apiHandle) @@ -85,6 +86,17 @@ static int HalMgrInitApi(AFB_ApiT apiHandle) if(HalUtlInitializeHalMgrData(apiHandle, HalMgrGlobalData, HAL_MANAGER_API_NAME, HAL_MANAGER_API_INFO)) return -3; + currentCtlHalData = HalMgrGlobalData->first; + + while(currentCtlHalData) { + if(! currentCtlHalData->apiName) + return -4; + else if(AFB_RequireApi(apiHandle, currentCtlHalData->apiName, 1)) + return -5; + + currentCtlHalData = currentCtlHalData->next; + } + return 0; } |