From 17cf21bcf8a2e29d2cbcf0a313474d2a4ee44f5d Mon Sep 17 00:00:00 2001 From: Tadao Tanikawa Date: Fri, 20 Nov 2020 23:36:23 +0900 Subject: Re-organized sub-directory by category Since all the sub-directories were placed in the first level, created sub-directories, "hal", "module", and "service" for classification and relocated each component. Signed-off-by: Tadao Tanikawa Change-Id: Ifdf743ac0d1893bd8e445455cf0d2c199a011d5c --- .../resource_manager/client/src/#resmgr_api_lib.c# | 142 +++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100755 service/system/resource_manager/client/src/#resmgr_api_lib.c# (limited to 'service/system/resource_manager/client/src/#resmgr_api_lib.c#') diff --git a/service/system/resource_manager/client/src/#resmgr_api_lib.c# b/service/system/resource_manager/client/src/#resmgr_api_lib.c# new file mode 100755 index 0000000..02e84e4 --- /dev/null +++ b/service/system/resource_manager/client/src/#resmgr_api_lib.c# @@ -0,0 +1,142 @@ +/* + * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include "resm_internal.h" +#include "resmgr_api.h" +#include "resmgr_api_resourcemanagerlog.h" + +/********************************************** + * External variable definitions + **********************************************/ +RPC_ID __thread rpcId; + +/******************************************************************************* + * RPC public API + *******************************************************************************/ +/* Connection */ +RESM_ERR_t +RESM_Open(const RESM_RSV_t* p_prim, uint32_t* p_ssnId) +{ + + RESM_ERR_t resmRet; + EV_ERR evRet; + + // Argument check + if( p_ssnId == NULL ) { + return RESM_E_PAR; + } + + // RPC resources + if( RPC_OK != RPC_START_CLIENT(&rpcId) ) { + FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "[RESM_ERR]ResMgr Open: RPC_START Error"); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" + return RESM_E_NG; + } + + + // Session connection + resmRet = RESM_SV_Open(p_prim, p_ssnId); + if( resmRet != RESM_E_OK ) { + FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "[RESM_ERR]ResMgr Open: Open Session Error. ret[%d]", resmRet); // LCOV_EXCL_BR_LINE 15:marco defined in "native_service/ns_logger_if.h" + return RESM_E_NG; + } + + // Create Event Flag + evRet = EV_create_flag(Resm_Flag_ID_Base + *p_ssnId); + if( evRet != EV_OK ) { + FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "[RESM_ERR]ResMgr Open: create_flag Error. ret[%d]", evRet); + return RESM_E_NG; + } + + return RESM_E_OK; +} + +/* Disconnection */ +RESM_ERR_t +RESM_Close(uint32_t ssnId) +{ + + RESM_ERR_t resmRet; + + // Disconnect session + resmRet = RESM_SV_Close(ssnId); + if( resmRet != RESM_E_OK ) { + return resmRet; + } + + // Destroy RPC Resources + RPC_end(rpcId); + + return RESM_E_OK; +} + +/* Get event FD */ +RESM_ERR_t +RESM_GetEventFd(uint32_t ssnId, int32_t* p_fd) +{ + + RESM_ERR_t resmRet; + + // Argument check + if( p_fd == NULL ) { + return RESM_E_PAR; + } + // Session ID check + resmRet = RESM_SV_ChkSsnId(ssnId); + if( resmRet != RESM_E_OK ) { + return RESM_E_PAR; + } + + if( EV_OK != EV_get_flag_fd(Resm_Flag_ID_Base + ssnId, p_fd) ) { + FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "[RESM_ERR]ResMgr GetEventFd Error"); + return RESM_E_NG; + } + + return RESM_E_OK; +} + +/* Get event */ +RESM_ERR_t +RESM_GetEvent(uint32_t ssnId, RESM_EV_t* p_evFlag) +{ + + RESM_ERR_t resmRet; + EV_Flag flag; + + // Argument check + if( p_evFlag == NULL ) { + return RESM_E_PAR; + } + // Session ID Check + resmRet = RESM_SV_ChkSsnId(ssnId); + if( resmRet != RESM_E_OK ) { + return RESM_E_PAR; + } + + if( EV_OK != EV_get_flag(Resm_Flag_ID_Base + ssnId, &flag)) { + FRAMEWORKUNIFIEDLOG(ZONE_NS_ERR, __FUNCTION__, "[RESM_ERR]ResMgr GetEvent(get_flag) Error"); + return RESM_E_NG; + } + + if( flag.bits == 0 ) { + // No event + return RESM_E_NG; + } + + *p_evFlag = flag.bits; + + return RESM_E_OK; +} -- cgit 1.2.3-korg