/* * @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 ss_system_manager_conf.h * @brief \~english This file contains declaration of structures T_SS_SM_INIT_HOOK_IN_PARAM, T_SS_SM_INIT_HOOK_OUT_PARAM and api initial Hook */ /** @addtogroup BaseSystem * @{ */ /** @addtogroup system_service * @ingroup BaseSystem * @{ */ /** @addtogroup config * @ingroup system_service * @{ */ #ifndef CONFIG_LIBRARY_SYSTEM_MANAGER_CONFIG_INCLUDE_SYSTEM_SERVICE_SS_SYSTEM_MANAGER_CONF_H_ #define CONFIG_LIBRARY_SYSTEM_MANAGER_CONFIG_INCLUDE_SYSTEM_SERVICE_SS_SYSTEM_MANAGER_CONF_H_ #include #include #include /** * @struct T_SS_SM_INIT_HOOK * @brief \~english Version up mode, Callback function */ typedef struct T_SS_SM_INIT_HOOK { //! \~english Version up mode BOOL bIsVupMode; //! \~english Call back function EFrameworkunifiedStatus (*cbRebootNoticeFunc)(HANDLE hApp); T_SS_SM_INIT_HOOK() : bIsVupMode(FALSE), cbRebootNoticeFunc(NULL) { } } T_SS_SM_INIT_HOOK_IN_PARAM; /** * @struct T_SS_SM_INIT_HOOK_OUT_PARAM * @brief \~english Not in OOM Killer's service object, Group Relaunch service. */ typedef struct { std::vector protectedSvcs; //! \~english Not in OOM Killer's service object. std::vector groupRelaunchSvcs; //! \~english Group Relaunch service. } T_SS_SM_INIT_HOOK_OUT_PARAM; ///////////////////////////////////////////////////////////////////////////////////// /// \ingroup ss_sm_initHook /// \~english @par Summary /// /// \~english @param [in] hApp /// HANDLE - HANDLE Application /// \~english @param [in] inPrm /// T_SS_SM_INIT_HOOK_IN_PARAM - /// \~english @param [in] outPrm /// T_SS_SM_INIT_HOOK_OUT_PARAM - /// \~english @par /// T_SS_SM_INIT_HOOK_IN_PARAM struct /// \~english @code /// typedef struct T_SS_SM_INIT_HOOK { /// BOOL bIsVupMode; /* version up model */ /// EFrameworkunifiedStatus (*cbRebootNoticeFunc)(HANDLE hApp); /* call back function */ /// T_SS_SM_INIT_HOOK() /// : bIsVupMode(FALSE), /// cbRebootNoticeFunc(NULL) { /// } /* constructor */ /// } T_SS_SM_INIT_HOOK_IN_PARAM; /// @endcode /// \~english @par /// T_SS_SM_INIT_HOOK_IN_PARAM struct /// \~english @code /// typedef struct { /// std::vector protectedSvcs; /* OOM Killer's protected service */ /// std::vector groupRelaunchSvcs; /* group relunch service */ /// } T_SS_SM_INIT_HOOK_OUT_PARAM; /// @endcode /// \~english @retval eFrameworkunifiedStatusOK Success /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal) /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) /// \~english @par Preconditions /// - None /// \~english @par Change of the internal state /// - save inPrm->cbRebootNoticeFunc to s_confCtx.cbRebootNoticeFunc. /// \~english @par Causes of failures /// - /// - System Manager of the session does not exist. [eFrameworkunifiedStatusNullPointer] /// - System Manager handle for the session is NULL. [eFrameworkunifiedStatusInvldHandle] /// - System Manager handle type for the session is not a transmission type. [eFrameworkunifiedStatusInvldHndlType] /// - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] /// - Transmission for the file descriptor of System Manager message for the session is invalid. \n /// [eFrameworkunifiedStatusErrNoEBADF] /// - Place to interrupt by the system call (signal) has occurred during the transmission of \n /// the System Manager message for the session. [eFrameworkunifiedStatusErrNoEINTR] /// - Size of the transmission buffer of the System Manager message for the session is invalid. \n /// [eFrameworkunifiedStatusInvldBufSize] /// - Any error has occurred at the time of transmission of the System Manager message for the session. \n /// [eFrameworkunifiedStatusFail] /// - Transmission of System Manager message for the session fails to shared memory access. \n /// [eFrameworkunifiedStatusErrOther] /// \~english @par Classification /// Public /// \~english @par Type /// Sync /// \~english @par Detail /// get env val from application,and write these to Launch Config file. /// \~english @par /// eFrameworkunifiedStatus:Result /// - eFrameworkunifiedStatusOK:Success /// - Except eFrameworkunifiedStatusOK:Fail /// \~english @see None //////////////////////////////////////////////////////////////////////////////////// EFrameworkunifiedStatus ss_sm_initHook(HANDLE hApp, const T_SS_SM_INIT_HOOK_IN_PARAM *inPrm, T_SS_SM_INIT_HOOK_OUT_PARAM *outPrm); #endif // CONFIG_LIBRARY_SYSTEM_MANAGER_CONFIG_INCLUDE_SYSTEM_SERVICE_SS_SYSTEM_MANAGER_CONF_H_ /** @}*/ /** @}*/ /** @}*/