X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=service%2Fsystem%2Finterface_unified%2Flibrary%2Finclude%2Fsystem_service%2Fss_sm_client_if.h;fp=service%2Fsystem%2Finterface_unified%2Flibrary%2Finclude%2Fsystem_service%2Fss_sm_client_if.h;h=70b9425f72d4f1d0fffdb2193b036cd7240e5ace;hb=17cf21bcf8a2e29d2cbcf0a313474d2a4ee44f5d;hp=0000000000000000000000000000000000000000;hpb=9e86046cdb356913ae026f616e5bf17f6f238aa5;p=staging%2Fbasesystem.git diff --git a/service/system/interface_unified/library/include/system_service/ss_sm_client_if.h b/service/system/interface_unified/library/include/system_service/ss_sm_client_if.h new file mode 100755 index 0000000..70b9425 --- /dev/null +++ b/service/system/interface_unified/library/include/system_service/ss_sm_client_if.h @@ -0,0 +1,1064 @@ +/* + * @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_sm_client_if.h + * @brief \~english This file supports the AGL framework client interface to System manager. + */ +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup system_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup interface_unified + * @ingroup system_service + * @{ + */ + + +#ifndef __SS_SYSTEM_MANAGER_CLIENT_IF_H__ // NOLINT (build/header_guard) +#define __SS_SYSTEM_MANAGER_CLIENT_IF_H__ + +#include +#include +#include +#include "system_service/ss_power_service.h" +#include "system_service/ss_system_manager_if.h" + + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup RegisterSMSessionAckCallback +/// \~english @par Summary +/// API for setting the FrameworkunifiedOnStop response +/// \~english @param [in] CallbackPtr +/// EFrameworkunifiedStatus - Pointer to a callback function +/// \~english @par +/// - TRUE : Not carried out in the automatic response. +/// - FALSE : Carry out the response in automatic. (Default) +/// \~english @retval VOID None +/// \~english @par Preconditions +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~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 +/// Sync only(None communication) +/// \~english @par Detail +/// In the case of is_start_required = TURE, Client Services of System Manager, automatically \n +/// System Manager and the session at the same time is building and start-up. \n +/// It is possible to receive a call back at the timing when the session establishment is completed \n +/// by this API. \n +/// is_start_required is, as a Launch Configuration information, have the following meanings. +/// \~english @par +/// is_start_required \n +/// - True: Create a session with the System Manager.(Service to use the Dispatcher.) \n +/// - False: Not create a session with the System Manager.(Do not use the Dispatcher Service.) +/// OnStart/Stop/DebugDump Callback is not called. HeartBeat function does not apply. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus RegisterSMSessionAckCallback(EFrameworkunifiedStatus (*CallbackPtr)(HANDLE)); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup SetDataResetModeToSystemManager +/// \~english @par Summary +/// API to record the data reset mode of the next boot in a non-volatile area. +/// \~english @param [in] dataResetMode +/// ESMDataResetModeInfo - Data reset mode information +/// \~english @par +/// - e_SS_SM_DATA_RESET_MODE_NONE : Do not initialize +/// - e_SS_SM_DATA_RESET_MODE_USER : User data initialization +/// - e_SS_SM_DATA_RESET_MODE_FACTORY : Factory initialization +/// \~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 eFrameworkunifiedStatusBadConnection Socket connection error +/// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred +/// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) +/// \~english @par Preconditions +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// - Specified log type is invalid(In the case of value which does not correspond to enum eSMUserLogType). +/// [eFrameworkunifiedStatusInvldParam] +/// - 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 send and receive type. [eFrameworkunifiedStatusInvldHndlType] +/// - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] +/// - Send and receive for the file descriptor of System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusErrNoEBADF] +/// - Place to interrupt by the system call (signal) has occurred during the send and receive of the System +/// Manager message for the session. [eFrameworkunifiedStatusErrNoEINTR] +/// - Size of the send and receive buffer of the System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusInvldBufSize] +/// - Send and receive and reception of System Manager message for the session fails to socket connection. +/// [eFrameworkunifiedStatusBadConnection] +/// - Any error has occurred at the time of send and receive of the System Manager message for the session. +/// [eFrameworkunifiedStatusFail] +/// - Send and receive of System Manager message for the session fails to shared memory access. +/// [eFrameworkunifiedStatusErrOther] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Fire and Forget x Method +/// \~english @par Detail +/// The data reset mode to save in a non-volatile area, the function return.\n +/// System Manager is to expand the resident service data reset mode of the non-volatile area as\n +/// an argument of FrameworkunifiedOnStart.\n +/// Task Manager is Callback data initialization interface of the same information as an argument.\n +/// All of, the completion of the FrameworkunifiedOnStart processing of all resident services (System Manager) \n +/// and, at the timing when the Callback of data initialization interface of all non-resident \n +/// service has been completed (Task Manager), a data reset mode, initialized to e_SS_SM_DATA_RESET_ NONE. \n +/// In other words, when the reset until initialization occurs, the same data reset mode again to \n +/// the argument, FrameworkunifiedOnStart or, Callback of data initialization interface is performed. +/// \~english @see SetProgUpdateStateToSystemManager +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus SetDataResetModeToSystemManager(ESMDataResetModeInfo dataResetMode); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup SetProgUpdateStateToSystemManager +/// \~english @par Summary +/// API to record the program update state in the non-volatile information. +/// \~english @param [in] updateState +/// SMProgUpdateState - Program update status +/// \~english @par +/// - SS_SM_PROG_UPDATE_STATE_UPDATED : Program update +/// - SS_SM_PROG_UPDATE_STATE_MAP_UPDATED : Map update +/// - SS_SM_PROG_UPDATE_STATE_MAPDIFF_UPDATED : Map difference updating +/// \~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 eFrameworkunifiedStatusBadConnection Socket connection error +/// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred +/// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) +/// \~english @par Preconditions +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// - Specified program update status information is invalid (in the case of a value that does not correspond to +/// the enum SMProgUpdateState). [eFrameworkunifiedStatusInvldParam] +/// - 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 send and receive type. [eFrameworkunifiedStatusInvldHndlType] +/// - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] +/// - Send and receive for the file descriptor of System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusErrNoEBADF] +/// - Place to interrupt by the system call (signal) has occurred during the send and receive of the System +/// Manager message for the session. [eFrameworkunifiedStatusErrNoEINTR] +/// - Size of the send and receive buffer of the System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusInvldBufSize] +/// - Send and receive and reception of System Manager message for the session fails to socket connection. +/// [eFrameworkunifiedStatusBadConnection] +/// - Any error has occurred at the time of send and receive of the System Manager message for the session. +/// [eFrameworkunifiedStatusFail] +/// - Send and receive of System Manager message for the session fails to shared memory access. +/// [eFrameworkunifiedStatusErrOther] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// The program update state to save in a non-volatile area, the function return.\n +/// updateState is it is possible to specify more than one by setting the OR.\n +/// Based on the setting state, to determine isProgUpdated, isMapUpdated, the value \n +/// of the isMapDiffUpdated provided in GetInterfaceunifiedOnStartExtInfo and GetInterfaceunifiedOnStopExtInfo.\n +/// Task Manager is provided in data initialization interface, the same information to the non-resident service.\n +/// Set state is initialized with the same timing as data reset mode.\n +/// (See SetDataResetModeToSystemManager) +/// \~english @see SetDataResetModeToSystemManager, GetInterfaceunifiedOnStartExtInfo, GetInterfaceunifiedOnStopExtInfo +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus SetProgUpdateStateToSystemManager(SMProgUpdateState progUpdateState); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup SendCpuResetRequestToSystemManager +/// \~english @par Summary +/// API to request LOG saved to the internal non-volatile area +/// \~english @param [in] l_eCpuResetReason +/// ESMCpuResetReason - Reset factor +/// \~english @param [in] f_messageStr +/// std::string - Abnormal message string +/// \~english @param [in] f_suffixStr +/// std::string - Suffix string of abnormal LOG file +/// \~english @par +/// enum ESMCpuResetReason Variable +/// - e_SS_SM_CPU_RESET_REASON_NORMAL : Normal Reset +/// - e_SS_SM_CPU_RESET_REASON_DATA_RESET : Data Reset +/// - e_SS_SM_CPU_RESET_REASON_USER_FORCE_RESET : User forced reset +/// - e_SS_SM_CPU_RESET_REASON_GENERIC_ERR : Generic Error reset +/// - e_SS_SM_CPU_RESET_REASON_DSP_ERR : DSP Error +/// - e_SS_SM_CPU_RESET_REASON_IMMRESET_NORMAL : Reset immediately +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~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 +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~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. +/// [eFrameworkunifiedStatusErrNoEBADF] +/// - Place to interrupt by the system call (signal) has occurred during the transmission of the System Manager +/// message for the session. [eFrameworkunifiedStatusErrNoEINTR] +/// - Size of the transmission buffer of the System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusInvldBufSize] +/// - Any error has occurred at the time of transmission of the System Manager message for the session. +/// [eFrameworkunifiedStatusFail] +/// - Transmission of System Manager message for the session fails to shared memory access. [eFrameworkunifiedStatusErrOther] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Collect the LOG information and stores it in the built-in non-volatile area.\n +/// String specified in f_suffixStr is added as a suffix to the end of the abnormal LOG file name. +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus SendCpuResetRequestToSystemManager(ESMCpuResetReason l_eCpuResetReason, + std::string f_messageStr = "", std::string f_suffixStr = ""); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup SetNextWakeupTypeToSystemManager +/// \~english @par Summary +/// Set the next wakeup type. +/// \~english @param [in] f_wakeupType +/// ESMNextWakeupType - Wakeup type +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter +/// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer +/// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred +/// \~english @par Preconditions +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only +/// \~english @par Detail +/// - The API sets the next wakeup type (COLD/HOT/Not specified). +/// \n +/// - Include ss_sm_client_if.h +/// - Library libSS_SystemIfUnified.so +/// \~english @see +/// None +//////////////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus SetNextWakeupTypeToSystemManager(ESMNextWakeupType f_wakeupType); + + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup Set_UseStopCompleteNotificationVsInterfaceunifiedOnStopFnc_StateVar +/// \~english @par Summary +/// API for setting the FrameworkunifiedOnStop response +/// \~english @param [in] f_setTrue +/// BOOL - Response presence or absence of specified +/// \~english @par +/// - TRUE : Not carried out in the automatic response. +/// - FALSE : Carry out the response in automatic. (Default) +/// \~english @retval VOID None +/// \~english @par Preconditions +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~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 +/// Sync only(None communication) +/// \~english @par Detail +/// In case you can not return the response in the synchronized by FrameworkunifiedOnStop, by setting to \n +/// TRUE in this API, it is possible to implement the completion notice to the system_manager \n +/// the service side. +/// At this time, the service is by to Publish the Notification of "service name/StopComp", \n +/// you are possible to notify the STOP completion to system_manager. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +VOID Set_UseStopCompleteNotificationVsInterfaceunifiedOnStopFnc_StateVar(BOOL f_SetTrue); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup SendUserInvokedLoggingRequestToSystemManager +/// \~english @par Summary +/// API to request LOG saved to the internal non-volatile area +/// \~english @param [in] f_userInvokedLogType +/// \ref eSMUserLogType - User invoked log type. +/// \~english @param [in] f_messageStr +/// std::string - Abnormal message string +/// \~english @param [in] f_suffixStr +/// std::string - Suffix string of abnormal LOG file +/// \~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 +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// - Log type is invalid(In the case of value which does not correspond to enum eSMUserLogType). +/// [eFrameworkunifiedStatusInvldParam] +/// - 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. +/// [eFrameworkunifiedStatusErrNoEBADF] +/// - Place to interrupt by the system call (signal) has occurred during the transmission of the System Manager +/// message for the session. [eFrameworkunifiedStatusErrNoEINTR] +/// - Size of the transmission buffer of the System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusInvldBufSize] +/// - Any error has occurred at the time of transmission of the System Manager message for the session. +/// [eFrameworkunifiedStatusFail] +/// - Transmission of System Manager message for the session fails to shared memory access. [eFrameworkunifiedStatusErrOther] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Collect the LOG information and stores it in the built-in non-volatile area.\n +/// String specified in f_suffixStr is added as a suffix to the end of the abnormal LOG file name. +/// \~english @see SendClearLogsRequestToSystemManager +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendUserInvokedLoggingRequestToSystemManager(eSMUserLogType f_userInvokedLogType, + std::string f_messageStr = "", std::string f_suffixStr = ""); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup SendInterfaceunifiedOnStopResponseToSystemManager +/// \~english @par Summary +/// API to send a FrameworkunifiedOnStop response +/// \~english @param [in] f_eStatus +/// EFrameworkunifiedStatus - End status +/// \~english @par +/// - eFrameworkunifiedStatusOK : End processing completion +/// - eFrameworkunifiedStatusFail : End processing uncompleted +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~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 +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~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. +/// [eFrameworkunifiedStatusErrNoEBADF] +/// - Place to interrupt by the system call (signal) has occurred during the transmission of the System Manager +/// message for the session. [eFrameworkunifiedStatusErrNoEINTR] +/// - Size of the transmission buffer of the System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusInvldBufSize] +/// - Any error has occurred at the time of transmission of the System Manager message for the session. +/// [eFrameworkunifiedStatusFail] +/// - Transmission of System Manager message for the session fails to shared memory access. [eFrameworkunifiedStatusErrOther] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Fire and Forget only +/// \~english @par Detail +/// In case you can not return the response in the synchronized by FrameworkunifiedOnStop, by setting to \n +/// TRUE in this API, it is possible to implement the completion notice to the system_manager \n +/// the service side. +/// At this time, the service is by to Publish the Notification of "service name/StopComp", \n +/// you are possible to notify the STOP completion to system_manager. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendInterfaceunifiedOnStopResponseToSystemManager(EFrameworkunifiedStatus f_eStatus); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetInterfaceunifiedOnStartExtInfo +/// \~english @par Summary +/// API to get the extended information of the start-up parameters. +/// \~english @param [out] f_info +/// T_SS_SM_START_ExtDataStructType - Startup parameters extended information +/// \~english @par +/// T_SS_SM_START_ExtDataStructType Structure +/// \~english @code +/// typedef struct { +/// { +/// BOOL isProgUpdated; +/// EMRelaunchStatus relaunchStatus; +/// BOOL isMapUpdated; +/// BOOL isMapDiffUpdated; +/// uint8_t reserved[]; +/// }T_SS_SM_START_ExtDataStructType; +/// @endcode +/// \~english @par +/// isProgUpdated:Presence or absence of a program update +/// - TRUE : Yes program update +/// - FALSE : No program update +/// \~english @par +/// relaunchStatus:Relaunch state of self-service +/// - e_SS_SM_RELAUNCH_STATUS_NONE : Relaunch non-occurrence (first start) +/// - e_SS_SM_RELAUNCH_STATUS_SAFE : Normal Relaunch +/// - e_SS_SM_RELAUNCH_STATUS_ERR : Abnormal Relaunch +/// \~english @par +/// isMapUpdated:Presence or absence of a map update +/// - TRUE : Yes map update +/// - FALSE : No map update +/// \~english @par +/// isMapDiffUpdated:The presence or absence of the map difference updating +/// - TRUE : Yes map difference update +/// - FALSE : No map difference update +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~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 eFrameworkunifiedStatusBadConnection Failure to socket connection +/// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred(Socket Connection/Memory Allocation/Event Control) +/// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) +/// \~english @par Preconditions +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~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. +/// [eFrameworkunifiedStatusErrNoEBADF] +/// - Place to interrupt by the system call (signal) has occurred during the transmission of the System Manager +/// message for the session. [eFrameworkunifiedStatusErrNoEINTR] +/// - Size of the transmission buffer of the System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusInvldBufSize] +/// - Transmission and reception of System Manager message for the session fails to socket connection. +/// [eFrameworkunifiedStatusBadConnection] +/// - In the case of the message queue open error for reception of System Manager message for the session. +/// [eFrameworkunifiedStatusFail] +/// - System Manager message for the session fails to acquire the message buffer for reception. [eFrameworkunifiedStatusFail] +/// - System Manager message for the session fails in the event control for the reception. [eFrameworkunifiedStatusFail] +/// - Any error has occurred at the time of transmission and receive of the System Manager message for the +/// session. [eFrameworkunifiedStatusFail] +/// - Transmission of System Manager message for the session fails to shared memory access. [eFrameworkunifiedStatusErrOther] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Returns the extended information of the parameters of FrameworkunifiedOnStart(). \n +/// It is assumed that that will be called in the FrameworkunifiedOnStart (), return the correct value when it is called prior +/// \n +/// to the issuance FrameworkunifiedOnStart() is not guaranteed.\n +/// System startup to relaunchStatus is e_SS_SM_RELAUNCH_STATUS_NONE, the service is a case that has been Relaunch +/// \n +/// by the exit (SS_SM_EXIT_RELAUNCH) _SS_SM_RELAUNCH_STATUS_SAFE, if the Relaunch due to the abnormality occurs +/// to \n +/// set the e_SS_SM_RELAUNCH_STATUS_ERR. +/// \~english @see GetInterfaceunifiedOnStopExtInfo, FrameworkunifiedOnStart +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus GetInterfaceunifiedOnStartExtInfo(T_SS_SM_START_ExtDataStructType &f_info); // NOLINT (runtime/references) + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup GetInterfaceunifiedOnStopExtInfo +/// \~english @par Summary +/// API to get the extended information of the end parameter. +/// \~english @param [out] f_info +/// T_SS_SM_STOP_ExtDataStructType - Exit extended parameter information +/// \~english @par +/// T_SS_SM_STOP_ExtDataStructType Structure +/// \~english @code +/// typedef struct { +/// { +/// BOOL isProgUpdated; +/// uint8_t reserved[]; +/// }T_SS_SM_START_ExtDataStructType; +/// @endcode +/// \~english @par +/// isProgUpdated:Presence or absence of a program update +/// - TRUE : Yes program update +/// - FALSE : No program update +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~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 eFrameworkunifiedStatusBadConnection Failure to socket connection +/// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred(Socket Connection/Memory Allocation/Event Control) +/// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory) +/// \~english @par Preconditions +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~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 send and receive type. [eFrameworkunifiedStatusInvldHndlType] +/// - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull] +/// - File descriptor not for the transmission and reception of the System Manager of the session message. +/// [eFrameworkunifiedStatusErrNoEBADF] +/// - Interruption by the system call (signal) occurs during the transmission and reception of the System Manager +/// of the session message. [eFrameworkunifiedStatusErrNoEINTR] +/// - The size of the transmit and receive buffer of the System Manager of the session message is invalid. +/// [eFrameworkunifiedStatusInvldBufSize] +/// - It failed to socket connection for transmission and reception of the System Manager of the session message. +/// [eFrameworkunifiedStatusBadConnection] +/// - Open error of the message queue for the reception of the System Manager of the session message. +/// [eFrameworkunifiedStatusFail] +/// - And fail to acquire the message buffer for reception of the System Manager of the session message. +/// [eFrameworkunifiedStatusFail] +/// - It failed in the event control for the reception of the System Manager of the session message. +/// [eFrameworkunifiedStatusFail] +/// - It failed during transmission and reception of the System Manager of the session message. [eFrameworkunifiedStatusFail] +/// - It failed to shared memory access for transmission and reception of the System Manager of the session +/// message. [eFrameworkunifiedStatusErrOther] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Sync only(None communication) +/// \~english @par Detail +/// Returns the extended information of the parameters of FrameworkunifiedOnStop(). \n +/// It is assumed that that will be called in the FrameworkunifiedOnStop (), return of the correct value in the case \n +/// that has been called before FrameworkunifiedOnStop() entry into force is not guaranteed. +/// \~english @see GetInterfaceunifiedOnStartExtInfo, FrameworkunifiedOnStop +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus GetInterfaceunifiedOnStopExtInfo(T_SS_SM_STOP_ExtDataStructType &f_info); // NOLINT (runtime/references) + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup SendDebugDumpResponseToSystemManager +/// \~english @par Summary +/// Send a debug dump response to system_manager +/// \~english @param [in] f_bFormatStrRequired +/// BOOL - Specify whether to dump the application name or not +/// \~english @param [in] f_cFormat +/// PCSTR - Display format for the dump (the same character strings format as the printf format) +/// \~english @param [in] arg_list +/// ... - Dump data in line with f_cFormat format +/// \~english @par +/// f_bFormatStrRequired +/// - true Dump the application name +/// - false Do not dump the application name +/// \~english @retval None +/// \~english @par Precondition +/// - None +/// \~english @par Change in the internal status +/// - The change in the internal status does not occur by this API. +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Fire and Forget only +/// \~english @par Detail +/// When f_bFormatStrRequired is true, write the application name to the buffer for dump. \n +/// Write the data to the buffer for dump in line with f_cFormat. \n +/// Send OnDebugDumpResponseReceived to the SystemManger in order to request the SystemManger to +/// write the contents in the buffer for dump to the log file for debug. \n +/// The maximum size of the buffer for dump is 4Kbyte and the string size of the application name +/// is deducted when the application name is dumped. \n +/// When dumping a string which exceeds 4Kbyte, drop what exceeds the buffer. +/// \~english @see +//////////////////////////////////////////////////////////////////////////////////////////// +void SendDebugDumpResponseToSystemManager(BOOL f_bFormatStrRequired, PCSTR f_cFormat, ...) +#ifdef __GNUC__ + __attribute__((format(printf, 2, 3))); +#endif + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup SendInterfaceunifiedEmmcLogsRequestToSystemManager +/// \~english @par Summary +/// API to request a copy to the specified path of the LOG file of the built-in non-volatile area. +/// \~english @param [in] f_path +/// std::string - LOG destination file PATH +/// \~english @retval eFrameworkunifiedStatusOK Success +/// \~english @retval eFrameworkunifiedStatusInvldBuf Invalid buffer +/// \~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 +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// - LOG destination file PATH is NULL(If f_path.c_str() is NULL). [eFrameworkunifiedStatusInvldBuf] +/// - 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. +/// [eFrameworkunifiedStatusErrNoEBADF] +/// - Place to interrupt by the system call (signal) has occurred during the transmission of the System Manager +/// message for the session. [eFrameworkunifiedStatusErrNoEINTR] +/// - Size of the transmission buffer of the System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusInvldBufSize] +/// - Any error has occurred at the time of transmission of the System Manager message for the session. +/// [eFrameworkunifiedStatusFail] +/// - Transmission of System Manager message for the session fails to shared memory access. [eFrameworkunifiedStatusErrOther] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Method only +/// \~english @par Detail +/// To copy all of the files that exist in LOG storage area of the built-in non-volatile area in \n +/// the path specified in the f_path. \n +/// If you do not have a copy target, asynchronous response command: Returns the eFrameworkunifiedStatusOK as \n +/// the message data of SS_SM_ERROR_EVENT_INTERFACEUNIFIED_EMMC_LOGS_RSPN. +/// \~english @see SendClearLogsRequestToSystemManager +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendInterfaceunifiedEmmcLogsRequestToSystemManager(std::string f_path); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup SendClearLogsRequestToSystemManager +/// \~english @par Summary +/// API to clear the stored in the built-in non-volatile area log. +/// \~english @param [in] f_info +/// TSystemManagerClearLogsInfo - A pointer to the LOG clear information +/// \~english @par +/// TSystemManagerClearLogsInfo Structure +/// \~english @code +/// typedef struct T_SystemManagerClearLogsInfo{ +/// { +/// void *rsv; +/// }TSystemManagerClearLogsInfo; +/// @endcode +/// \~english @par +/// rsv : Reserve area +/// \~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 +/// - Dispatcher for the System Manager is generated, and Availability of the service is TRUE. +/// \~english @par Change of the internal state +/// - The internal state is not changed. +/// \~english @par Causes of failures +/// - Pointer to the LOG clear information (f_info) is NULL [eFrameworkunifiedStatusInvldParam] +/// - 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. +/// [eFrameworkunifiedStatusErrNoEBADF] +/// - Place to interrupt by the system call (signal) has occurred during the transmission of the System Manager +/// message for the session. [eFrameworkunifiedStatusErrNoEINTR] +/// - Size of the transmission buffer of the System Manager message for the session is invalid. +/// [eFrameworkunifiedStatusInvldBufSize] +/// - Any error has occurred at the time of transmission of the System Manager message for the session. +/// [eFrameworkunifiedStatusFail] +/// - Transmission of System Manager message for the session fails to shared memory access. [eFrameworkunifiedStatusErrOther] +/// \~english @par Classification +/// Public +/// \~english @par Type +/// Fire and Forget x Sync +/// \~english @par Detail +/// To delete a LOG stored in the built-in non-volatile area. +/// \~english @see None +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendClearLogsRequestToSystemManager(TSystemManagerClearLogsInfo *f_info); + +/** @}*/ // end of SystemIf +/** @}*/ // end of interface_unified +/** @}*/ // end of SystemService +/** @}*/ // end of BaseSystem + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief AttachCallbackToSystemManager +/// +/// \note This function is called by System Manager session clients to attach +/// a callback function to the client application with System Manager +/// configured as the specified sender of the specified protocol message. +/// +/// \param [in] f_hApp +/// HANDLE - Handle to message queue of the System Manager attached client. +/// \param [in] iCmd +/// UI_32 iCmd - Command ID +/// \param [in] fpOnCmd +/// CbFuncPtr fpOnCmd - Function pointer to be called in the form upon +/// the invokation of the specified command ID. The callback function +/// must have the following signature : void (*)(HANDLE). +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus AttachCallbackToSystemManager(HANDLE hApp, UI_32 iCmd, CbFuncPtr fpOnCmd); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief Set of complementary detach functions that accept same arguments +/// as the InterfaceunifiedAttach_XYZ_ToDispatcher() functions do. +/// +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus DetachCallbacksFromInterfaceunifiedDispatcher(HANDLE hApp, + PCSTR pServiceName, + const FrameworkunifiedProtocolCallbackHandler* pMsgHandler, + UI_32 uiHandlerCount, + HANDLE hSession = NULL); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// \brief +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus DetachParentCallbacksFromInterfaceunifiedDispatcher(HANDLE hChildApp, + const FrameworkunifiedProtocolCallbackHandler* pMsgHandler, + UI_32 uiHandlerCount); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief GetSystemManagerSessionHandle +/// +/// \note This function returns the session handle with System Manager +/// +/// \return HANDLE - A session handle with System Manager +///////////////////////////////////////////////////////////////////////////////////// +extern HANDLE GetSystemManagerSessionHandle(void); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendShutdownToSystemManager +/// +/// \note This function is called to send Shutdown command to System Manager +/// +/// \param [in] pData +/// Pwr_ServiceSetInterface *pData - Pointer to Shutdown Command data +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus SendShutdownToSystemManager(Pwr_ServiceSetInterface *pData); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendSystemModeRequestToSystemManager +/// +/// \note This function is called to send system mode request to System Manager +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus SendSystemModeRequestToSystemManager(void); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendInitCompReportToSystemManager +/// +/// \note This function is called to send init comp report to System Manager +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus SendInitCompReportToSystemManager(void); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendWakeUpToSystemManager +/// +/// \note This function is called to send the Wakeup command to System Manager +/// +/// \param [in] pData +/// wakeInfo *pData - Pointer to Wakeup Command data +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus SendWakeUpToSystemManager(wakeInfo *pData); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendStartupConfirmationToSystemManager +/// +/// \note This function is called to send the startup confirmation information +/// to System Manager +/// +/// \param [in] l_startupConfirmationMsg +/// StartupConfirmationMsgStrut &l_startupConfirmationMsg - startup confirmation +/// data +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +extern EFrameworkunifiedStatus SendStartupConfirmationToSystemManager(StartupConfirmationMsgStrut + &l_startupConfirmationMsg); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendSystemErrorToSystemManager +/// +/// \note This function is called by an application via Native Services to send +/// notice of a critical error to System Manager when a non recoverable +/// run-time error is encountered. +/// +/// \param [in] +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendSystemErrorToSystemManager(EFrameworkunifiedSystemError f_systemError); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief Send_CWORD56_HeartBeatRequestToSystemManager +/// +/// \note This function forwards a _CWORD56_ heartbeat request received by power +/// services from the power shadow to System Manager. +/// +/// \param [in] +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus Send_CWORD56_HeartBeatRequestToSystemManager(EPWR_HB_REQ_MSG_STRUCT f_HbReq); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendBootMicroResetNotificationToSystemManager +/// +/// \param ResetReason Enumerated boot micro reset reason. +/// +/// This function is called by Logging Shadow to inform System Manager of a +/// boot micro reset condition. +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendBootMicroResetNotificationToSystemManager(eSMBootMicroResetReason ResetReason); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendDiagLogEventRequestToSystemManager +/// +/// \note This function is called by logger to initiate log artifact collection +/// and storage on behalf of diagnostic services. +/// +/// \param f_copyDestPathStr +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendDiagLoggingRequestToSystemManager(std::string f_copyDestPathStr); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendCANLoggingRequestToSystemManager +/// +/// \note This function is called by logger to initiate log artifact collection +/// and storage when signaled via CAN. +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendCANLoggingRequestToSystemManager(void); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendDTCLoggingRequestToSystemManager +/// +/// \note This function is called by logger to initiate log artifact collection +/// and storage when signaled via diagnostic command. +/// +/// \param f_dtc Diagnostic trouble code. +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendDTCLoggingRequestToSystemManager(UI_32 f_dtc); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief RegisterBootMicroLogRequestCb +/// +/// This function is called by Logging Shadow to register a callback function for +/// the boot micro log request that may be generated by System Manager when an +/// error event occurs. +/// +/// \param [in] hApp AGL Framework Application Handle +/// +/// \param [in] fpOnCmd Call back function with the signature: +/// EFrameworkunifiedStatus fnct(HANDLE hApp); +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus RegisterBootMicroLogRequestCb(HANDLE hApp, CbFuncPtr fpOnCmd); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendBootMicroLogResponseToSystemManager +/// +/// This function is called by Logging Shadow to provide a string representation of +/// the binary boot-micro log data. +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendBootMicroLogResponseToSystemManager(std::string f_logString); + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// \brief Redirect either formatted, or unformatted response output to System Manager. +/// +/// \see SendDebugDumpResponseToSystemManager +//////////////////////////////////////////////////////////////////////////////////////////// +#define SSDEBUGDUMP(args...) (SendDebugDumpResponseToSystemManager(TRUE, ## args)) + +//////////////////////////////////////////////////////////////////////////////////////////// +/// \ingroup SM_Deletable +//////////////////////////////////////////////////////////////////////////////////////////// +#define SSDEBUGDUMP_RAW(args...) (SendDebugDumpResponseToSystemManager(FALSE, ## args)) + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendLogStartRequestToSystemManager +/// +/// \note This function is call by SS_Logger when the logging process has +/// completed and no additional request for artifacts will be generated. +/// +/// \param none. +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendLogStartRequestToSystemManager(EErrorEventType f_errorEventType); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendLogArtifactRequestToSystemManager +/// +/// \note This function is call by SS_Logger to request SM to acquire and +// return by reference (filename), the specified logging artifact. +/// +/// \param [in] f_artifactId, enumerated artifact number. +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendLogArtifactRequestToSystemManager(EArtifactId f_artifactId); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendLogCompleteRequestToSystemManager +/// +/// \note This function is call by SS_Logger when the logging process has +/// completed and no additional request for artifacts will be generated. +/// +/// \param none. +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendLogCompleteRequestToSystemManager(EFrameworkunifiedStatus f_eStatus = eFrameworkunifiedStatusOK); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief SendEelExportRequestToSystemManager +/// +/// \note This function forwards the Device Detection EEL_export trigger +/// received by SS Logger to System Manager. +/// +/// \param f_path Destination path for the trigger artifacts. +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus SendEelExportRequestToSystemManager(std::string f_path); + +///////////////////////////////////////////////////////////////////////////////////// +/// \ingroup interface_unified +/// +/// \brief DebugDump request callback function. +/// +/// \note This function is called when System Manager requests the receiving +/// application to generate their debugdump. +/// +/// \param hApp +/// +/// \return Status +/// EFrameworkunifiedStatus - success or error +//////////////////////////////////////////////////////////////////////////////////// +EFrameworkunifiedStatus OnSystemManagerDebugDump(HANDLE hApp); + +#endif // __SS_SYSTEM_MANAGER_CLIENT_IF_H__ // NOLINT (build/header_guard) +/** @}*/ +/** @}*/ +/** @}*/