summaryrefslogtreecommitdiffstats
path: root/systemservice/task_manager/server/src/tskm_main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'systemservice/task_manager/server/src/tskm_main.cpp')
-rwxr-xr-xsystemservice/task_manager/server/src/tskm_main.cpp727
1 files changed, 0 insertions, 727 deletions
diff --git a/systemservice/task_manager/server/src/tskm_main.cpp b/systemservice/task_manager/server/src/tskm_main.cpp
deleted file mode 100755
index 33c10fa..0000000
--- a/systemservice/task_manager/server/src/tskm_main.cpp
+++ /dev/null
@@ -1,727 +0,0 @@
-/*
- * @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 "tskm_main.h"
-#include <stdio.h>
-#include <string.h>
-#include <sys/select.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <errno.h>
-#include <sys/inotify.h>
-#include <getopt.h>
-#include <system_service/ss_services.h>
-#include <native_service/ns_version_if.h>
-#include <native_service/ns_np_service_protocol.h>
-#include <system_service/ss_system_if.h>
-#include <system_service/ss_version.h>
-#include <system_service/ss_templates.h>
-#include <native_service/frameworkunified_dispatcher.h>
-#include <other_service/rpc.h>
-#include <system_service/resm.h>
-
-#include "tskm_data_init_local.h"
-#include "tskm_port_pf.h"
-#include "tskm_port_subsys.h"
-#include "tskm_debug.h"
-#include "tskm_util.h"
-#include "tskm_srvr.h"
-#include "tskm_comm.h"
-#include "tskm_watch.h"
-#include "system_service/tskm_local_type.h"
-#include "system_service/tskm_xml_data.h"
-#include "tskm_state.h"
-
-#define TSKM_DATA_KEY "TSKM_KEY"
-
-TSKM_STATIC TSKM_MAIN_CTX_t g_mainCtx; // Main context
-
-TSKM_STATIC BOOL s_isVupMode = FALSE;
-
-CFrameworkunifiedVersion g_FrameworkunifiedVersion(MAJORNO, MINORNO, REVISION);
-
-// For NsLog
-FRAMEWORKUNIFIEDLOGPARAM g_FrameworkunifiedLogParams = {
-FRAMEWORKUNIFIEDLOGOPTIONS, {
-ZONE_TEXT_10, ZONE_TEXT_11, ZONE_TEXT_12,
-ZONE_TEXT_13, ZONE_TEXT_14, ZONE_TEXT_15,
-ZONE_TEXT_16, ZONE_TEXT_17, ZONE_TEXT_18,
-ZONE_TEXT_19, ZONE_TEXT_20, ZONE_TEXT_21,
-ZONE_TEXT_22, ZONE_TEXT_23, ZONE_TEXT_24,
-ZONE_TEXT_25, ZONE_TEXT_26, ZONE_TEXT_27,
-ZONE_TEXT_28, ZONE_TEXT_29, ZONE_TEXT_30,
-ZONE_TEXT_31 }, FRAMEWORKUNIFIEDLOGZONES };
-
-EFrameworkunifiedStatus OnFinishLoadFile(HANDLE hApp) { // LCOV_EXCL_START 6: Because the condition cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- int ret;
- TSKM_MAIN_CTX_t* p_main = &g_mainCtx;
- TSKM_EVENT_INFO_t ev;
-
- ret = tskm_pf_nvFileRead(hApp, &p_main->nvInfo);
- if (ret != 0) {
- TSKM_ASSERT(0);
- }
-
- // issure INI_INITCOMP_NVM_ACCESS
- bzero(&ev, sizeof(ev));
- ev.event = TSKM_EV_PRI_REP_WAKEUP_COMP;
- ev.errCode = TSKM_E_OK;
- ev.prm.repWakeupComp.compId = INI_INITCOMP_NVM_ACCESS;
- tskm_handleEvent(p_main, &ev);
-
- return l_eStatus;
-}
-// LCOV_EXCL_STOP
-
-EFrameworkunifiedStatus onDataInitRequest(HANDLE hApp) {
- TSKM_ERR_t l_tskmRet = TSKM_E_OK;
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- TSKM_MAIN_CTX_t* p_main = tskm_getMainCtx();
-
- TSKM_PRINTF(TSKM_LOG_API, "%s()", __FUNCTION__)
-
- if (p_main->bootInfo.startupReason == epswfINVALID) {
- // Before issuing FrameworkunifiedOnStart = Requests before TaskManager became Availabile are not accepted
- TSKM_ASSERT(0);
- l_tskmRet = TSKM_E_STATE;
- } else {
- T_SS_SM_START_DataStructType bootInfo(epswfIGN_ACC, TRUE,
- e_SS_SM_DATA_RESET_MODE_USER,
- epsssUNLOCK, epsstWARMSTART,
- e_SS_SM_DRAM_BACKUP_OK,
- e_SS_SM_RESET_STATUS_NONE, 0);
-
- T_SS_SM_START_ExtDataStructType extBootInfo;
-
- memcpy(&extBootInfo, &p_main->extBootInfo, sizeof(extBootInfo));
-
- // After updating the program,
- // FALSE is notified here because it is notified when data initialization I/F is called at startup
- extBootInfo.isProgUpdated = FALSE;
-
- tskm_dataInitAll(&bootInfo, &extBootInfo);
- }
-
- PCSTR l_senderName = FrameworkunifiedGetMsgSrc(hApp);
- if (NULL != l_senderName) {
- HANDLE hSession = FrameworkunifiedMcOpenSender(hApp, l_senderName);
- if (hSession == NULL) {
- TSKM_ASSERT(0);
- } else {
- TSKM_ASSERT(
- eFrameworkunifiedStatusOK
- == FrameworkunifiedSendMsg(hSession, TSKM_DATAINIT_RESP, sizeof(l_tskmRet),
- &l_tskmRet));
- TSKM_ASSERT(eFrameworkunifiedStatusOK == FrameworkunifiedMcClose(hSession));
- }
- }
-
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus onTransStepRequest(HANDLE hApp) { // LCOV_EXCL_START 6:Because the condition cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_MAIN_CTX_t* p_main = &g_mainCtx;
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- TSKM_EVENT_INFO_t ev;
- bzero(&ev, sizeof(ev));
-
- ev.event = TSKM_EV_LCL_REQ_TRANS_STEP;
- ev.errCode = TSKM_E_OK;
- tskm_handleEvent(p_main, &ev);
-
- return l_eStatus;
-}
-// LCOV_EXCL_STOP
-
-EFrameworkunifiedStatus OnResmAvailability(HANDLE hApp) { // LCOV_EXCL_START 6: Because the condition cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_MAIN_CTX_t* p_main = &g_mainCtx;
-
- if (0 != strcmp(NTFY_ResourceMgr_Availability, FrameworkunifiedGetLastNotification(hApp))) {
- TSKM_ASSERT(0);
- } else if (FrameworkunifiedIsServiceAvailable(hApp)) {
- // Availability = TRUE
-
- p_main->resmFd = tskm_sub_resmInit();
- if (-1 == p_main->resmFd) {
- TSKM_ASSERT(0);
- }
- }
- return eFrameworkunifiedStatusOK;
-}
-// LCOV_EXCL_STOP
-
-//************ NS Framework Callback : must implemet ******************
-EFrameworkunifiedStatus FrameworkunifiedOnInitialization(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- TSKM_PRINTF(TSKM_LOG_STATE, "+");
-
- l_eStatus = FrameworkunifiedRegisterServiceAvailabilityNotification(hApp, NTFY_SS_TaskManager_Availability);
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- TSKM_ASSERT(0);
- }
-
- l_eStatus = FrameworkunifiedPublishServiceAvailability(hApp, FALSE);
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- TSKM_ASSERT(0);
- }
-
- l_eStatus = FrameworkunifiedAttachCallbackToDispatcher(hApp, FRAMEWORKUNIFIED_NS_NPSERVICE,
- NPS_GET_PERS_FILE_ACK,
- OnFinishLoadFile);
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- TSKM_ASSERT(0);
- }
-
- l_eStatus = FrameworkunifiedAttachCallbackToDispatcher(hApp, FRAMEWORKUNIFIED_ANY_SOURCE,
- TSKM_DATAINIT_REQ,
- onDataInitRequest);
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- TSKM_ASSERT(0);
- }
-
- l_eStatus = FrameworkunifiedAttachCallbackToDispatcher(hApp, FrameworkunifiedGetAppName(hApp),
- TSKM_TRANS_STEP_REQ,
- onTransStepRequest);
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- TSKM_ASSERT(0);
- }
-
- l_eStatus = FrameworkunifiedSubscribeNotificationWithCallback(hApp, NTFY_ResourceMgr_Availability, OnResmAvailability);
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- TSKM_ASSERT(0);
- }
-
- TSKM_PRINTF(TSKM_LOG_STATE, "-");
-
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus FrameworkunifiedOnStart(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- TSKM_PRINTF(TSKM_LOG_STATE, "+");
- l_eStatus = OnStart(hApp);
- TSKM_PRINTF(TSKM_LOG_STATE, "-");
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus FrameworkunifiedOnPreStart(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- TSKM_PRINTF(TSKM_LOG_STATE, "+");
- l_eStatus = OnStart(hApp);
- TSKM_PRINTF(TSKM_LOG_STATE, "-");
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus FrameworkunifiedOnBackgroundStart(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- TSKM_PRINTF(TSKM_LOG_STATE, "+");
- l_eStatus = OnStart(hApp);
- TSKM_PRINTF(TSKM_LOG_STATE, "-");
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus FrameworkunifiedOnStop(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- TSKM_MAIN_CTX_t* p_main = &g_mainCtx;
- // Returns Fail to send asynchronous STOP reply to SM
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusFail;
-
- TSKM_EVENT_INFO_t ev;
- bzero(&ev, sizeof(ev));
-
- ev.event = TSKM_EV_LCL_REQ_STOP;
- ev.errCode = TSKM_E_OK;
- tskm_handleEvent(p_main, &ev);
-
- p_main->isOnStopDone = TSKM_TRUE;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus FrameworkunifiedOnPreStop(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eFrameworkunifiedStatusOK;
-}
-
-EFrameworkunifiedStatus FrameworkunifiedOnBackgroundStop(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eFrameworkunifiedStatusOK;
-}
-
-EFrameworkunifiedStatus FrameworkunifiedOnDestroy(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus FrameworkunifiedOnDebugDump(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- TSKM_MAIN_CTX_t* p_main = &g_mainCtx;
- TSKM_ERR_t l_tskmRet;
-
- // Call DebugDump of all running SVCs
- l_tskmRet = tskm_svcsCallDebugDump(&p_main->svcs);
- if (TSKM_E_OK != l_tskmRet) {
- TSKM_ASSERT(0);
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus FrameworkunifiedCreateStateMachine(HANDLE hApp) { // LCOV_EXCL_START 6: Because the condition cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-// LCOV_EXCL_STOP
-
-/*********************************************************
- * System start process
- *********************************************************/
-EFrameworkunifiedStatus OnStart(const HANDLE hApp) {
- TSKM_PRINTF(TSKM_LOG_STATE, "+");
- TSKM_MAIN_CTX_t* const p_main = &g_mainCtx;
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- if (p_main->isOnStartDone == TSKM_FALSE) {
- T_SS_SM_START_DataStructType startupInfo;
- TSKM_EVENT_INFO_t ev;
- l_eStatus = ReadMsg<T_SS_SM_START_DataStructType>(hApp, startupInfo);
- if (l_eStatus != eFrameworkunifiedStatusOK) {
- TSKM_ASSERT(0);
- } else {
- memcpy(&p_main->bootInfo, &startupInfo, sizeof(T_SS_SM_START_DataStructType));
- }
-
- if (0 != tskm_sub_getExtBootInfo(&p_main->extBootInfo)) {
- TSKM_ASSERT(0);
- }
-
- tskm_dataInitAll(&p_main->bootInfo, &p_main->extBootInfo);
-
- tskm_svcsSetBootInfo(&p_main->svcs, &p_main->bootInfo, &p_main->extBootInfo);
- p_main->isOnStartDone = TSKM_TRUE;
-
- l_eStatus = FrameworkunifiedPublishServiceAvailability(hApp, TRUE);
- if (l_eStatus != eFrameworkunifiedStatusOK) {
- TSKM_ASSERT(0);
- } else {
- TSKM_PRINTF(TSKM_LOG_STATE, "Availability TRUE");
- }
-
- // Issure INI_INITCOMP_ON_START
- bzero(&ev, sizeof(ev));
- ev.event = TSKM_EV_PRI_REP_WAKEUP_COMP;
- ev.errCode = TSKM_E_OK;
- ev.prm.repWakeupComp.compId = INI_INITCOMP_ON_START;
- tskm_handleEvent(p_main, &ev);
- }
-
- TSKM_PRINTF(TSKM_LOG_STATE, "-");
- return l_eStatus;
-}
-
-/*********************************************************
- * Argument analysis process
- *********************************************************/
-TSKM_STATIC EFrameworkunifiedStatus argParser(SI_32 argument, PCHAR argumentValue) { // LCOV_EXCL_START 6: for process initialization processing
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- if ('v' == argument) {
- s_isVupMode = TRUE;
- }
-
- return eFrameworkunifiedStatusOK;
-}
-// LCOV_EXCL_STOP
-/*********************************************************
- * Creating process for TSKM internal context
- *********************************************************/
-TSKM_STATIC void ctxCreate(TSKM_MAIN_CTX_t* p_main, int argc, char* argv[]) {
- int ret;
- EFrameworkunifiedStatus taskmanagerRet;
- TSKM_ERR_t tskmRet;
- FrameworkunifiedDefaultCallbackHandler cbFuncs;
- FRAMEWORKUNIFIED_MAKE_DEFAULT_CALLBACK(cbFuncs);
- CustomCommandLineOptions cmdLineOpt = { "v", NULL, argParser };
-
- p_main->state = TSKM_ST_ACCOFF;
- p_main->isOnStartDone = TSKM_FALSE;
-
- // Create dispatcher
- taskmanagerRet = FrameworkunifiedCreateDispatcherWithoutLoop(SS_TASK_MANAGER, p_main->hApp, argc,
- argv, &cbFuncs, TRUE, &cmdLineOpt);
- if (eFrameworkunifiedStatusOK != taskmanagerRet) { // LCOV_EXCL_BR_LINE 6: For process initialization processing
- // LCOV_EXCL_START 6: For process initialization processing
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT_PRINT(0, "%d", taskmanagerRet);
- goto ERROR;
- // LCOV_EXCL_STOP
- }
-
- TSKM_PRINTF(TSKM_LOG_STATE, "s_isVupMode :%s", s_isVupMode ? "TRUE" : "FALSE");
-
- taskmanagerRet = FrameworkunifiedGetDispatcherFD(p_main->hApp, &p_main->nsFd);
- if (taskmanagerRet != eFrameworkunifiedStatusOK) { // LCOV_EXCL_BR_LINE 6: For process initialization processing
- // LCOV_EXCL_START 6: For process initialization processing
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT_PRINT(0, "%d", taskmanagerRet);
- exit(EXIT_FAILURE);
- // LCOV_EXCL_STOP
- }
-
- p_main->sigFd = tskm_pf_sysInit(); // Platform initialization
- if (p_main->sigFd == -1) { // LCOV_EXCL_BR_LINE 6: For process initialization processing
- // LCOV_EXCL_LINE 6: For process initialization processing
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT(0);
- goto ERROR;
- // LCOV_EXCL_STOP
- }
-
- p_main->iFd = inotify_init1(IN_CLOEXEC);
- if (p_main->sigFd == -1) { // LCOV_EXCL_BR_LINE 6: For process initialization processing
- // LCOV_EXCL_LINE 6: For process initialization processing
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT_ERRNO(0);
- goto ERROR;
- // LCOV_EXCL_STOP
- }
-
- // Obtain RESM FDs after waiting for Availability
- p_main->resmFd = -1;
-
- tskmRet = tskm_srvSockCreate(TSKM_SOCKET_NAME, &p_main->sock);
- TSKM_ERR_CHK(tskmRet, TSKM_E_OK, ERROR); // LCOV_EXCL_BR_LINE 6: For process initialization processing
-
- ret = tskm_pf_nvFileInit(p_main->hApp);
- if (ret != 0) { // LCOV_EXCL_BR_LINE 6: For process initialization processing
- // LCOV_EXCL_START 6: For process initialization processing
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT(0);
- goto ERROR;
- // LCOV_EXCL_STOP
- }
-
- ret = tskm_initServiceList(&p_main->svcs, p_main->iFd); // Service to be started
- if (0 != ret) { // LCOV_EXCL_BR_LINE 6: For process initialization processing
- // LCOV_EXCL_START 6: For For process initialization process
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT(0);
- goto ERROR;
- // LCOV_EXCL_STOP
- }
-
- tskm_initWakeupCtx(&p_main->wakeup, s_isVupMode); // Gradual startup info
- tskm_initDownCtx(&p_main->down, s_isVupMode); // Gradual termination info
- return;
-
- // LCOV_EXCL_START 6: For process initialization processing
- ERROR:
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- tskm_pf_exit(EXIT_FAILURE);
- return;
- // LCOV_EXCL_STOP
-}
-
-/*********************************************************
- * Get main context
- *********************************************************/
-TSKM_MAIN_CTX_t*
-tskm_getMainCtx(void) {
- return &g_mainCtx;
-}
-
-/*********************************************************
- * Process initialization process (MAIN function sub)
- *********************************************************/
-int Init_Process(int* rpcFd, int* sockFd, int* maxFd, fd_set* fds, TSKM_MAIN_CTX_t* p_main) {
- int ret;
- uint32_t ii;
-
- TSKM_SRV_CONNENT_LIST_t* p_connList = &p_main->sock.connList;
-
- FD_ZERO(fds);
-
- FD_SET(*rpcFd, fds);
- *maxFd = TSKM_MAX(*rpcFd, *maxFd); // LCOV_EXCL_BR_LINE 6: For process initialization processing
-
- FD_SET(*sockFd, fds);
- *maxFd = TSKM_MAX(*sockFd, *maxFd); // LCOV_EXCL_BR_LINE 6: For process initialization processing
-
- FD_SET(p_main->nsFd, fds);
- *maxFd = TSKM_MAX(p_main->nsFd, *maxFd); // LCOV_EXCL_BR_LINE 6: For process initialization processing
-
- FD_SET(p_main->sigFd, fds);
- *maxFd = TSKM_MAX(p_main->sigFd, *maxFd); // LCOV_EXCL_BR_LINE 6: For process initialization processing
-
- if (-1 != p_main->resmFd) { // LCOV_EXCL_BR_LINE 6: For process initialization processing
- // LCOV_EXCL_START 6: For process initialization processing
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FD_SET(p_main->resmFd, fds);
- *maxFd = TSKM_MAX(p_main->resmFd, *maxFd);
- // LCOV_EXCL_STOP
- }
-
- for (ii = 0; ii < p_connList->num; ii++) { // LCOV_EXCL_BR_LINE 6: For process initialization processing
- // LCOV_EXCL_START 6: For process initialization processing
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_SRV_CONNENT_t* p_conn = &p_connList->conn[ii];
- FD_SET(p_conn->connFd, fds);
- *maxFd = TSKM_MAX(p_conn->connFd, *maxFd);
- // LCOV_EXCL_STOP
- }
-
- TSKM_PRINTF(TSKM_LOG_FUNC, "SELECT IN");
- ret = select(*maxFd + 1, fds, NULL, NULL, NULL);
- if (ret < 1) {
- if (errno != EINTR) {
- TSKM_ASSERT(0);
- }
- return ret;
- }
- TSKM_PRINTF(TSKM_LOG_FUNC, "SELECT OUT");
- return 0;
-}
-
-/*********************************************************
- * Receiving Messages from CONNECT Clients (MAIN Functions Sub)
- *********************************************************/
-void Recv_Msg_FromConnectClient(fd_set* fds, TSKM_MAIN_CTX_t* p_main) {
- uint32_t ii;
- TSKM_SRV_CONNENT_LIST_t* p_connList = &p_main->sock.connList;
-
- // Messages from CONNECT clients
- for (ii = 0; ii < p_connList->num; ii++) {
- TSKM_SRV_CONNENT_t* p_conn = &p_connList->conn[ii];
- if (FD_ISSET(p_conn->connFd, fds)) {
- TSKM_PRINTF(TSKM_LOG_FUNC, "connFd IN");
- TSKM_EVENT_INFO_t ev;
- int ret;
- ret = tskm_sockRcv(p_conn->connFd, &ev);
-
- if (ret < 0) {
- TSKM_ASSERT(0);
- } else {
- TSKM_SVC_CTX_t* p_svc;
-
- if (ret == 0) {
- // Closed Connection
- TSKM_PRINTF(TSKM_LOG_STATE, "DISSCON pid:%d", p_conn->pid);
- ev.event = TSKM_EV_PRI_REP_DISCONNECT;
- ev.errCode = TSKM_E_OK;
- ev.fromPid = p_conn->pid;
- tskm_srvSockDisconnect(&p_main->sock, p_conn);
- p_conn = NULL; // If the connection is lost, it cannot be referenced.
- }
-
- p_svc = tskm_svcsGetSvcByPid(&p_main->svcs, ev.fromPid);
- if (p_svc) { // Events from service
- TSKM_ERR_t tskmRet;
- tskmRet = tskm_svcEventHandle(p_svc, &ev); // Service handler
- if (tskmRet != TSKM_E_OK) {
- TSKM_ASSERT(0);
- }
- }
- if (ev.event != TSKM_EV_NOP) {
- tskm_handleEvent(p_main, &ev); // Main handler
- }
- }
- TSKM_PRINTF(TSKM_LOG_FUNC, "connFd OUT");
- }
- }
-}
-
-/*********************************************************
- * CONNECT Requests (MAIN Functions Sub)
- *********************************************************/
-void Recv_Req_Connect(fd_set* fds, TSKM_MAIN_CTX_t* p_main, int sockFd) {
- // CONNECT requests
- if (FD_ISSET(sockFd, fds)) {
- TSKM_PRINTF(TSKM_LOG_FUNC, "sockFd IN");
-
- TSKM_SRV_CONNENT_t* conn;
- conn = tskm_srvSockConnect(&p_main->sock);
- if (conn == NULL) {
- TSKM_ASSERT(0);
- } else {
- TSKM_SVC_CTX_t* p_svc;
- TSKM_PRINTF(TSKM_LOG_STATE, "CONNECT pid:%d", conn->pid);
-
- p_svc = tskm_svcsGetSvcByPid(&p_main->svcs, conn->pid);
- if (p_svc) {
- TSKM_ERR_t tskmRet;
- TSKM_EVENT_INFO_t ev;
-
- ev.event = TSKM_EV_PRI_REP_CONNECT;
- ev.errCode = TSKM_E_OK;
- ev.fromPid = conn->pid;
- ev.prm.repConnect.connFd = conn->connFd;
-
- tskmRet = tskm_svcEventHandle(p_svc, &ev); // Service handler
- if (tskmRet != TSKM_E_OK) {
- TSKM_ASSERT(0);
- } else if (ev.event != TSKM_EV_NOP) {
- tskm_handleEvent(p_main, &ev); // Main hander
- }
- }
- }
- TSKM_PRINTF(TSKM_LOG_FUNC, "sockFd OUT");
- }
-}
-
-/*********************************************************
- * MAIN Function
- *********************************************************/
-int main(int argc, char* argv[]) {
- RPC_ID rpcId = TSKM_RPC_ID;
- int rpcFd = 0;
- int maxFd = 0;
- int ret;
- fd_set fds;
- TSKM_MAIN_CTX_t* p_main = &g_mainCtx;
-
- // Logging setting
- FRAMEWORKUNIFIED_SET_ZONES();
-
- ctxCreate(p_main, argc, argv); // Initialize context
-
- tskm_sub_init(); // Initialize sub systems
-
- RPC_START_SECURE_SERVER(rpcId);
- RPC_get_fd(rpcId, &rpcFd);
-
- uid_t uid[2];
- gid_t gid[2];
-
- uid[0] = 0;
- gid[0] = 0;
- uid[1] = getuid();
- gid[1] = getgid();
-
- if (RPC_OK != RPC_regist_credential(2, uid, 2, gid)) { // LCOV_EXCL_BR_LINE 6: For process initialization processing
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT(0); // LCOV_EXCL_LINE 6: For process initialization processing
- }
-
- // Start periodic timer thread
- ret = tskm_watch_startTimer();
- if (ret != 0) { // LCOV_EXCL_BR_LINE 6: For process initialization processing
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TSKM_ASSERT(0); // LCOV_EXCL_LINE 6: For process initialization processing
- }
-
- tskm_stateTransit(p_main, TSKM_ST_ACCOFF, TSKM_ST_ACCON);
-
- p_main->isExec = TSKM_TRUE;
- while (p_main->isExec) { // LCOV_EXCL_BR_LINE 6: For process initialization processing
- int sockFd = p_main->sock.sockFd;
-
- // Initialization processing
- if (Init_Process(&rpcFd, &sockFd, &maxFd, &fds, p_main) != 0) { // LCOV_EXCL_BR_LINE 6: For process initialization processing
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- continue; // LCOV_EXCL_LINE 6: For process initialization processing
- }
-
- // RPC API
- if (FD_ISSET(rpcFd, &fds)) {
- RPC_process_API_request(rpcId);
- }
-
- // Process termination signal
- if (FD_ISSET(p_main->sigFd, &fds)) {
- int count = 0;
-
- do {
- TSKM_EVENT_INFO_t ev;
- ev.event = TSKM_EV_SVC_REP_TERM;
-
- count++;
-
- ret = tskm_pf_cleanupProc(p_main->sigFd, &ev.fromPid, &ev.errCode);
- if (ret == -1) {
- TSKM_ASSERT(0);
- break;
- }
-
- TSKM_SVC_CTX_t* p_svc;
-
- p_svc = tskm_svcsGetSvcByPid(&p_main->svcs, ev.fromPid);
- if (p_svc) {
- TSKM_ERR_t tskmRet;
-
- tskmRet = tskm_svcEventHandle(p_svc, &ev); // Service handler
- if (tskmRet != TSKM_E_OK) {
- TSKM_ASSERT(0);
- }
- if (ev.event != TSKM_EV_NOP) {
- tskm_handleEvent(p_main, &ev); // Main handler
- }
- }
- } while (ret == 1 && count < 50);
- }
-
- if (FD_ISSET(p_main->nsFd, &fds)) {
- FrameworkunifiedDispatchProcessWithoutLoop(p_main->hApp);
- }
-
- // EV from RESM
- if (-1 != p_main->resmFd) {
- if (FD_ISSET(p_main->resmFd, &fds)) {
- TSKM_EVENT_INFO_t ev;
- int ret;
- ret = tskm_sub_resmRcv(&ev);
-
- if (-1 == ret) {
- TSKM_ASSERT(0);
- } else {
- tskm_handleEvent(p_main, &ev);
- }
- }
- }
-
- // Messages from connected clients
- Recv_Msg_FromConnectClient(&fds, p_main);
-
- // CONNECT request
- Recv_Req_Connect(&fds, p_main, sockFd);
- }
-
- tskm_srvSockDestory(&p_main->sock);
-
- RPC_end(rpcId);
-
- FrameworkunifiedDestroyDispatcherWithoutLoop(p_main->hApp);
- TSKM_PRINTF(TSKM_LOG_STATE, "tskm end");
-
- sleep(TSKM_CFG_WAIT_SHUTDOWN);
- return 0;
-} // LCOV_EXCL_BR_LINE 10: Final line
-