diff options
author | 2020-11-20 23:36:23 +0900 | |
---|---|---|
committer | 2020-11-22 09:02:55 +0900 | |
commit | 17cf21bcf8a2e29d2cbcf0a313474d2a4ee44f5d (patch) | |
tree | 582a9768558d9eaf261ca5df6136e9de54c95816 /systemservice/task_manager/server/include/system_service/tskm_svc.h | |
parent | 9e86046cdb356913ae026f616e5bf17f6f238aa5 (diff) |
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 <tanikawa.tadao@jp.panasonic.com>
Change-Id: Ifdf743ac0d1893bd8e445455cf0d2c199a011d5c
Diffstat (limited to 'systemservice/task_manager/server/include/system_service/tskm_svc.h')
-rwxr-xr-x | systemservice/task_manager/server/include/system_service/tskm_svc.h | 904 |
1 files changed, 0 insertions, 904 deletions
diff --git a/systemservice/task_manager/server/include/system_service/tskm_svc.h b/systemservice/task_manager/server/include/system_service/tskm_svc.h deleted file mode 100755 index 8b25581..0000000 --- a/systemservice/task_manager/server/include/system_service/tskm_svc.h +++ /dev/null @@ -1,904 +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. - */ -/** - * @file tskm_svc.h - * @brief \~english define of tskm - */ -/** @addtogroup BaseSystem - * @{ - */ -/** @addtogroup system_service - * @ingroup BaseSystem - * @{ - */ -/** @addtogroup task_manager - * @ingroup system_service - * @{ - */ -#ifndef TASK_MANAGER_SERVER_INCLUDE_SYSTEM_SERVICE_TSKM_SVC_H_ -#define TASK_MANAGER_SERVER_INCLUDE_SYSTEM_SERVICE_TSKM_SVC_H_ - - -#include <unistd.h> -#include <sys/types.h> -#include "system_service/tskm_local_type.h" - - -#define TSKM_SVC_WAIT_REQ_MAX (8) // Number of queued requests - -// Service type -typedef enum { - TSKM_SVC_TYPE_NATIVE, // - TSKM_SVC_TYPE_UNKNONW, // -} TSKM_SVC_TYPE_t; - -// Scheduling policy -typedef enum { - TSKM_SVC_POLICY_TSS, // - TSKM_SVC_POLICY_RR, // - TSKM_SVC_POLICY_FIFO, // -} TSKM_SVC_POLICY_t; - -// Life cycle -typedef enum { - TSKM_SVC_LC_ALWAYS, // Resident - TSKM_SVC_LC_ALWAYS_RECOVERABLE, // Resident(Recoverable) - TSKM_SVC_LC_DYNAMIC // Non-resident -} TSKM_SVC_LC_t; - -// CPU allocation: This defined value should match the specification of the second argument of CL_ProcessCreateAttrSetCpuAssign - -typedef enum { - TSKM_SVC_ASSIGN_CPU_AUTO = 0, // Automatic allocation - TSKM_SVC_ASSIGN_CPU_0 = 1, // Fixed to CPU0 - TSKM_SVC_ASSIGN_CPU_1 = 2, // Fixed to CPU1 -} TSKM_SVC_ASSIGN_CPU_t; - -// Service attributes (given by XML) -typedef struct { - TSKM_SVCID_t svcId; // - const char* name; // - const char* path; // - char** args; // - TSKM_SVC_TYPE_t type; // - uint32_t prio; // - TSKM_SVC_POLICY_t policy; // - TSKM_SVC_LC_t lifeCycle; // - uint32_t retryCnt; // - TSKM_SVC_ASSIGN_CPU_t cpuAssign; // - const char* user; // - uint32_t runtimeLimit; // - uint32_t cpuLimit; // - uint32_t memLimit; // - TSKM_BOOL_t shotdownWait; // - uint32_t subgidNum; // - gid_t *subgidList; // -} TSKM_SVC_ATTR_t; - -// Service status -typedef enum { - TSKM_SVC_DORMANT, // During dormant (Not exec) - TSKM_SVC_WAITCONNECT, // Wait for connection - TSKM_SVC_WAKEUP, // Start in progress - TSKM_SVC_RUNNING, // Running (Startup completed) - TSKM_SVC_DOWN, // Termination in progress - TSKM_SVC_FINDOWN, // Termination completed - TSKM_SVC_DISABLE, // Prohibitting startup (exec prohibited) -} TSKM_SVC_STATE_t; - -// Service -typedef struct { // Life cycle - TSKM_SVC_ATTR_t *attr; // Service Attributes ALL - TSKM_SVC_STATE_t state; // Service State ALL - int iFd; // inotifyFd for touch ALL - pid_t pid; // PID of service REQ_WAKEUP - FIN_DOWN - int connFd; // service communication socket DO_WAKEUP - FIN_DOWN - T_SS_SM_START_DataStructType bootInfo; // Boot info REQ_WAKEUP - FIN_DOWN - T_SS_SM_START_ExtDataStructType extBootInfo; // Extended boot info REQ_WAKEUP - FIN_DOWN - - TSKM_BOOL_t isShmDone; // Shared memory initialization completed - TSKM_BOOL_t isStepDone; // Gradual startup completed - TSKM_BOOL_t isAvailable; // Availability reception completed - - uint32_t watchCnt; // Service monitoring counter - uint32_t waitResCnt; // Wait for response to request DO_WAKEUP - WAIT_WAKEUP - uint32_t waitReqCnt; // Wait for request issuance REQ_WAKEUP - DO_WAKEUP - TSKM_GSTEP_REQ_INFO_t request[TSKM_SVC_WAIT_REQ_MAX]; // REQ_WAKEUP - DO_WAKEUP - - uint32_t errTermCnt; // Number of abnormal terminations ALL -} TSKM_SVC_CTX_t; - -// Service list -typedef struct { - uint32_t svcNum; - TSKM_SVC_CTX_t *svcList; -} TSKM_SVCS_CTX_t; - -// State of waiting for service termination -typedef enum { - TSKM_SVC_WAIT_NONE, // No wait - TSKM_SVC_WAIT_TRANSIENT, // Waiting for termination of nonresident service - TSKM_SVC_WAIT_BOTH, // Waiting for termination of resident/nonresident service -} TSKM_SVC_WAIT_STATE_t; - -// Service list - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup tskm_svcsEventHandle - /// \~english @par Summary - /// - /// \~english @param - /// \~english @param [in] p_svcs - /// p_svcs - pointer of services - /// \~english @par - /// p_svcs TSKM_SVCS_CTX_t* - /// \~english @code - /// typedef struct { - /// uint32_t svcNum; // service num - /// TSKM_SVC_CTX_t *svcList; // services list pointer - /// } TSKM_SVCS_CTX_t; - /// @endcode - /// \~english @param [in] p_inEv - /// p_inEv - pointer of input event info - /// \~english @par - /// p_inEv TSKM_EVENT_INFO_t* - /// \~english @code - /// typedef struct _TSKM_EVENT_INFO_t { - /// TSKM_EVENT_t event; - /// TSKM_ERR_t errCode; - /// pid_t fromPid; - /// TSKM_BOOL_t hasExtend; - /// uint32_t extendSize; - /// void *extendPrm; - /// union { - /// // TSKM->PRI - /// TSKM_EV_PRI_REQ_WAKEUP_PRM_t reqWakeup; - /// TSKM_EV_PRI_REQ_DOWN_PRM_t reqDown; - /// // PRI->TSKM - /// TSKM_EV_PRI_REP_WAKEUP_COMP_PRM_t repWakeupComp; - /// TSKM_EV_PRI_REP_DOWN_COMP_PRM_t repDownComp; - /// TSKM_EV_PRI_REP_CONNECT_PRM_t repConnect; - /// TSKM_EV_PRI_RES_WAKEUP_PRM_t resWakeup; - /// TSKM_EV_PRI_RES_DOWN_PRM_t resDown; - /// TSKM_EV_LCL_CHG_SVC_STATE_PRM_t chgSvc; - /// } prm; - /// } TSKM_EVENT_INFO_t; - /// @endcode - /// \~english @param [out] p_outEv - /// p_outEv - pointer of output event info - /// \~english @par - /// p_outEv TSKM_EVENT_INFO_t* - /// \~english @retval - /// \~english @par Preconditions - /// - - /// \~english @par Change of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// - - /// \~english @par Classification - /// - public - /// \~english @par Type - /// - method - /// \~english @par Detail - /// - /// \~english @see None - //////////////////////////////////////////////////////////////////////////////////// -TSKM_ERR_t tskm_svcsEventHandle(TSKM_SVCS_CTX_t* p_svcs, - const TSKM_EVENT_INFO_t* p_inEv, - TSKM_EVENT_INFO_t* p_outEv); - - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup tskm_svcsGetSvcBySvcId - /// \~english @par Summary - /// find service in inputed service list by service id. - /// \~english @param [in] p_svcs - /// p_svcs - pointer of services object - /// \~english @par - /// p_svcs TSKM_SVCS_CTX_t* - /// \~english @code - /// typedef struct { - /// uint32_t svcNum; // service num - /// TSKM_SVC_CTX_t *svcList; // services list pointer - /// } TSKM_SVCS_CTX_t; - /// @endcode - /// \~english @param [in] svcId - /// svcId - service Id - /// \~english @par - /// svcId uint32_t - /// \~english @retval TSKM_SVC_CTX_t* service pointer - /// \~english @retval TSKM_SVC_CTX_t* NULL - /// \~english @par Preconditions - /// - none - /// \~english @par Change of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// - If not find svcId in services list. [NULL] - /// \~english @par Classification - /// - public - /// \~english @par Type - /// - method only - /// \~english @par Detail - /// find service in inputed service list by service id.. If do not find then return NULL pointer. - /// \~english @see getSvcCtxBySvcId - //////////////////////////////////////////////////////////////////////////////////// -TSKM_SVC_CTX_t* tskm_svcsGetSvcBySvcId(TSKM_SVCS_CTX_t* p_svcs, - TSKM_SVCID_t svcId); - - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup tskm_svcsGetSvcByPid - /// \~english @par Summary - /// find service in inputed service list by process id. - /// \~english @param [in] p_svcs - /// p_svcs - pointer of services - /// \~english @par - /// p_svcs TSKM_SVCS_CTX_t* - /// \~english @code - /// typedef struct { - /// uint32_t svcNum; // service num - /// TSKM_SVC_CTX_t *svcList; // services list pointer - /// } TSKM_SVCS_CTX_t; - /// @endcode - /// \~english @param [in] pid - /// pid - process id - /// \~english @par - /// pid pid_t - /// \~english @retval TSKM_SVC_CTX_t* service pointer - /// \~english @retval TSKM_SVC_CTX_t* NULL - /// \~english @par Preconditions - /// - - /// \~english @par Change of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// - If not find process id in services list. [NULL] - /// \~english @par Classification - /// - public - /// \~english @par Type - /// - method only - /// \~english @par Detail - /// find service in inputed service list by process id. If do not find then return NULL pointer. - /// \~english @see getSvcCtxByPid - //////////////////////////////////////////////////////////////////////////////////// -TSKM_SVC_CTX_t* tskm_svcsGetSvcByPid(TSKM_SVCS_CTX_t* p_svcs, pid_t pid); - - - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup tskm_svcsIsWaiting - /// \~english @par Summary - /// Is the service state waiting. - /// \~english @param [in] p_svcs - /// p_svcs - pointer of services - /// \~english @par - /// p_svcs TSKM_SVCS_CTX_t* - /// \~english @code - /// typedef struct { - /// uint32_t svcNum; // service num - /// TSKM_SVC_CTX_t *svcList; // services list pointer - /// } TSKM_SVCS_CTX_t; - /// @endcode - /// \~english @retval TSKM_BOOL_t - /// \~english @par Preconditions - /// - - /// \~english @par Change of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// - If service state is TSKM_SVC_WAITCONNECT and wait response num is 0. [TSKM_FALSE] - /// \~english @par Classification - /// - public - /// \~english @par Type - /// - method only - /// \~english @par Detail - /// Is the service state waiting. \n - /// There are not service's state equal TSKM_SVC_WAITCONNECT or wait respose number > 0 return TSKM_TRUE. - /// \~english @see None - //////////////////////////////////////////////////////////////////////////////////// -TSKM_BOOL_t tskm_svcsIsWaiting(TSKM_SVCS_CTX_t* p_svcs); - - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup tskm_svcsGetSvcTermWaitState - /// \~english @par Summary - /// Get the service which state equanl not equal terminal. - /// \~english @code - /// typedef struct { - /// uint32_t svcNum; // service num - /// TSKM_SVC_CTX_t *svcList; // services list pointer - /// } TSKM_SVCS_CTX_t; - /// @endcode - /// \~english @retval TSKM_SVC_WAIT_STATE_t - /// \~english @par - /// TSKM_SVC_WAIT_STATE_t enum - /// \~english @code - /// typedef enum { - /// TSKM_SVC_WAIT_NONE, // not waiting state - /// TSKM_SVC_WAIT_TRANSIENT, // dynamic service terminal waiting state - /// TSKM_SVC_WAIT_BOTH, // no dynamic/ dyanmic service terminal waiting state - /// } TSKM_SVC_WAIT_STATE_t; - /// @endcode - /// \~english @par Preconditions - /// - none - /// \~english @par Change of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// If all services state equal TSKM_SVC_DORMANT. [TSKM_SVC_WAIT_NONE] - /// If dynamic service. [TSKM_SVC_WAIT_TRANSIENT] - /// If not dynamic service and state not TSKM_SVC_FINDOWN. [TSKM_SVC_WAIT_BOTH] - /// \~english @par Classification - /// - public - /// \~english @par Type - /// - method only - /// \~english @par Detail - /// Get the service which state equanl not equal terminal. \n - /// \~english @see None - //////////////////////////////////////////////////////////////////////////////////// -TSKM_SVC_WAIT_STATE_t tskm_svcsGetSvcTermWaitState(TSKM_SVCS_CTX_t* p_svcs); - - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup tskm_svcsSetBootInfo - /// \~english @par Summary - /// initialize all services boot info. - /// \~english @param [in] p_svcs - /// p_svcs - pointer of services - /// \~english @par - /// p_svcs TSKM_SVCS_CTX_t* - /// \~english @code - /// typedef struct { - /// uint32_t svcNum; // service num - /// TSKM_SVC_CTX_t *svcList; // services list pointer - /// } TSKM_SVCS_CTX_t; - /// @endcode - /// \~english @param [in] p_info - /// p_info - SS_SM_START 'FrameworkunifiedOnStart'/'evStart' message pointer - /// \~english @par - /// p_info T_SS_SM_START_DataStructType* - /// \~english @code - /// Data passed as part of SS_SM_START 'FrameworkunifiedOnStart'/'evStart' message - /// typedef struct T_SS_SM_START_DataStruct { - /// EPWR_WAKEUP_FACTOR_TYPE startupReason; - /// BOOL isUserModeOn; - /// ESMDataResetModeInfo dataResetMode; - /// EPWR_SC_SECURITY_STATUS securityStatus; - /// EPWR_SC_WAKEUP_TYPE wakeupType; - /// ESMDramBackupStatus dramBackupStatus; - /// ESMResetStatus resetStatus; - /// UI_32 errResetCount; - /// T_SS_SM_START_DataStruct - /// } T_SS_SM_START_DataStructType; - /// @endcode - /// \~english @param [in] p_exInfo - /// p_exInfo - FrameworkunifiedOnStart extend info pointer - /// \~english @par - /// p_exInfo T_SS_SM_START_ExtDataStructType* - /// \~english @code - /// /// Extended Parameter for FrameworkunifiedOnStart - /// typedef struct { - /// BOOL isProgUpdated; - /// EMRelaunchStatus relaunchStatus; - /// BOOL isMapUpdated; - /// BOOL isMapDiffUpdated; - /// uint8_t reserved[SS_SM_START_EXT_RSV_SIZE]; - /// } T_SS_SM_START_ExtDataStructType; - /// @endcode - /// \~english @retval TSKM_E_OK - /// \~english @par - /// TSKM_SVC_WAIT_STATE_t enum - /// \~english @par Preconditions - /// - call tskm_dataInitAll() to get boot info - /// \~english @par Change of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// - none - /// \~english @par Classification - /// - pulbic - /// \~english @par Type - /// - method only - /// \~english @par Detail - /// - initialize all services boot info. - /// \~english @see None - //////////////////////////////////////////////////////////////////////////////////// -TSKM_ERR_t tskm_svcsSetBootInfo(TSKM_SVCS_CTX_t* p_svcs, - T_SS_SM_START_DataStructType* p_info, - T_SS_SM_START_ExtDataStructType *p_exInfo); - - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup tskm_svcsAvtiveSvcTerm - /// \~english @par Summary - /// Terminal the dynamic services. - /// \~english @param [in] p_svcs - /// p_svcs - pointer of services - /// \~english @par - /// p_svcs TSKM_SVCS_CTX_t* - /// \~english @code - /// typedef struct { - /// uint32_t svcNum; // service num - /// TSKM_SVC_CTX_t *svcList; // services list pointer - /// } TSKM_SVCS_CTX_t; - /// @endcode - /// \~english @retval TSKM_ERR_t - /// \~english @par - /// TSKM_E_OK - /// TSKM_E_NG - /// \~english @par Preconditions - /// - none - /// \~english @par Change of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// - tskm_svcDownRequest return failed [TSKM_E_NG] - /// \~english @par Classification - /// - pulbic - /// \~english @par Type - /// - method only - /// \~english @par Detail - /// Terminal all the dynamic services which state equal TSKM_SVC_RUNNING and response num equal 0. \n - /// \~english @see tskm_svcDownRequest - //////////////////////////////////////////////////////////////////////////////////// -TSKM_ERR_t tskm_svcsAvtiveSvcTerm(TSKM_SVCS_CTX_t* p_svcs); - - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup tskm_svcsCallDebugDump - /// \~english @par Summary - /// Send DebugDump message to services. - /// \~english @param [in] p_svcs - /// p_svcs - pointer of services - /// \~english @par - /// p_svcs TSKM_SVCS_CTX_t* - /// \~english @code - /// typedef struct { - /// uint32_t svcNum; // service num - /// TSKM_SVC_CTX_t *svcList; // services list pointer - /// } TSKM_SVCS_CTX_t; - /// @endcode - /// \~english @retval TSKM_ERR_t - /// \~english @par - /// TSKM_E_OK - /// TSKM_E_NG - /// \~english @par Preconditions - /// - none - /// \~english @par Change of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// - tskm_sockSend send DebugDump message failed [TSKM_E_NG] - /// \~english @par Classification - /// - public - /// \~english @par Type - /// - method only - /// \~english @par Detail - /// Send DebugDump message to services which state equal TSKM_SVC_RUNNING. \n - /// \~english @see tskm_sockSend - //////////////////////////////////////////////////////////////////////////////////// -TSKM_ERR_t tskm_svcsCallDebugDump(TSKM_SVCS_CTX_t* p_svcs); - - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup tskm_svcsCallLowMem - /// \~english @par Summary - /// Send checking low memory message to services. - /// \~english @param [in] p_svcs - /// p_svcs - pointer of services - /// \~english @par - /// p_svcs TSKM_SVCS_CTX_t* - /// \~english @code - /// typedef struct { - /// uint32_t svcNum; // service num - /// TSKM_SVC_CTX_t *svcList; // services list pointer - /// } TSKM_SVCS_CTX_t; - /// @endcode - /// \~english @retval TSKM_ERR_t - /// \~english @par - /// TSKM_E_OK - /// TSKM_E_NG - /// \~english @par Preconditions - /// - none - /// \~english @par Change of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// - tskm_sockSend send LowMemory message failed [TSKM_E_NG] - /// \~english @par Classification - /// - public - /// \~english @par Type - /// - method only - /// \~english @par Detail - /// Send checking LowMemory message to services which state equal TSKM_SVC_RUNNING. \n - /// \~english @see tskm_sockSend - //////////////////////////////////////////////////////////////////////////////////// -TSKM_ERR_t tskm_svcsCallLowMem(TSKM_SVCS_CTX_t* p_svcs); - -// Service - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup tskm_svcEventHandle - /// \~english @par Summary - /// process event. - /// \~english @param [in] p_svcs - /// p_svcs - pointer of services - /// \~english @par - /// p_svcs TSKM_SVCS_CTX_t* - /// \~english @code - /// typedef struct { - /// uint32_t svcNum; // service num - /// TSKM_SVC_CTX_t *svcList; // services list pointer - /// } TSKM_SVCS_CTX_t; - /// @endcode - /// \~english @param [in][out] p_ev - /// p_ev - event info pointer - /// \~english @par - /// p_ev TSKM_EVENT_INFO_t* - /// \~english @code - /// typedef struct _TSKM_EVENT_INFO_t { - /// TSKM_EVENT_t event; - /// TSKM_ERR_t errCode; - /// pid_t fromPid; - /// TSKM_BOOL_t hasExtend; - /// uint32_t extendSize; - /// void *extendPrm; - /// union { - /// // TSKM->PRI - /// TSKM_EV_PRI_REQ_WAKEUP_PRM_t reqWakeup; - /// TSKM_EV_PRI_REQ_DOWN_PRM_t reqDown; - /// - /// // PRI->TSKM - /// TSKM_EV_PRI_REP_WAKEUP_COMP_PRM_t repWakeupComp; - /// TSKM_EV_PRI_REP_DOWN_COMP_PRM_t repDownComp; - /// TSKM_EV_PRI_REP_CONNECT_PRM_t repConnect; - /// TSKM_EV_PRI_RES_WAKEUP_PRM_t resWakeup; - /// TSKM_EV_PRI_RES_DOWN_PRM_t resDown; - /// TSKM_EV_LCL_CHG_SVC_STATE_PRM_t chgSvc; - /// } prm; - /// } TSKM_EVENT_INFO_t; - /// @endcode - /// \~english @retval TSKM_ERR_t - /// \~english @par - /// TSKM_E_OK - /// \~english @par Preconditions - /// - none - /// \~english @par Change of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// - none - /// \~english @par Classification - /// - public - /// \~english @par Type - /// - method - /// \~english @par Detail - /// process event.\n - /// process connect response.\n - /// process disconnect response. \n - /// process service wakeup request. \n - /// process service down request. \n - /// process service debugdump request. \n - /// process service exit request. \n - /// process service terminal response. \n - /// \~english @see isSvcEvent,connectHandle,disConnectHandle,resWakeupHandle, \n - /// resDownHandle,resDebugDumpHandle,reqExit,repTermHandle \n - //////////////////////////////////////////////////////////////////////////////////// -TSKM_ERR_t tskm_svcEventHandle(TSKM_SVC_CTX_t* p_svc, TSKM_EVENT_INFO_t* p_ev); // p_ev: [IN/OUT] - - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup tskm_svcExec - /// \~english @par Summary - /// start service. - /// \~english @param [in][out] p_svc - /// p_svc - pointer of services - /// \~english @par - /// p_svc TSKM_SVC_CTX_t* - /// \~english @code - /// typedef struct { - /// TSKM_SVC_ATTR_t *attr; // attribute of service - /// TSKM_SVC_STATE_t state; // state of service - /// int iFd; // inotifyFd used by touch - /// pid_t pid; // PID of service - /// int connFd; // service communicate fd - /// T_SS_SM_START_DataStructType bootInfo; // BOOT info - /// T_SS_SM_START_ExtDataStructType extBootInfo; // extend BOOT info - /// TSKM_BOOL_t isShmDone; // shared memory init done - /// TSKM_BOOL_t isStepDone; // step done - /// TSKM_BOOL_t isAvailable; // Availability flag - /// uint32_t watchCnt; // service monitor count - /// uint32_t waitResCnt; // wait response num - /// uint32_t waitReqCnt; // wait request num - /// TSKM_GSTEP_REQ_INFO_t request[TSKM_SVC_WAIT_REQ_MAX]; - /// uint32_t errTermCnt; // exception terminal count - /// } TSKM_SVC_CTX_t; - /// @endcode - /// \~english @retval TSKM_ERR_t - /// \~english @par - /// TSKM_E_OK - /// TSKM_E_NG - /// TSKM_E_STATE - /// \~english @par Preconditions - /// - - /// \~english @par Change of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// - input parameter p_svc is NULL. [TSKM_E_NG] - /// - service state is TSKM_SVC_DISABLE [TSKM_E_STATE] - /// - reqTouch return failed [TSKM_E_NG] - /// - tskm_pf_createProc return failed [TSKM_E_NG] - /// \~english @par Classification - /// - public - /// \~english @par Type - /// - method - /// \~english @par Detail - /// start service which state is TSKM_SVC_DORMANT.\n - /// \~english @see svcExec, reqTouch, tskm_pf_createProc - //////////////////////////////////////////////////////////////////////////////////// -TSKM_ERR_t tskm_svcExec(TSKM_SVC_CTX_t* p_svc); - - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup tskm_svcWakeupRequest - /// \~english @par Summary - /// Send started request to service. - /// \~english @param [in][out] p_svc - /// p_svc - pointer of service - /// \~english @par - /// p_svc TSKM_SVC_CTX_t* - /// \~english @code - /// typedef struct { - /// TSKM_SVC_ATTR_t *attr; // attribute of service - /// TSKM_SVC_STATE_t state; // state of service - /// int iFd; // inotifyFd used by touch - /// pid_t pid; // PID of service - /// int connFd; // service communicate fd - /// T_SS_SM_START_DataStructType bootInfo; // BOOT info - /// T_SS_SM_START_ExtDataStructType extBootInfo; // extend BOOT info - /// TSKM_BOOL_t isShmDone; // shared memory init done - /// TSKM_BOOL_t isStepDone; // step done - /// TSKM_BOOL_t isAvailable; // Availability flag - /// uint32_t watchCnt; // service monitor count - /// uint32_t waitResCnt; // wait response num - /// uint32_t waitReqCnt; // wait request num - /// TSKM_GSTEP_REQ_INFO_t request[TSKM_SVC_WAIT_REQ_MAX]; - /// uint32_t errTermCnt; // exception terminal count - /// } TSKM_SVC_CTX_t; - /// @endcode - /// \~english @param [in] p_req - /// p_req - pointer of request - /// \~english @par - /// p_req TSKM_GSTEP_REQ_INFO_t* - /// \~english @code - /// typedef struct { - /// TSKM_SVCID_t svcId; // service ID - /// TSKM_LOCAL_STEP_t localStep; // local step id - /// } TSKM_GSTEP_REQ_INFO_t; - /// @endcode - /// \~english @retval TSKM_ERR_t - /// \~english @par - /// TSKM_E_OK - /// TSKM_E_NG - /// TSKM_E_STATE - /// \~english @par Preconditions - /// - none - /// \~english @par Change of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// - Input parameter p_svc is NULL. [TSKM_E_STATE] - /// - Service state is TSKM_SVC_DISABLE [TSKM_E_STATE] - /// - wakeupRequest return failed [TSKM_E_NG] - /// \~english @par Classification - /// - public - /// \~english @par Type - /// - method - /// \~english @par Detail - /// Send started request to service. If service do not connect, save the request.\n - /// Send request again when service connect. \n - /// \~english @see svcWakeupRequest - //////////////////////////////////////////////////////////////////////////////////// -TSKM_ERR_t tskm_svcWakeupRequest(TSKM_SVC_CTX_t* p_svc, - TSKM_GSTEP_REQ_INFO_t* p_req); - - - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup tskm_svcDownRequest - /// \~english @par Summary - /// Send service down request to service. - /// \~english @param [in][out] p_svc - /// p_svc - pointer service - /// \~english @par - /// p_svc TSKM_SVC_CTX_t* - /// \~english @code - /// typedef struct { - /// TSKM_SVC_ATTR_t *attr; // attribute of service - /// TSKM_SVC_STATE_t state; // state of service - /// int iFd; // inotifyFd used by touch - /// pid_t pid; // PID of service - /// int connFd; // service communicate fd - /// T_SS_SM_START_DataStructType bootInfo; // BOOT info - /// T_SS_SM_START_ExtDataStructType extBootInfo; // extend BOOT info - /// TSKM_BOOL_t isShmDone; // shared memory init done - /// TSKM_BOOL_t isStepDone; // step done - /// TSKM_BOOL_t isAvailable; // Availability flag - /// uint32_t watchCnt; // service monitor count - /// uint32_t waitResCnt; // wait response num - /// uint32_t waitReqCnt; // wait request num - /// TSKM_GSTEP_REQ_INFO_t request[TSKM_SVC_WAIT_REQ_MAX]; - /// uint32_t errTermCnt; // exception terminal count - /// } TSKM_SVC_CTX_t; - /// @endcode - /// \~english @param [in] p_req - /// p_req - request pointer - /// \~english @par - /// p_req TSKM_GSTEP_REQ_INFO_t* - /// \~english @code - /// typedef struct { - /// TSKM_SVCID_t svcId; // service ID - /// TSKM_LOCAL_STEP_t localStep; // local step id - /// } TSKM_GSTEP_REQ_INFO_t; - /// @endcode - /// \~english @retval TSKM_ERR_t - /// \~english @par - /// TSKM_E_OK - /// TSKM_E_NG - /// \~english @par Preconditions - /// - - /// \~english @par Change of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// - Send service down request failed [TSKM_E_NG] - /// \~english @par Classification - /// - public - /// \~english @par Type - /// - method - /// \~english @par Detail - /// If service state is commounicated(TSKM_SVC_WAKEUP, TSKM_SVC_RUNNING), \n - /// send service down request and set state as TSKM_SVC_DOWN.\n - /// \~english @see tskm_svcIsCommunicatable,tskm_sockSend - //////////////////////////////////////////////////////////////////////////////////// -TSKM_ERR_t tskm_svcDownRequest(TSKM_SVC_CTX_t* p_svc, - TSKM_GSTEP_REQ_INFO_t* p_req); - - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup tskm_svcDisableRequest - /// \~english @par Summary - /// - /// \~english @param [in][out] p_svc - /// p_svc - pointer of service - /// \~english @par - /// p_svc TSKM_SVC_CTX_t* - /// \~english @code - /// typedef struct { - /// TSKM_SVC_ATTR_t *attr; // attribute of service - /// TSKM_SVC_STATE_t state; // state of service - /// int iFd; // inotifyFd used by touch - /// pid_t pid; // PID of service - /// int connFd; // service communicate fd - /// T_SS_SM_START_DataStructType bootInfo; // BOOT info - /// T_SS_SM_START_ExtDataStructType extBootInfo; // extend BOOT info - /// TSKM_BOOL_t isShmDone; // shared memory init done - /// TSKM_BOOL_t isStepDone; // step done - /// TSKM_BOOL_t isAvailable; // Availability flag - /// uint32_t watchCnt; // service monitor count - /// uint32_t waitResCnt; // wait response num - /// uint32_t waitReqCnt; // wait request num - /// TSKM_GSTEP_REQ_INFO_t request[TSKM_SVC_WAIT_REQ_MAX]; - /// uint32_t errTermCnt; // exception terminal count - /// } TSKM_SVC_CTX_t; - /// @endcode - /// \~english @retval TSKM_ERR_t - /// \~english @par - /// TSKM_E_OK - /// TSKM_E_STATE - /// \~english @par Preconditions - /// - - /// \~english @par Change of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// - If service state is not TSKM_SVC_DORMANT and TSKM_SVC_DISABLE. [TSKM_E_STATE] - /// \~english @par Classification - /// - public - /// \~english @par Type - /// - method - /// \~english @par Detail - /// Set service state as TSKM_SVC_DISABLE if state is TSKM_SVC_DORMANT. - /// \~english @see None - //////////////////////////////////////////////////////////////////////////////////// -TSKM_ERR_t tskm_svcDisableRequest(TSKM_SVC_CTX_t* p_svc); - - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup tskm_svcDisableRequest - /// \~english @par Summary - /// Set service state as start available. - /// \~english @param [in][out] p_svc - /// p_svc - Pointer to service - /// \~english @par - /// p_svc TSKM_SVC_CTX_t* - /// \~english @code - /// typedef struct { - /// TSKM_SVC_ATTR_t *attr; // attribute of service - /// TSKM_SVC_STATE_t state; // state of service - /// int iFd; // inotifyFd used by touch - /// pid_t pid; // PID of service - /// int connFd; // service communicate fd - /// T_SS_SM_START_DataStructType bootInfo; // BOOT info - /// T_SS_SM_START_ExtDataStructType extBootInfo; // extend BOOT info - /// TSKM_BOOL_t isShmDone; // shared memory init done - /// TSKM_BOOL_t isStepDone; // step done - /// TSKM_BOOL_t isAvailable; // Availability flag - /// uint32_t watchCnt; // service monitor count - /// uint32_t waitResCnt; // wait response num - /// uint32_t waitReqCnt; // wait request num - /// TSKM_GSTEP_REQ_INFO_t request[TSKM_SVC_WAIT_REQ_MAX]; - /// uint32_t errTermCnt; // exception terminal count - /// } TSKM_SVC_CTX_t; - /// @endcode - /// \~english @retval TSKM_ERR_t - /// \~english @par - /// TSKM_E_OK - /// \~english @par Preconditions - /// - - /// \~english @par Change of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// - none - /// \~english @par Classification - /// - public - /// \~english @par Type - /// - method - /// \~english @par Detail - /// Set service state as start available which state is disable(TSKM_SVC_DISABLE). - /// \~english @see None - //////////////////////////////////////////////////////////////////////////////////// -TSKM_ERR_t tskm_svcEnableRequest(TSKM_SVC_CTX_t* p_svc); - - ///////////////////////////////////////////////////////////////////////////////////// - /// \ingroup tskm_svcIsCommunicatable - /// \~english @par Summary - /// Whether service is Communicatable. - /// \~english @param [in] p_svc - /// p_svc - pointer of service - /// \~english @par - /// p_svc TSKM_SVC_CTX_t* - /// \~english @code - /// typedef struct { - /// TSKM_SVC_ATTR_t *attr; // attribute of service - /// TSKM_SVC_STATE_t state; // state of service - /// int iFd; // inotifyFd used by touch - /// pid_t pid; // PID of service - /// int connFd; // service communicate fd - /// T_SS_SM_START_DataStructType bootInfo; // BOOT info - /// T_SS_SM_START_ExtDataStructType extBootInfo; // extend BOOT info - /// TSKM_BOOL_t isShmDone; // shared memory init done - /// TSKM_BOOL_t isStepDone; // step done - /// TSKM_BOOL_t isAvailable; // Availability flag - /// uint32_t watchCnt; // service monitor count - /// uint32_t waitResCnt; // wait response num - /// uint32_t waitReqCnt; // wait request num - /// TSKM_GSTEP_REQ_INFO_t request[TSKM_SVC_WAIT_REQ_MAX]; - /// uint32_t errTermCnt; // exception terminal count - /// } TSKM_SVC_CTX_t; - /// @endcode - /// \~english @retval TSKM_BOOL_t - /// \~english @par - /// TSKM_FALSE - /// TSKM_TRUE - /// \~english @par Preconditions - /// - - /// \~english @par Change of the internal state - /// - The internal state is not changed. - /// \~english @par Causes of failures - /// - If input parameter p_svc is NULL. [TSKM_FALSE] - /// - If input parameter p_svc->attr->type is TSKM_SVC_TYPE_UNKNONW. [TSKM_FALSE] - /// - If service state is TSKM_SVC_DORMANT or TSKM_SVC_WAITCONNECT or - /// TSKM_SVC_FINDOWN orTSKM_SVC_DISABLE. [TSKM_FALSE] - /// \~english @par Classification - /// - public - /// \~english @par Type - /// - method - /// \~english @par Detail - /// Whether service is Communicatable. \n - /// If service state is TSKM_SVC_WAKEUP or TSKM_SVC_RUNNING or TSKM_SVC_DOWN, return TSKM_TRUE. \n - /// \~english @see None - //////////////////////////////////////////////////////////////////////////////////// -TSKM_BOOL_t tskm_svcIsCommunicatable(TSKM_SVC_CTX_t* p_svc); - -#endif // TASK_MANAGER_SERVER_INCLUDE_SYSTEM_SERVICE_TSKM_SVC_H_ -/** @}*/ -/** @}*/ -/** @}*/ |