From 947c78887e791596d4a5ec2d1079f8b1a049628b Mon Sep 17 00:00:00 2001 From: takeshi_hoshina Date: Tue, 27 Oct 2020 11:16:21 +0900 Subject: basesystem 0.1 --- .../include/system_service/ss_system_manager_if.h | 335 +++++++++++++++++++++ 1 file changed, 335 insertions(+) create mode 100644 systemservice/interface_unified/library/include/system_service/ss_system_manager_if.h (limited to 'systemservice/interface_unified/library/include/system_service/ss_system_manager_if.h') diff --git a/systemservice/interface_unified/library/include/system_service/ss_system_manager_if.h b/systemservice/interface_unified/library/include/system_service/ss_system_manager_if.h new file mode 100644 index 00000000..e6b4f8de --- /dev/null +++ b/systemservice/interface_unified/library/include/system_service/ss_system_manager_if.h @@ -0,0 +1,335 @@ +/* + * @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. + */ + +/////////////////////////////////////////////////////////////////////////////// +/// \ingroup system_manager +/// \file ss_system_manager_if.h +/// \brief This file supports the System Manager client interface. +/// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef SS_SYSTEM_MANAGER_IF_H_ // NOLINT (build/header_guard) +#define SS_SYSTEM_MANAGER_IF_H_ + +#include +#include +#include "system_service/ss_system_if.h" +#include "system_service/ss_error_event_common.h" +#include "system_service/ss_power_service.h" + +/// \ingroup system_manager +/// \brief Boot mode information +typedef enum { + e_SS_SM_BOOT_MODE_INVALID = -1 + , e_SS_SM_BOOT_MODE_APPLICATION + , e_SS_SM_BOOT_MODE_PROGRAMMING +}ESMBootModeInfo; + +/// \ingroup system_manager +/// \brief Data reset mode information +typedef enum { + e_SS_SM_DATA_RESET_MODE_NONE + , e_SS_SM_DATA_RESET_MODE_USER + , e_SS_SM_DATA_RESET_MODE_FACTORY + , e_SS_SM_DATA_RESET_MODE_PROGUPDATE // cannot use this +}ESMDataResetModeInfo; + +/// \ingroup system_manager +/// \brief Program update status +typedef UI_32 SMProgUpdateState; +#define SS_SM_PROG_UPDATE_STATE_NONE 0x0000 +#define SS_SM_PROG_UPDATE_STATE_UPDATED 0x0001 +#define SS_SM_PROG_UPDATE_STATE_MAP_UPDATED 0x0002 +#define SS_SM_PROG_UPDATE_STATE_MAPDIFF_UPDATED 0x0004 + +/// Set Next Wakeup type information +typedef enum { + e_SS_SM_NEXT_WAKEUP_TYPE_NONE = 0 + , e_SS_SM_NEXT_WAKEUP_TYPE_COLD + , e_SS_SM_NEXT_WAKEUP_TYPE_HOT +}ESMNextWakeupType; + +/// \ingroup system_manager +/// \brief DRAM backup status +typedef enum { + e_SS_SM_DRAM_BACKUP_UNSET = -1 + , e_SS_SM_DRAM_BACKUP_OK + , e_SS_SM_DRAM_BACKUP_NG +}ESMDramBackupStatus; + +/// \ingroup system_manager +/// \brief Reset status +typedef enum { + e_SS_SM_RESET_STATUS_UNSET = -1 + , e_SS_SM_RESET_STATUS_NONE + , e_SS_SM_RESET_STATUS_NG + , e_SS_SM_RESET_STATUS_IMMEDIATE +}ESMResetStatus; + +/// \ingroup system_manager +/// \brief Relaunch status +typedef enum { + e_SS_SM_RELAUNCH_STATUS_NONE + , e_SS_SM_RELAUNCH_STATUS_SAFE + , e_SS_SM_RELAUNCH_STATUS_ERR +}EMRelaunchStatus; + + +/// \ingroup system_manager +/// \brief CPU Reset Reason +typedef enum { + e_SS_SM_CPU_RESET_REASON_INVALID = -1 + , e_SS_SM_CPU_RESET_REASON_NORMAL = 0 + , e_SS_SM_CPU_RESET_REASON_DATA_RESET + , e_SS_SM_CPU_RESET_REASON_USER_FORCE_RESET + , e_SS_SM_CPU_RESET_REASON_GENERIC + , e_SS_SM_CPU_RESET_REASON_GENERIC_ERR = e_SS_SM_CPU_RESET_REASON_GENERIC + , e_SS_SM_CPU_RESET_REASON_DSP_ERR + , e_SS_SM_CPU_RESET_REASON_IMMRESET_NORMAL + , e_SS_SM_CPU_RESET_REASON_CRITICAL_ERR // DRAM backup will be discarded after reset +}ESMCpuResetReason; + +/// \ingroup system_manager +/// \brief CPU Reset Info +typedef struct T_SystemManagerCpuResetInfo { +#define SS_SM_RESET_MSG_STR_SIZE 64 +#define SS_SM_SUFFIX_STR_SIZE 32 + ESMCpuResetReason resetReason; + CHAR messageStr[SS_SM_RESET_MSG_STR_SIZE]; + CHAR suffixStr[SS_SM_SUFFIX_STR_SIZE]; + T_SystemManagerCpuResetInfo + () : resetReason(e_SS_SM_CPU_RESET_REASON_INVALID) { + } +}TSystemManagerCpuResetInfo; + + +/// \ingroup system_manager +/// \brief Data Reset Reason +typedef enum { + e_SS_SM_DATA_RESET_TYPE_USER = 0 + , e_SS_SM_DATA_RESET_TYPE_FACTORY // AKA Shipment Mode + , e_SS_SM_DATA_RESET_TYPE_CONFIGURATION + , e_SS_SM_DATA_RESET_TYPE_PROGUPDATE // cannot use this +}ESMDataResetType; + +typedef enum { + e_SS_SM_SVC_WAKEUP_STATUS_COMPLETE = 0x01 +}ESMServiceWakeupStatus; + +/// \ingroup system_manager +/// \brief Data Reset Reason +typedef struct T_SS_BootModeListStruct { + ESMBootModeInfo hostBootMode; + EPWR_SC__CWORD56__BOOT_MODE_TYPE _CWORD56_BootMode; +} TSS_BootModeListStruct; + +//**************************************************************************** +/// \ingroup system_manager * +/// Data passed in the NTFY_SSSystemMgrPowerOnOff and * +/// NTFY_SSSystemMgrUserMode notification messages * + +/// \ingroup system_manager +typedef struct T_SS_SM_UserModeOnOffNotification_Struct { // * + BOOL isUserModeOn; // * + EPWR_WAKEUP_FACTOR_TYPE startupReason; // * + EPWR_USER_MODE_CHANGE_REASON_TYPE userModeChangeReason; // * + T_SS_SM_UserModeOnOffNotification_Struct // * + () : isUserModeOn(FALSE), // * + startupReason(epswfINVALID), // * + userModeChangeReason(epsumcrNOT_AVAILABLE) { // * + } // * + T_SS_SM_UserModeOnOffNotification_Struct // * + (BOOL f_bUserMode, // * + EPWR_WAKEUP_FACTOR_TYPE f_startupReason, // * + EPWR_USER_MODE_CHANGE_REASON_TYPE f_changeReason) // * + : isUserModeOn(f_bUserMode), // * + startupReason(f_startupReason), // * + userModeChangeReason(f_changeReason) { // * + } // * + // * +} T_SS_SM_UserModeOnOffNotification_StructType; // * +// * +// End of Data passed as part of NTFY_SSSystemMgrPowerOnOff notification ... * +//**************************************************************************** + + +//**************************************************************************** +/// \ingroup system_manager +/** + * \~english Parameters of the following message. \n + * SS_SM_START 'FrameworkunifiedOnStart'/'evStart' \n + * SS_SM_PRE_START 'FrameworkunifiedOnPreStart'/'evPreStart' \n + * SS_SM_BACKGROUND_START 'FrameworkunifiedOnBackgroundStart'/'evBackgroundStart' \n + */ +typedef struct T_SS_SM_START_DataStruct { + EPWR_WAKEUP_FACTOR_TYPE startupReason; //!< \~english + BOOL isUserModeOn; //!< \~english + ESMDataResetModeInfo dataResetMode; //!< \~english + EPWR_SC_SECURITY_STATUS securityStatus; //!< \~english + EPWR_SC_WAKEUP_TYPE wakeupType; //!< \~english + ESMDramBackupStatus dramBackupStatus; //!< \~english + ESMResetStatus resetStatus; //!< \~english + UI_32 errResetCount; //!< \~english + /** + * \~english Constructor + */ + T_SS_SM_START_DataStruct + () : startupReason(epswfINVALID), + isUserModeOn(FALSE), + dataResetMode(e_SS_SM_DATA_RESET_MODE_NONE), + securityStatus(epsssINVALID), + wakeupType(epsstINVALID), + dramBackupStatus(e_SS_SM_DRAM_BACKUP_UNSET), + resetStatus(e_SS_SM_RESET_STATUS_UNSET), + errResetCount(0) {} + /** + * \~english Constructor + */ + T_SS_SM_START_DataStruct + (EPWR_WAKEUP_FACTOR_TYPE f_startupReason, + BOOL f_isUserModeOn, + ESMDataResetModeInfo f_dataResetMode, + EPWR_SC_SECURITY_STATUS f_securityStatus, + EPWR_SC_WAKEUP_TYPE f_wakeupType, + ESMDramBackupStatus f_dramBackupStatus, + ESMResetStatus f_resetStatus, + UI_32 f_resetCount) + : startupReason(f_startupReason), + isUserModeOn(f_isUserModeOn), + dataResetMode(f_dataResetMode), + securityStatus(f_securityStatus), + wakeupType(f_wakeupType), + dramBackupStatus(f_dramBackupStatus), + resetStatus(f_resetStatus), + errResetCount(f_resetCount) {} +} T_SS_SM_START_DataStructType; +// * +// End of Data passed as part of SS_SM_START 'FrameworkunifiedOnStart'/'evStart' message * +//**************************************************************************** + +//**************************************************************************** +/// \ingroup system_manager +/// Data passed as part of SS_SM_STOP 'FrameworkunifiedOnStop'/'evStop' message * +typedef struct T_SS_SM_STOP_DataStruct { // * + EPWR_SHUTDOWN_TRIGGER_TYPE shutdownTrigger; // * + EPWR_USER_MODE_TYPE lastUserMode; // * +} T_SS_SM_STOP_DataStructType; // * +// * +// End of Data passed as part of SS_SM_STOP 'FrameworkunifiedOnStop'/'evStop' message // * +//**************************************************************************** + +//**************************************************************************** +/// \ingroup system_manager +/// Extended Parameter for FrameworkunifiedOnStart * +typedef struct { // * +#define SS_SM_START_EXT_INFO_SIZE 64 // * +#define SS_SM_START_EXT_BODY_SIZE ( sizeof(BOOL) \ + + sizeof(EMRelaunchStatus) \ + + sizeof(BOOL) \ + + sizeof(BOOL) \ + ) + +#define SS_SM_START_EXT_RSV_SIZE SS_SM_START_EXT_INFO_SIZE \ + - SS_SM_START_EXT_BODY_SIZE // * + BOOL isProgUpdated; // * + EMRelaunchStatus relaunchStatus; // * + BOOL isMapUpdated; // * + BOOL isMapDiffUpdated; // * + uint8_t reserved[SS_SM_START_EXT_RSV_SIZE]; // * +} T_SS_SM_START_ExtDataStructType; // * +// * +// End of Extended Parameter for FrameworkunifiedOnStart * +//**************************************************************************** + +//**************************************************************************** +/// \ingroup system_manager +/// Extended Parameter for FrameworkunifiedOnStop * +typedef struct { // * +#define SS_SM_STOP_EXT_INFO_SIZE 64 // * +#define SS_SM_STOP_EXT_BODY_SIZE (sizeof(BOOL)) // * +#define SS_SM_STOP_EXT_RSV_SIZE SS_SM_STOP_EXT_INFO_SIZE \ + - SS_SM_STOP_EXT_BODY_SIZE // * + BOOL isProgUpdated; // * + uint8_t reserved[SS_SM_STOP_EXT_RSV_SIZE]; // * +}T_SS_SM_STOP_ExtDataStructType; // * +// * +// End of Extended Parameter for FrameworkunifiedOnStop * +//**************************************************************************** + +struct SMErrorEventNtfData { +#define SM_MODULE_NAME_SIZE 64 + EErrorEventType EventType; + CHAR ModuleName[SM_MODULE_NAME_SIZE]; + BOOL isNeedReboot; +}; + +//************************************************************************* +// Boot Micro Logging Protocol * +// * +enum eSMBootMicroResetReason { + SS_SM_BOOT_MICRO_RESET_REASON_SELF_RESET = 0, + SS_SM_BOOT_MICRO_RESET_REASON_USER_FORCE_RESET, + SS_SM_BOOT_MICRO_RESET_REASON_DSP_RESET, + SS_SM_BOOT_MICRO_RESET_REASON_HB_TIMEOUT +}; +// * +// End of Boot Micro Logging Protocol * +//************************************************************************* + + +//**************************************************************************** +/// \ingroup system_manager * +/// Error Event Logging enumerations * +/// +enum eSMUserLogType { + e_SS_SM_CAPTURE_ALL_LOGS = 1, //!< \~english Capture all logs + e_SS_SM_SCREEN_CAPTURE, //!< \~english Capture screenshot + e_SS_SM_CAPTURE_INTERFACEUNIFIED_LOGS, //!< \~english Capture application log + e_SS_SM_USER_FORCE_RESET, //!< \~english Capture logs are forcibily reset + e_SS_SM_CAPTURE_DEV_LOGS, //!< \~english Capture device log + e_SS_SM_CAPTURE_MODULE_LOGS, //!< \~english Capture debug log + e_SS_SM_CAPTURE_DTC_LOGS, //!< \~english Capture DTC event log + e_SS_SM_CAPTURE_NAVI_LOGS, //!< \~english Capture Navi event log + e_SS_SM_CAPTURE_GROUP_RELAUNCH //!< \~english Capture log by Group Relaunch +}; +// * +// Error Event Logging enumerations * +//**************************************************************************** + +//**************************************************************************** +/// \ingroup system_manager * +/// \brief Error Event Logging Info * +typedef struct T_SystemManagerLoggingRequestInfo { +#define SS_SM_LOG_MSG_STR_SIZE 64 + eSMUserLogType logType; + CHAR messageStr[SS_SM_LOG_MSG_STR_SIZE]; + CHAR suffixStr[SS_SM_SUFFIX_STR_SIZE]; +}TSystemManagerLoggingRequestInfo; +// +// Error Event Logging Info * +//**************************************************************************** + +//**************************************************************************** +/// \ingroup system_manager * +/// \brief Error Event Clear Logs Info * +typedef struct T_SystemManagerClearLogsInfo { + void *rsv; +}TSystemManagerClearLogsInfo; +// +// Error Event Clear Logs Info * +//**************************************************************************** + +#endif /* SS_SYSTEM_MANAGER_IF_H_ */ // NOLINT (build/header_guard) -- cgit 1.2.3-korg