Re-organized sub-directory by category
[staging/basesystem.git] / service / system / interface_unified / library / include / system_service / ss_sm_client_if.h
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 (executable)
index 0000000..70b9425
--- /dev/null
@@ -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 <native_service/frameworkunified_framework_types.h>
+#include <native_service/ns_logger_if.h>
+#include <string>
+#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)
+/** @}*/
+/** @}*/
+/** @}*/