Init basesystem source codes.
[staging/basesystem.git] / video_in_hal / systemservice / interface_unified / library / include / system_service / ss_sm_client_if.h
1 /*
2  * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 /**
18  * @file ss_sm_client_if.h
19  * @brief \~english This file supports the AGL framework client interface to System manager.
20  */
21 /** @addtogroup BaseSystem
22  *  @{
23  */
24 /** @addtogroup system_service
25  *  @ingroup BaseSystem
26  *  @{
27  */
28 /** @addtogroup interface_unified
29  *  @ingroup system_service
30  *  @{
31  */
32
33
34 #ifndef __SS_SYSTEM_MANAGER_CLIENT_IF_H__  // NOLINT (build/header_guard)
35 #define __SS_SYSTEM_MANAGER_CLIENT_IF_H__
36
37 #include <native_service/frameworkunified_framework_types.h>
38 #include <native_service/ns_logger_if.h>
39 #include <string>
40 #include "system_service/ss_power_service.h"
41 #include "system_service/ss_system_manager_if.h"
42
43
44 /////////////////////////////////////////////////////////////////////////////////////
45 /// \ingroup RegisterSMSessionAckCallback
46 /// \~english @par Summary
47 ///       API for setting the FrameworkunifiedOnStop response
48 /// \~english @param [in] CallbackPtr
49 ///       EFrameworkunifiedStatus  - Pointer to a callback function
50 /// \~english @par
51 ///       - TRUE : Not carried out in the automatic response.
52 ///       - FALSE : Carry out the response in automatic. (Default)
53 /// \~english @retval VOID None
54 /// \~english @par Preconditions
55 ///       - Dispatcher for the System Manager is generated, and Availability of the service is TRUE.
56 /// \~english @par Change of the internal state
57 ///       - The internal state is not changed.
58 /// \~english @par Causes of failures
59 ///       None
60 /// \~english @par Classification
61 ///       Public
62 /// \~english @par Type
63 ///       Sync only(None communication)
64 /// \~english @par Detail
65 ///       In the case of is_start_required = TURE,  Client Services of System Manager, automatically \n
66 ///       System Manager and the session at the same time is building and start-up. \n
67 ///       It is possible to receive a call back at the timing when the session establishment is completed \n
68 ///       by this API. \n
69 ///       is_start_required is, as a Launch Configuration information, have the following meanings.
70 /// \~english @par
71 ///       is_start_required \n
72 ///       - True:  Create a session with the System Manager.(Service to use the Dispatcher.) \n
73 ///       - False: Not create a session with the System Manager.(Do not use the Dispatcher Service.)
74 ///       OnStart/Stop/DebugDump Callback is not called. HeartBeat function does not apply.
75 /// \~english @see  None
76 ////////////////////////////////////////////////////////////////////////////////////
77 extern EFrameworkunifiedStatus RegisterSMSessionAckCallback(EFrameworkunifiedStatus (*CallbackPtr)(HANDLE));
78
79 /////////////////////////////////////////////////////////////////////////////////////
80 /// \ingroup SetDataResetModeToSystemManager
81 /// \~english @par Summary
82 ///      API to record the data reset mode of the next boot in a non-volatile area.
83 /// \~english @param [in] dataResetMode
84 ///      ESMDataResetModeInfo - Data reset mode information
85 /// \~english @par
86 ///       - e_SS_SM_DATA_RESET_MODE_NONE : Do not initialize
87 ///       - e_SS_SM_DATA_RESET_MODE_USER : User data initialization
88 ///       - e_SS_SM_DATA_RESET_MODE_FACTORY : Factory initialization
89 /// \~english @retval eFrameworkunifiedStatusOK Success
90 /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter
91 /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer
92 /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle
93 /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle
94 /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full
95 /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor
96 /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal)
97 /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size
98 /// \~english @retval eFrameworkunifiedStatusBadConnection Socket connection error
99 /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred
100 /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory)
101 /// \~english @par Preconditions
102 ///       - Dispatcher for the System Manager is generated, and Availability of the service is TRUE.
103 /// \~english @par Change of the internal state
104 ///       - The internal state is not changed.
105 /// \~english @par Causes of failures
106 ///       - Specified log type is invalid(In the case of value which does not correspond to enum eSMUserLogType).
107 ///       [eFrameworkunifiedStatusInvldParam]
108 ///       - System Manager of the session does not exist. [eFrameworkunifiedStatusNullPointer]
109 ///       - System Manager handle for the session is NULL. [eFrameworkunifiedStatusInvldHandle]
110 ///       - System Manager handle type for the session is not a send and receive type. [eFrameworkunifiedStatusInvldHndlType]
111 ///       - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull]
112 ///       - Send and receive for the file descriptor of System Manager message for the session is invalid.
113 ///       [eFrameworkunifiedStatusErrNoEBADF]
114 ///       - Place to interrupt by the system call (signal) has occurred during the send and receive of the System
115 ///       Manager message for the session. [eFrameworkunifiedStatusErrNoEINTR]
116 ///       - Size of the send and receive buffer of the System Manager message for the session is invalid.
117 ///       [eFrameworkunifiedStatusInvldBufSize]
118 ///       - Send and receive and reception of System Manager message for the session fails to socket connection.
119 ///       [eFrameworkunifiedStatusBadConnection]
120 ///       - Any error has occurred at the time of send and receive of the System Manager message for the session.
121 ///       [eFrameworkunifiedStatusFail]
122 ///       - Send and receive of System Manager message for the session fails to shared memory access.
123 ///       [eFrameworkunifiedStatusErrOther]
124 /// \~english @par Classification
125 ///       Public
126 /// \~english @par Type
127 ///       Fire and Forget x Method
128 /// \~english @par Detail
129 ///      The data reset mode to save in a non-volatile area, the function return.\n
130 ///      System Manager is to expand the resident service data reset mode of the non-volatile area as\n
131 ///      an argument of FrameworkunifiedOnStart.\n
132 ///      Task Manager is Callback data initialization interface of the same information as an argument.\n
133 ///      All of, the completion of the FrameworkunifiedOnStart processing of all resident services (System Manager) \n
134 ///      and, at the timing when the Callback of data initialization interface of all non-resident \n
135 ///      service has been completed (Task Manager), a data reset mode, initialized to e_SS_SM_DATA_RESET_ NONE. \n
136 ///      In other words, when the reset until initialization occurs, the same data reset mode again to \n
137 ///      the argument, FrameworkunifiedOnStart or, Callback of data initialization interface is performed.
138 /// \~english @see  SetProgUpdateStateToSystemManager
139 ////////////////////////////////////////////////////////////////////////////////////
140 extern EFrameworkunifiedStatus SetDataResetModeToSystemManager(ESMDataResetModeInfo dataResetMode);
141
142 /////////////////////////////////////////////////////////////////////////////////////
143 /// \ingroup SetProgUpdateStateToSystemManager
144 /// \~english @par Summary
145 ///      API to record the program update state in the non-volatile information.
146 /// \~english @param [in] updateState
147 ///      SMProgUpdateState  - Program update status
148 /// \~english @par
149 ///       - SS_SM_PROG_UPDATE_STATE_UPDATED : Program update
150 ///       - SS_SM_PROG_UPDATE_STATE_MAP_UPDATED : Map update
151 ///       - SS_SM_PROG_UPDATE_STATE_MAPDIFF_UPDATED : Map difference updating
152 /// \~english @retval eFrameworkunifiedStatusOK Success
153 /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter
154 /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer
155 /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle
156 /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle
157 /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full
158 /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor
159 /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal)
160 /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size
161 /// \~english @retval eFrameworkunifiedStatusBadConnection Socket connection error
162 /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred
163 /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory)
164 /// \~english @par Preconditions
165 ///       - Dispatcher for the System Manager is generated, and Availability of the service is TRUE.
166 /// \~english @par Change of the internal state
167 ///       - The internal state is not changed.
168 /// \~english @par Causes of failures
169 ///       - Specified program update status information is invalid (in the case of a value that does not correspond to
170 ///       the enum SMProgUpdateState). [eFrameworkunifiedStatusInvldParam]
171 ///       - System Manager of the session does not exist. [eFrameworkunifiedStatusNullPointer]
172 ///       - System Manager handle for the session is NULL. [eFrameworkunifiedStatusInvldHandle]
173 ///       - System Manager handle type for the session is not a send and receive type. [eFrameworkunifiedStatusInvldHndlType]
174 ///       - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull]
175 ///       - Send and receive for the file descriptor of System Manager message for the session is invalid.
176 ///       [eFrameworkunifiedStatusErrNoEBADF]
177 ///       - Place to interrupt by the system call (signal) has occurred during the send and receive of the System
178 ///       Manager message for the session. [eFrameworkunifiedStatusErrNoEINTR]
179 ///       - Size of the send and receive buffer of the System Manager message for the session is invalid.
180 ///       [eFrameworkunifiedStatusInvldBufSize]
181 ///       - Send and receive and reception of System Manager message for the session fails to socket connection.
182 ///       [eFrameworkunifiedStatusBadConnection]
183 ///       - Any error has occurred at the time of send and receive of the System Manager message for the session.
184 ///       [eFrameworkunifiedStatusFail]
185 ///       - Send and receive of System Manager message for the session fails to shared memory access.
186 ///       [eFrameworkunifiedStatusErrOther]
187 /// \~english @par Classification
188 ///       Public
189 /// \~english @par Type
190 ///       Sync only(None communication)
191 /// \~english @par Detail
192 ///      The program update state to save in a non-volatile area, the function return.\n
193 ///      updateState is it is possible to specify more than one by setting the OR.\n
194 ///      Based on the setting state, to determine isProgUpdated, isMapUpdated, the value \n
195 ///      of the isMapDiffUpdated provided in GetInterfaceunifiedOnStartExtInfo and GetInterfaceunifiedOnStopExtInfo.\n
196 ///      Task Manager is provided in data initialization interface, the same information to the non-resident service.\n
197 ///      Set state is initialized with the same timing as data reset mode.\n
198 ///      (See SetDataResetModeToSystemManager)
199 /// \~english @see  SetDataResetModeToSystemManager, GetInterfaceunifiedOnStartExtInfo, GetInterfaceunifiedOnStopExtInfo
200 ////////////////////////////////////////////////////////////////////////////////////
201 extern EFrameworkunifiedStatus SetProgUpdateStateToSystemManager(SMProgUpdateState progUpdateState);
202
203 /////////////////////////////////////////////////////////////////////////////////////
204 /// \ingroup SendCpuResetRequestToSystemManager
205 /// \~english @par Summary
206 ///                   API to request LOG saved to the internal non-volatile area
207 /// \~english @param [in] l_eCpuResetReason
208 ///      ESMCpuResetReason - Reset factor
209 /// \~english @param [in] f_messageStr
210 ///       std::string  - Abnormal message string
211 /// \~english @param [in] f_suffixStr
212 ///       std::string  - Suffix string of abnormal LOG file
213 /// \~english @par
214 ///       enum ESMCpuResetReason Variable
215 ///       - e_SS_SM_CPU_RESET_REASON_NORMAL : Normal Reset
216 ///       - e_SS_SM_CPU_RESET_REASON_DATA_RESET : Data Reset
217 ///       - e_SS_SM_CPU_RESET_REASON_USER_FORCE_RESET : User forced reset
218 ///       - e_SS_SM_CPU_RESET_REASON_GENERIC_ERR : Generic Error reset
219 ///       - e_SS_SM_CPU_RESET_REASON_DSP_ERR : DSP Error
220 ///       - e_SS_SM_CPU_RESET_REASON_IMMRESET_NORMAL : Reset immediately
221 /// \~english @retval eFrameworkunifiedStatusOK Success
222 /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer
223 /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle
224 /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle
225 /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full
226 /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor
227 /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal)
228 /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size
229 /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred
230 /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory)
231 /// \~english @par Preconditions
232 ///       - Dispatcher for the System Manager is generated, and Availability of the service is TRUE.
233 /// \~english @par Change of the internal state
234 ///       - The internal state is not changed.
235 /// \~english @par Causes of failures
236 ///       - System Manager of the session does not exist. [eFrameworkunifiedStatusNullPointer]
237 ///       - System Manager handle for the session is NULL. [eFrameworkunifiedStatusInvldHandle]
238 ///       - System Manager handle type for the session is not a transmission type. [eFrameworkunifiedStatusInvldHndlType]
239 ///       - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull]
240 ///       - Transmission for the file descriptor of System Manager message for the session is invalid.
241 ///       [eFrameworkunifiedStatusErrNoEBADF]
242 ///       - Place to interrupt by the system call (signal) has occurred during the transmission of the System Manager
243 ///       message for the session. [eFrameworkunifiedStatusErrNoEINTR]
244 ///       - Size of the transmission buffer of the System Manager message for the session is invalid.
245 ///       [eFrameworkunifiedStatusInvldBufSize]
246 ///       - Any error has occurred at the time of transmission of the System Manager message for the session.
247 ///       [eFrameworkunifiedStatusFail]
248 ///       - Transmission of System Manager message for the session fails to shared memory access. [eFrameworkunifiedStatusErrOther]
249 /// \~english @par Classification
250 ///       Public
251 /// \~english @par Type
252 ///       Sync only(None communication)
253 /// \~english @par Detail
254 ///      Collect the LOG information and stores it in the built-in non-volatile area.\n
255 ///      String specified in f_suffixStr is added as a suffix to the end of the abnormal LOG file name.
256 /// \~english @see
257 ///          None
258 ////////////////////////////////////////////////////////////////////////////////////
259 extern EFrameworkunifiedStatus SendCpuResetRequestToSystemManager(ESMCpuResetReason l_eCpuResetReason,
260                                                      std::string f_messageStr = "", std::string f_suffixStr = "");
261
262 ////////////////////////////////////////////////////////////////////////////////////////////
263 /// \ingroup SetNextWakeupTypeToSystemManager
264 /// \~english @par Summary
265 ///       Set the next wakeup type.
266 /// \~english @param [in] f_wakeupType
267 ///       ESMNextWakeupType    - Wakeup type
268 /// \~english @retval eFrameworkunifiedStatusOK            Success
269 /// \~english @retval eFrameworkunifiedStatusInvldParam    Invalid parameter
270 /// \~english @retval eFrameworkunifiedStatusNullPointer   Invalid pointer
271 /// \~english @retval eFrameworkunifiedStatusFail          Some sort of error occurred
272 /// \~english @par Preconditions
273 ///       - Dispatcher for the System Manager is generated, and Availability of the service is TRUE.
274 /// \~english @par Change of the internal state
275 ///       - The internal state is not changed.
276 /// \~english @par Classification
277 ///       Public
278 /// \~english @par Type
279 ///       Sync only
280 /// \~english @par Detail
281 ///       - The API sets the next wakeup type (COLD/HOT/Not specified).
282 ///       \n
283 ///       - Include    ss_sm_client_if.h
284 ///       - Library    libSS_SystemIfUnified.so
285 /// \~english @see
286 ///       None
287 ////////////////////////////////////////////////////////////////////////////////////////////
288 extern EFrameworkunifiedStatus SetNextWakeupTypeToSystemManager(ESMNextWakeupType f_wakeupType);
289
290
291 /////////////////////////////////////////////////////////////////////////////////////
292 /// \ingroup Set_UseStopCompleteNotificationVsInterfaceunifiedOnStopFnc_StateVar
293 /// \~english @par Summary
294 ///       API for setting the FrameworkunifiedOnStop response
295 /// \~english @param [in] f_setTrue
296 ///       BOOL  - Response presence or absence of specified
297 /// \~english @par
298 ///       - TRUE : Not carried out in the automatic response.
299 ///       - FALSE : Carry out the response in automatic. (Default)
300 /// \~english @retval VOID None
301 /// \~english @par Preconditions
302 ///       - Dispatcher for the System Manager is generated, and Availability of the service is TRUE.
303 /// \~english @par Change of the internal state
304 ///       - The internal state is not changed.
305 /// \~english @par Causes of failures
306 ///       None
307 /// \~english @par Classification
308 ///       Public
309 /// \~english @par Type
310 ///       Sync only(None communication)
311 /// \~english @par Detail
312 ///       In case you can not return the response in the synchronized by FrameworkunifiedOnStop, by setting to \n
313 ///       TRUE in this API, it is possible to implement the completion notice to the system_manager \n
314 ///       the service side.
315 ///       At this time, the service is by to Publish the Notification of "service name/StopComp", \n
316 ///       you are possible to notify the STOP completion to system_manager.
317 /// \~english @see  None
318 ////////////////////////////////////////////////////////////////////////////////////
319 VOID Set_UseStopCompleteNotificationVsInterfaceunifiedOnStopFnc_StateVar(BOOL f_SetTrue);
320
321 /////////////////////////////////////////////////////////////////////////////////////
322 /// \ingroup SendUserInvokedLoggingRequestToSystemManager
323 /// \~english @par Summary
324 ///      API to request LOG saved to the internal non-volatile area
325 /// \~english @param [in] f_userInvokedLogType
326 ///       \ref eSMUserLogType - User invoked log type.
327 /// \~english @param [in] f_messageStr
328 ///       std::string  - Abnormal message string
329 /// \~english @param [in] f_suffixStr
330 ///       std::string  - Suffix string of abnormal LOG file
331 /// \~english @retval eFrameworkunifiedStatusOK Success
332 /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter
333 /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer
334 /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle
335 /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle
336 /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full
337 /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor
338 /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal)
339 /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size
340 /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred
341 /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory)
342 /// \~english @par Preconditions
343 ///       - Dispatcher for the System Manager is generated, and Availability of the service is TRUE.
344 /// \~english @par Change of the internal state
345 ///       - The internal state is not changed.
346 /// \~english @par Causes of failures
347 ///       - Log type is invalid(In the case of value which does not correspond to enum eSMUserLogType).
348 ///       [eFrameworkunifiedStatusInvldParam]
349 ///       - System Manager of the session does not exist. [eFrameworkunifiedStatusNullPointer]
350 ///       - System Manager handle for the session is NULL. [eFrameworkunifiedStatusInvldHandle]
351 ///       - System Manager handle type for the session is not a transmission type. [eFrameworkunifiedStatusInvldHndlType]
352 ///       - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull]
353 ///       - Transmission for the file descriptor of System Manager message for the session is invalid.
354 ///       [eFrameworkunifiedStatusErrNoEBADF]
355 ///       - Place to interrupt by the system call (signal) has occurred during the transmission of the System Manager
356 ///       message for the session. [eFrameworkunifiedStatusErrNoEINTR]
357 ///       - Size of the transmission buffer of the System Manager message for the session is invalid.
358 ///       [eFrameworkunifiedStatusInvldBufSize]
359 ///       - Any error has occurred at the time of transmission of the System Manager message for the session.
360 ///       [eFrameworkunifiedStatusFail]
361 ///       - Transmission of System Manager message for the session fails to shared memory access. [eFrameworkunifiedStatusErrOther]
362 /// \~english @par Classification
363 ///       Public
364 /// \~english @par Type
365 ///       Sync only(None communication)
366 /// \~english @par Detail
367 ///      Collect the LOG information and stores it in the built-in non-volatile area.\n
368 ///      String specified in f_suffixStr is added as a suffix to the end of the abnormal LOG file name.
369 /// \~english @see  SendClearLogsRequestToSystemManager
370 ////////////////////////////////////////////////////////////////////////////////////
371 EFrameworkunifiedStatus SendUserInvokedLoggingRequestToSystemManager(eSMUserLogType f_userInvokedLogType,
372                                                         std::string f_messageStr = "", std::string f_suffixStr = "");
373
374 /////////////////////////////////////////////////////////////////////////////////////
375 /// \ingroup SendInterfaceunifiedOnStopResponseToSystemManager
376 /// \~english @par Summary
377 ///       API to send a FrameworkunifiedOnStop response
378 /// \~english @param [in] f_eStatus
379 ///       EFrameworkunifiedStatus   - End status
380 /// \~english @par
381 ///       - eFrameworkunifiedStatusOK : End processing completion
382 ///       - eFrameworkunifiedStatusFail : End processing uncompleted
383 /// \~english @retval eFrameworkunifiedStatusOK Success
384 /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer
385 /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle
386 /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle
387 /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full
388 /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor
389 /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal)
390 /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size
391 /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred
392 /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory)
393 /// \~english @par Preconditions
394 ///       - Dispatcher for the System Manager is generated, and Availability of the service is TRUE.
395 /// \~english @par Change of the internal state
396 ///       - The internal state is not changed.
397 /// \~english @par Causes of failures
398 ///       - System Manager of the session does not exist. [eFrameworkunifiedStatusNullPointer]
399 ///       - System Manager handle for the session is NULL. [eFrameworkunifiedStatusInvldHandle]
400 ///       - System Manager handle type for the session is not a transmission type. [eFrameworkunifiedStatusInvldHndlType]
401 ///       - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull]
402 ///       - Transmission for the file descriptor of System Manager message for the session is invalid.
403 ///       [eFrameworkunifiedStatusErrNoEBADF]
404 ///       - Place to interrupt by the system call (signal) has occurred during the transmission of the System Manager
405 ///       message for the session. [eFrameworkunifiedStatusErrNoEINTR]
406 ///       - Size of the transmission buffer of the System Manager message for the session is invalid.
407 ///       [eFrameworkunifiedStatusInvldBufSize]
408 ///       - Any error has occurred at the time of transmission of the System Manager message for the session.
409 ///       [eFrameworkunifiedStatusFail]
410 ///       - Transmission of System Manager message for the session fails to shared memory access. [eFrameworkunifiedStatusErrOther]
411 /// \~english @par Classification
412 ///       Public
413 /// \~english @par Type
414 ///       Fire and Forget only
415 /// \~english @par Detail
416 ///      In case you can not return the response in the synchronized by FrameworkunifiedOnStop, by setting to \n
417 ///      TRUE in this API, it is possible to implement the completion notice to the system_manager \n
418 ///      the service side.
419 ///      At this time, the service is by to Publish the Notification of "service name/StopComp", \n
420 ///      you are possible to notify the STOP completion to system_manager.
421 /// \~english @see  None
422 ////////////////////////////////////////////////////////////////////////////////////
423 EFrameworkunifiedStatus SendInterfaceunifiedOnStopResponseToSystemManager(EFrameworkunifiedStatus f_eStatus);
424
425 /////////////////////////////////////////////////////////////////////////////////////
426 /// \ingroup GetInterfaceunifiedOnStartExtInfo
427 /// \~english @par Summary
428 ///       API to get the extended information of the start-up parameters.
429 /// \~english @param [out] f_info
430 ///       T_SS_SM_START_ExtDataStructType - Startup parameters extended information
431 /// \~english @par
432 ///       T_SS_SM_START_ExtDataStructType Structure
433 /// \~english @code
434 ///             typedef struct {
435 ///             {
436 ///                   BOOL             isProgUpdated;
437 ///                   EMRelaunchStatus relaunchStatus;
438 ///                   BOOL             isMapUpdated;
439 ///                   BOOL             isMapDiffUpdated;
440 ///                   uint8_t          reserved[];
441 ///             }T_SS_SM_START_ExtDataStructType;
442 ///            @endcode
443 /// \~english @par
444 ///       isProgUpdated:Presence or absence of a program update
445 ///       - TRUE : Yes program update
446 ///       - FALSE : No program update
447 /// \~english @par
448 ///       relaunchStatus:Relaunch state of self-service
449 ///       - e_SS_SM_RELAUNCH_STATUS_NONE : Relaunch non-occurrence (first start)
450 ///       - e_SS_SM_RELAUNCH_STATUS_SAFE : Normal Relaunch
451 ///       - e_SS_SM_RELAUNCH_STATUS_ERR  : Abnormal Relaunch
452 /// \~english @par
453 ///       isMapUpdated:Presence or absence of a map update
454 ///       - TRUE : Yes map update
455 ///       - FALSE : No map update
456 /// \~english @par
457 ///       isMapDiffUpdated:The presence or absence of the map difference updating
458 ///       - TRUE : Yes map difference update
459 ///       - FALSE : No map difference update
460 /// \~english @retval eFrameworkunifiedStatusOK Success
461 /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer
462 /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle
463 /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle
464 /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full
465 /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor
466 /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal)
467 /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size
468 /// \~english @retval eFrameworkunifiedStatusBadConnection Failure to socket connection
469 /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred(Socket Connection/Memory Allocation/Event Control)
470 /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory)
471 /// \~english @par Preconditions
472 ///       - Dispatcher for the System Manager is generated, and Availability of the service is TRUE.
473 /// \~english @par Change of the internal state
474 ///       - The internal state is not changed.
475 /// \~english @par Causes of failures
476 ///       - System Manager of the session does not exist. [eFrameworkunifiedStatusNullPointer]
477 ///       - System Manager handle for the session is NULL. [eFrameworkunifiedStatusInvldHandle]
478 ///       - System Manager handle type for the session is not a transmission type. [eFrameworkunifiedStatusInvldHndlType]
479 ///       - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull]
480 ///       - Transmission for the file descriptor of System Manager message for the session is invalid.
481 ///       [eFrameworkunifiedStatusErrNoEBADF]
482 ///       - Place to interrupt by the system call (signal) has occurred during the transmission of the System Manager
483 ///       message for the session. [eFrameworkunifiedStatusErrNoEINTR]
484 ///       - Size of the transmission buffer of the System Manager message for the session is invalid.
485 ///       [eFrameworkunifiedStatusInvldBufSize]
486 ///       - Transmission and reception of System Manager message for the session fails to socket connection.
487 ///       [eFrameworkunifiedStatusBadConnection]
488 ///       - In the case of the message queue open error for reception of System Manager message for the session.
489 ///       [eFrameworkunifiedStatusFail]
490 ///       - System Manager message for the session fails to acquire the message buffer for reception. [eFrameworkunifiedStatusFail]
491 ///       - System Manager message for the session fails in the event control for the reception. [eFrameworkunifiedStatusFail]
492 ///       - Any error has occurred at the time of transmission and receive of the System Manager message for the
493 ///       session. [eFrameworkunifiedStatusFail]
494 ///       - Transmission of System Manager message for the session fails to shared memory access. [eFrameworkunifiedStatusErrOther]
495 /// \~english @par Classification
496 ///       Public
497 /// \~english @par Type
498 ///       Sync only(None communication)
499 /// \~english @par Detail
500 ///       Returns the extended information of the parameters of FrameworkunifiedOnStart(). \n
501 ///       It is assumed that that will be called in the FrameworkunifiedOnStart (), return the correct value when it is called prior
502 ///       \n
503 ///       to the issuance FrameworkunifiedOnStart() is not guaranteed.\n
504 ///       System startup to relaunchStatus is e_SS_SM_RELAUNCH_STATUS_NONE, the service is a case that has been Relaunch
505 ///       \n
506 ///       by the exit (SS_SM_EXIT_RELAUNCH) _SS_SM_RELAUNCH_STATUS_SAFE, if the Relaunch due to the abnormality occurs
507 ///       to \n
508 ///       set the e_SS_SM_RELAUNCH_STATUS_ERR.
509 /// \~english @see  GetInterfaceunifiedOnStopExtInfo, FrameworkunifiedOnStart
510 ////////////////////////////////////////////////////////////////////////////////////
511 EFrameworkunifiedStatus GetInterfaceunifiedOnStartExtInfo(T_SS_SM_START_ExtDataStructType &f_info);  // NOLINT (runtime/references)
512
513 /////////////////////////////////////////////////////////////////////////////////////
514 /// \ingroup GetInterfaceunifiedOnStopExtInfo
515 /// \~english @par Summary
516 ///       API to get the extended information of the end parameter.
517 /// \~english @param [out] f_info
518 ///       T_SS_SM_STOP_ExtDataStructType - Exit extended parameter information
519 /// \~english @par
520 ///       T_SS_SM_STOP_ExtDataStructType Structure
521 /// \~english @code
522 ///             typedef struct {
523 ///             {
524 ///                   BOOL             isProgUpdated;
525 ///                   uint8_t          reserved[];
526 ///             }T_SS_SM_START_ExtDataStructType;
527 ///            @endcode
528 /// \~english @par
529 ///       isProgUpdated:Presence or absence of a program update
530 ///       - TRUE : Yes program update
531 ///       - FALSE : No program update
532 /// \~english @retval eFrameworkunifiedStatusOK Success
533 /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer
534 /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle
535 /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle
536 /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full
537 /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor
538 /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal)
539 /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size
540 /// \~english @retval eFrameworkunifiedStatusBadConnection Failure to socket connection
541 /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred(Socket Connection/Memory Allocation/Event Control)
542 /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory)
543 /// \~english @par Preconditions
544 ///       - Dispatcher for the System Manager is generated, and Availability of the service is TRUE.
545 /// \~english @par Change of the internal state
546 ///       - The internal state is not changed.
547 /// \~english @par Causes of failures
548 ///       - System Manager of the session does not exist. [eFrameworkunifiedStatusNullPointer]
549 ///       - System Manager handle for the session is NULL. [eFrameworkunifiedStatusInvldHandle]
550 ///       - System Manager handle type for the session is not a send and receive type. [eFrameworkunifiedStatusInvldHndlType]
551 ///       - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull]
552 ///       - File descriptor not for the transmission and reception of the System Manager of the session message.
553 ///       [eFrameworkunifiedStatusErrNoEBADF]
554 ///       - Interruption by the system call (signal) occurs during the transmission and reception of the System Manager
555 ///       of the session message. [eFrameworkunifiedStatusErrNoEINTR]
556 ///       - The size of the transmit and receive buffer of the System Manager of the session message is invalid.
557 ///       [eFrameworkunifiedStatusInvldBufSize]
558 ///       - It failed to socket connection for transmission and reception of the System Manager of the session message.
559 ///       [eFrameworkunifiedStatusBadConnection]
560 ///       - Open error of the message queue for the reception of the System Manager of the session message.
561 ///       [eFrameworkunifiedStatusFail]
562 ///       - And fail to acquire the message buffer for reception of the System Manager of the session message.
563 ///       [eFrameworkunifiedStatusFail]
564 ///       - It failed in the event control for the reception of the System Manager of the session message.
565 ///       [eFrameworkunifiedStatusFail]
566 ///       - It failed during transmission and reception of the System Manager of the session message. [eFrameworkunifiedStatusFail]
567 ///       - It failed to shared memory access for transmission and reception of the System Manager of the session
568 ///       message. [eFrameworkunifiedStatusErrOther]
569 /// \~english @par Classification
570 ///       Public
571 /// \~english @par Type
572 ///       Sync only(None communication)
573 /// \~english @par Detail
574 ///       Returns the extended information of the parameters of FrameworkunifiedOnStop(). \n
575 ///       It is assumed that that will be called in the FrameworkunifiedOnStop (), return of the correct value in the case \n
576 ///       that has been called before FrameworkunifiedOnStop() entry into force is not guaranteed.
577 /// \~english @see  GetInterfaceunifiedOnStartExtInfo, FrameworkunifiedOnStop
578 ////////////////////////////////////////////////////////////////////////////////////
579 EFrameworkunifiedStatus GetInterfaceunifiedOnStopExtInfo(T_SS_SM_STOP_ExtDataStructType &f_info);  // NOLINT (runtime/references)
580
581 ////////////////////////////////////////////////////////////////////////////////////////////
582 /// \ingroup SendDebugDumpResponseToSystemManager
583 /// \~english @par Summary
584 ///       Send a debug dump response to system_manager
585 /// \~english @param [in] f_bFormatStrRequired
586 ///       BOOL - Specify whether to dump the application name or not
587 /// \~english @param [in] f_cFormat
588 ///       PCSTR - Display format for the dump (the same character strings format as the printf format)
589 /// \~english @param [in] arg_list
590 ///       ... - Dump data in line with f_cFormat format
591 /// \~english @par
592 ///       f_bFormatStrRequired
593 ///       - true Dump the application name
594 ///       - false Do not dump the application name
595 /// \~english @retval None
596 /// \~english @par Precondition
597 ///       - None
598 /// \~english @par Change in the internal status
599 ///       - The change in the internal status does not occur by this API.
600 /// \~english @par Classification
601 ///       Public
602 /// \~english @par Type
603 ///       Fire and Forget only
604 /// \~english @par Detail
605 ///       When f_bFormatStrRequired is true, write the application name to the buffer for dump. \n
606 ///       Write the data to the buffer for dump in line with f_cFormat. \n
607 ///       Send OnDebugDumpResponseReceived to the SystemManger in order to request the SystemManger to
608 ///       write the contents in the buffer for dump to the log file for debug. \n
609 ///       The maximum size of the buffer for dump is 4Kbyte and the string size of the application name
610 ///       is deducted when the application name is dumped. \n
611 ///       When dumping a string which exceeds 4Kbyte, drop what exceeds the buffer.
612 /// \~english @see
613 ////////////////////////////////////////////////////////////////////////////////////////////
614 void SendDebugDumpResponseToSystemManager(BOOL f_bFormatStrRequired, PCSTR f_cFormat, ...)
615 #ifdef  __GNUC__
616     __attribute__((format(printf, 2, 3)));
617 #endif
618
619 /////////////////////////////////////////////////////////////////////////////////////
620 /// \ingroup SendInterfaceunifiedEmmcLogsRequestToSystemManager
621 /// \~english @par Summary
622 ///       API to request a copy to the specified path of the LOG file of the built-in non-volatile area.
623 /// \~english @param [in] f_path
624 ///       std::string - LOG destination file PATH
625 /// \~english @retval eFrameworkunifiedStatusOK Success
626 /// \~english @retval eFrameworkunifiedStatusInvldBuf Invalid buffer
627 /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer
628 /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle
629 /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle
630 /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full
631 /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor
632 /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal)
633 /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size
634 /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred
635 /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory)
636 /// \~english @par Preconditions
637 ///       - Dispatcher for the System Manager is generated, and Availability of the service is TRUE.
638 /// \~english @par Change of the internal state
639 ///       - The internal state is not changed.
640 /// \~english @par Causes of failures
641 ///       - LOG destination file PATH is NULL(If f_path.c_str() is NULL). [eFrameworkunifiedStatusInvldBuf]
642 ///       - System Manager of the session does not exist. [eFrameworkunifiedStatusNullPointer]
643 ///       - System Manager handle for the session is NULL. [eFrameworkunifiedStatusInvldHandle]
644 ///       - System Manager handle type for the session is not a transmission type. [eFrameworkunifiedStatusInvldHndlType]
645 ///       - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull]
646 ///       - Transmission for the file descriptor of System Manager message for the session is invalid.
647 ///       [eFrameworkunifiedStatusErrNoEBADF]
648 ///       - Place to interrupt by the system call (signal) has occurred during the transmission of the System Manager
649 ///       message for the session. [eFrameworkunifiedStatusErrNoEINTR]
650 ///       - Size of the transmission buffer of the System Manager message for the session is invalid.
651 ///       [eFrameworkunifiedStatusInvldBufSize]
652 ///       - Any error has occurred at the time of transmission of the System Manager message for the session.
653 ///       [eFrameworkunifiedStatusFail]
654 ///       - Transmission of System Manager message for the session fails to shared memory access. [eFrameworkunifiedStatusErrOther]
655 /// \~english @par Classification
656 ///       Public
657 /// \~english @par Type
658 ///       Method only
659 /// \~english @par Detail
660 ///       To copy all of the files that exist in LOG storage area of the built-in non-volatile area in \n
661 ///       the path specified in the f_path. \n
662 ///       If you do not have a copy target, asynchronous response command: Returns the eFrameworkunifiedStatusOK as \n
663 ///       the message data of SS_SM_ERROR_EVENT_INTERFACEUNIFIED_EMMC_LOGS_RSPN.
664 /// \~english @see  SendClearLogsRequestToSystemManager
665 ////////////////////////////////////////////////////////////////////////////////////
666 EFrameworkunifiedStatus SendInterfaceunifiedEmmcLogsRequestToSystemManager(std::string f_path);
667
668 /////////////////////////////////////////////////////////////////////////////////////
669 /// \ingroup SendClearLogsRequestToSystemManager
670 /// \~english @par Summary
671 ///       API to clear the stored in the built-in non-volatile area log.
672 /// \~english @param [in] f_info
673 ///       TSystemManagerClearLogsInfo  - A pointer to the LOG clear information
674 /// \~english @par
675 ///       TSystemManagerClearLogsInfo Structure
676 /// \~english @code
677 ///             typedef struct T_SystemManagerClearLogsInfo{
678 ///             {
679 ///                  void *rsv;
680 ///             }TSystemManagerClearLogsInfo;
681 ///            @endcode
682 /// \~english @par
683 ///             rsv : Reserve area
684 /// \~english @retval eFrameworkunifiedStatusOK Success
685 /// \~english @retval eFrameworkunifiedStatusInvldParam Invalid parameter
686 /// \~english @retval eFrameworkunifiedStatusNullPointer Invalid pointer
687 /// \~english @retval eFrameworkunifiedStatusInvldHandle Invalid handle
688 /// \~english @retval eFrameworkunifiedStatusInvldHndlType Invalid type of handle
689 /// \~english @retval eFrameworkunifiedStatusMsgQFull Message queue is full
690 /// \~english @retval eFrameworkunifiedStatusErrNoEBADF Invalid File-Descriptor
691 /// \~english @retval eFrameworkunifiedStatusErrNoEINTR An interrupt is generated by the system call (signal)
692 /// \~english @retval eFrameworkunifiedStatusInvldBufSize Invalid buffer-size
693 /// \~english @retval eFrameworkunifiedStatusFail Some sort of error occurred
694 /// \~english @retval eFrameworkunifiedStatusErrOther Other error(It failed to open/allocation of shared memory)
695 /// \~english @par Preconditions
696 ///       - Dispatcher for the System Manager is generated, and Availability of the service is TRUE.
697 /// \~english @par Change of the internal state
698 ///       - The internal state is not changed.
699 /// \~english @par Causes of failures
700 ///       - Pointer to the LOG clear information (f_info) is NULL [eFrameworkunifiedStatusInvldParam]
701 ///       - System Manager of the session does not exist. [eFrameworkunifiedStatusNullPointer]
702 ///       - System Manager handle for the session is NULL. [eFrameworkunifiedStatusInvldHandle]
703 ///       - System Manager handle type for the session is not a transmission type. [eFrameworkunifiedStatusInvldHndlType]
704 ///       - System Manager message queue for the session is full. [eFrameworkunifiedStatusMsgQFull]
705 ///       - Transmission for the file descriptor of System Manager message for the session is invalid.
706 ///       [eFrameworkunifiedStatusErrNoEBADF]
707 ///       - Place to interrupt by the system call (signal) has occurred during the transmission of the System Manager
708 ///       message for the session. [eFrameworkunifiedStatusErrNoEINTR]
709 ///       - Size of the transmission buffer of the System Manager message for the session is invalid.
710 ///       [eFrameworkunifiedStatusInvldBufSize]
711 ///       - Any error has occurred at the time of transmission of the System Manager message for the session.
712 ///       [eFrameworkunifiedStatusFail]
713 ///       - Transmission of System Manager message for the session fails to shared memory access. [eFrameworkunifiedStatusErrOther]
714 /// \~english @par Classification
715 ///       Public
716 /// \~english @par Type
717 ///       Fire and Forget x Sync
718 /// \~english @par Detail
719 ///      To delete a LOG stored in the built-in non-volatile area.
720 /// \~english @see  None
721 ////////////////////////////////////////////////////////////////////////////////////
722 EFrameworkunifiedStatus SendClearLogsRequestToSystemManager(TSystemManagerClearLogsInfo *f_info);
723
724 /** @}*/  // end of SystemIf
725 /** @}*/  // end of interface_unified
726 /** @}*/  // end of SystemService
727 /** @}*/  // end of BaseSystem
728
729 /////////////////////////////////////////////////////////////////////////////////////
730 /// \ingroup interface_unified
731 ///
732 /// \brief   AttachCallbackToSystemManager
733 ///
734 /// \note    This function is called by System Manager session clients to attach
735 ///          a callback function to the client application with System Manager
736 ///          configured as the specified sender of the specified protocol message.
737 ///
738 /// \param [in] f_hApp
739 ///         HANDLE - Handle to message queue of the System Manager attached client.
740 /// \param [in] iCmd
741 ///         UI_32 iCmd - Command ID
742 /// \param [in] fpOnCmd
743 ///          CbFuncPtr fpOnCmd - Function pointer  to be called in the form upon
744 ///          the invokation of the specified command ID.  The callback function
745 ///          must have the following signature : void (*)(HANDLE).
746 ///
747 /// \return Status
748 ///         EFrameworkunifiedStatus - success or error
749 ////////////////////////////////////////////////////////////////////////////////////
750 extern EFrameworkunifiedStatus AttachCallbackToSystemManager(HANDLE hApp, UI_32 iCmd, CbFuncPtr fpOnCmd);
751
752 /////////////////////////////////////////////////////////////////////////////////////
753 /// \ingroup interface_unified
754 ///
755 /// \brief   Set of complementary detach functions that accept same arguments
756 ///          as the InterfaceunifiedAttach_XYZ_ToDispatcher() functions do.
757 ///
758 ////////////////////////////////////////////////////////////////////////////////////
759 extern EFrameworkunifiedStatus DetachCallbacksFromInterfaceunifiedDispatcher(HANDLE hApp,
760                                                    PCSTR pServiceName,
761                                                    const FrameworkunifiedProtocolCallbackHandler* pMsgHandler,
762                                                    UI_32 uiHandlerCount,
763                                                    HANDLE hSession = NULL);
764
765 /////////////////////////////////////////////////////////////////////////////////////
766 /// \ingroup interface_unified
767 /// \brief
768 ////////////////////////////////////////////////////////////////////////////////////
769 extern EFrameworkunifiedStatus DetachParentCallbacksFromInterfaceunifiedDispatcher(HANDLE hChildApp,
770                                                          const FrameworkunifiedProtocolCallbackHandler* pMsgHandler,
771                                                          UI_32 uiHandlerCount);
772
773 /////////////////////////////////////////////////////////////////////////////////////
774 /// \ingroup interface_unified
775 ///
776 /// \brief   GetSystemManagerSessionHandle
777 ///
778 /// \note    This function returns the session handle with System Manager
779 ///
780 /// \return HANDLE - A session handle with System Manager
781 /////////////////////////////////////////////////////////////////////////////////////
782 extern HANDLE     GetSystemManagerSessionHandle(void);
783
784 /////////////////////////////////////////////////////////////////////////////////////
785 /// \ingroup interface_unified
786 ///
787 /// \brief   SendShutdownToSystemManager
788 ///
789 /// \note    This function is called to send Shutdown command to System Manager
790 ///
791 /// \param   [in] pData
792 ///          Pwr_ServiceSetInterface *pData  - Pointer to Shutdown Command data
793 ///
794 /// \return Status
795 ///         EFrameworkunifiedStatus - success or error
796 ////////////////////////////////////////////////////////////////////////////////////
797 extern EFrameworkunifiedStatus SendShutdownToSystemManager(Pwr_ServiceSetInterface *pData);
798
799 /////////////////////////////////////////////////////////////////////////////////////
800 /// \ingroup interface_unified
801 ///
802 /// \brief   SendSystemModeRequestToSystemManager
803 ///
804 /// \note    This function is called to send system mode request to System Manager
805 ///
806 /// \return Status
807 ///         EFrameworkunifiedStatus - success or error
808 ////////////////////////////////////////////////////////////////////////////////////
809 extern EFrameworkunifiedStatus SendSystemModeRequestToSystemManager(void);
810
811 /////////////////////////////////////////////////////////////////////////////////////
812 /// \ingroup interface_unified
813 ///
814 /// \brief   SendInitCompReportToSystemManager
815 ///
816 /// \note    This function is called to send init comp report to System Manager
817 ///
818 /// \return Status
819 ///         EFrameworkunifiedStatus - success or error
820 ////////////////////////////////////////////////////////////////////////////////////
821 extern EFrameworkunifiedStatus SendInitCompReportToSystemManager(void);
822
823 /////////////////////////////////////////////////////////////////////////////////////
824 /// \ingroup interface_unified
825 ///
826 /// \brief   SendWakeUpToSystemManager
827 ///
828 /// \note    This function is called to send the Wakeup command to System Manager
829 ///
830 /// \param  [in] pData
831 ///         wakeInfo *pData  - Pointer to Wakeup Command data
832 ///
833 /// \return Status
834 ///         EFrameworkunifiedStatus - success or error
835 ////////////////////////////////////////////////////////////////////////////////////
836 extern EFrameworkunifiedStatus SendWakeUpToSystemManager(wakeInfo *pData);
837
838 /////////////////////////////////////////////////////////////////////////////////////
839 /// \ingroup interface_unified
840 ///
841 /// \brief   SendStartupConfirmationToSystemManager
842 ///
843 /// \note    This function is called to send the startup confirmation information
844 ///          to System Manager
845 ///
846 /// \param   [in] l_startupConfirmationMsg
847 ///          StartupConfirmationMsgStrut &l_startupConfirmationMsg - startup confirmation
848 ///                                                                   data
849 /// \return Status
850 ///         EFrameworkunifiedStatus - success or error
851 ////////////////////////////////////////////////////////////////////////////////////
852 extern EFrameworkunifiedStatus SendStartupConfirmationToSystemManager(StartupConfirmationMsgStrut
853                                                         &l_startupConfirmationMsg);
854
855 /////////////////////////////////////////////////////////////////////////////////////
856 /// \ingroup interface_unified
857 ///
858 /// \brief   SendSystemErrorToSystemManager
859 ///
860 /// \note    This function is called by an application via Native Services to send
861 ///          notice of a critical error to System Manager when a non recoverable
862 ///          run-time error is encountered.
863 ///
864 /// \param   [in]
865 ///
866 /// \return Status
867 ///         EFrameworkunifiedStatus - success or error
868 ////////////////////////////////////////////////////////////////////////////////////
869 EFrameworkunifiedStatus  SendSystemErrorToSystemManager(EFrameworkunifiedSystemError f_systemError);
870
871 /////////////////////////////////////////////////////////////////////////////////////
872 /// \ingroup interface_unified
873 ///
874 /// \brief   Send_CWORD56_HeartBeatRequestToSystemManager
875 ///
876 /// \note    This function forwards a _CWORD56_ heartbeat request received by power
877 ///          services from the power shadow to System Manager.
878 ///
879 /// \param   [in]
880 ///
881 /// \return Status
882 ///         EFrameworkunifiedStatus - success or error
883 ////////////////////////////////////////////////////////////////////////////////////
884 EFrameworkunifiedStatus  Send_CWORD56_HeartBeatRequestToSystemManager(EPWR_HB_REQ_MSG_STRUCT f_HbReq);
885
886 /////////////////////////////////////////////////////////////////////////////////////
887 /// \ingroup interface_unified
888 ///
889 /// \brief   SendBootMicroResetNotificationToSystemManager
890 ///
891 /// \param   ResetReason    Enumerated boot micro reset reason.
892 ///
893 ///  This function is called by Logging Shadow to inform System Manager of a
894 ///  boot micro reset condition.
895 ////////////////////////////////////////////////////////////////////////////////////
896 EFrameworkunifiedStatus SendBootMicroResetNotificationToSystemManager(eSMBootMicroResetReason ResetReason);
897
898 /////////////////////////////////////////////////////////////////////////////////////
899 /// \ingroup interface_unified
900 ///
901 /// \brief   SendDiagLogEventRequestToSystemManager
902 ///
903 /// \note    This function is called by logger to initiate log artifact collection
904 ///          and storage on behalf of diagnostic services.
905 ///
906 /// \param   f_copyDestPathStr
907 ///
908 /// \return Status
909 ///         EFrameworkunifiedStatus - success or error
910 ////////////////////////////////////////////////////////////////////////////////////
911 EFrameworkunifiedStatus SendDiagLoggingRequestToSystemManager(std::string f_copyDestPathStr);
912
913 /////////////////////////////////////////////////////////////////////////////////////
914 /// \ingroup interface_unified
915 ///
916 /// \brief   SendCANLoggingRequestToSystemManager
917 ///
918 /// \note    This function is called by logger to initiate log artifact collection
919 ///          and storage when signaled via CAN.
920 ///
921 /// \return Status
922 ///         EFrameworkunifiedStatus - success or error
923 ////////////////////////////////////////////////////////////////////////////////////
924 EFrameworkunifiedStatus SendCANLoggingRequestToSystemManager(void);
925
926 /////////////////////////////////////////////////////////////////////////////////////
927 /// \ingroup interface_unified
928 ///
929 /// \brief   SendDTCLoggingRequestToSystemManager
930 ///
931 /// \note    This function is called by logger to initiate log artifact collection
932 ///          and storage when signaled via diagnostic command.
933 ///
934 /// \param   f_dtc   Diagnostic trouble code.
935 ///
936 /// \return Status
937 ///         EFrameworkunifiedStatus - success or error
938 ////////////////////////////////////////////////////////////////////////////////////
939 EFrameworkunifiedStatus SendDTCLoggingRequestToSystemManager(UI_32 f_dtc);
940
941 /////////////////////////////////////////////////////////////////////////////////////
942 /// \ingroup interface_unified
943 ///
944 /// \brief   RegisterBootMicroLogRequestCb
945 ///
946 ///  This function is called by Logging Shadow to register a callback function for
947 ///  the boot micro log request that may be generated by System Manager when an
948 ///  error event occurs.
949 ///
950 /// \param   [in] hApp       AGL Framework Application Handle
951 ///
952 /// \param   [in] fpOnCmd    Call back function with the signature:
953 ///                         EFrameworkunifiedStatus fnct(HANDLE hApp);
954 ///
955 /// \return Status
956 ///         EFrameworkunifiedStatus - success or error
957 ////////////////////////////////////////////////////////////////////////////////////
958 EFrameworkunifiedStatus RegisterBootMicroLogRequestCb(HANDLE hApp, CbFuncPtr fpOnCmd);
959
960 /////////////////////////////////////////////////////////////////////////////////////
961 /// \ingroup interface_unified
962 ///
963 /// \brief   SendBootMicroLogResponseToSystemManager
964 ///
965 ///  This function is called by Logging Shadow to provide a string representation of
966 ///  the binary boot-micro log data.
967 ///
968 /// \return Status
969 ///         EFrameworkunifiedStatus - success or error
970 ////////////////////////////////////////////////////////////////////////////////////
971 EFrameworkunifiedStatus SendBootMicroLogResponseToSystemManager(std::string f_logString);
972
973 ////////////////////////////////////////////////////////////////////////////////////////////
974 /// \ingroup interface_unified
975 /// \brief Redirect either formatted, or unformatted response output to System Manager.
976 ///
977 /// \see SendDebugDumpResponseToSystemManager
978 ////////////////////////////////////////////////////////////////////////////////////////////
979 #define SSDEBUGDUMP(args...) (SendDebugDumpResponseToSystemManager(TRUE, ## args))
980
981 ////////////////////////////////////////////////////////////////////////////////////////////
982 /// \ingroup SM_Deletable
983 ////////////////////////////////////////////////////////////////////////////////////////////
984 #define SSDEBUGDUMP_RAW(args...) (SendDebugDumpResponseToSystemManager(FALSE, ## args))
985
986 /////////////////////////////////////////////////////////////////////////////////////
987 /// \ingroup interface_unified
988 ///
989 /// \brief   SendLogStartRequestToSystemManager
990 ///
991 /// \note    This function is call by SS_Logger when the logging process has
992 ///          completed and no additional request for artifacts will be generated.
993 ///
994 /// \param   none.
995 ///
996 /// \return Status
997 ///         EFrameworkunifiedStatus - success or error
998 ////////////////////////////////////////////////////////////////////////////////////
999 EFrameworkunifiedStatus SendLogStartRequestToSystemManager(EErrorEventType f_errorEventType);
1000
1001 /////////////////////////////////////////////////////////////////////////////////////
1002 /// \ingroup interface_unified
1003 ///
1004 /// \brief   SendLogArtifactRequestToSystemManager
1005 ///
1006 /// \note    This function is call by SS_Logger to request SM to acquire and
1007 //           return by reference (filename), the specified logging artifact.
1008 ///
1009 /// \param   [in] f_artifactId, enumerated artifact number.
1010 ///
1011 /// \return Status
1012 ///         EFrameworkunifiedStatus - success or error
1013 ////////////////////////////////////////////////////////////////////////////////////
1014 EFrameworkunifiedStatus SendLogArtifactRequestToSystemManager(EArtifactId f_artifactId);
1015
1016 /////////////////////////////////////////////////////////////////////////////////////
1017 /// \ingroup interface_unified
1018 ///
1019 /// \brief   SendLogCompleteRequestToSystemManager
1020 ///
1021 /// \note    This function is call by SS_Logger when the logging process has
1022 ///          completed and no additional request for artifacts will be generated.
1023 ///
1024 /// \param   none.
1025 ///
1026 /// \return Status
1027 ///         EFrameworkunifiedStatus - success or error
1028 ////////////////////////////////////////////////////////////////////////////////////
1029 EFrameworkunifiedStatus SendLogCompleteRequestToSystemManager(EFrameworkunifiedStatus f_eStatus = eFrameworkunifiedStatusOK);
1030
1031 /////////////////////////////////////////////////////////////////////////////////////
1032 /// \ingroup interface_unified
1033 ///
1034 /// \brief   SendEelExportRequestToSystemManager
1035 ///
1036 /// \note    This function forwards the Device Detection EEL_export trigger
1037 ///          received by SS Logger to System Manager.
1038 ///
1039 /// \param   f_path   Destination path for the trigger artifacts.
1040 ///
1041 /// \return Status
1042 ///         EFrameworkunifiedStatus - success or error
1043 ////////////////////////////////////////////////////////////////////////////////////
1044 EFrameworkunifiedStatus SendEelExportRequestToSystemManager(std::string f_path);
1045
1046 /////////////////////////////////////////////////////////////////////////////////////
1047 /// \ingroup interface_unified
1048 ///
1049 /// \brief   DebugDump request callback function.
1050 ///
1051 /// \note    This function is called when System Manager requests the receiving
1052 ///          application to generate their debugdump.
1053 ///
1054 /// \param   hApp
1055 ///
1056 /// \return Status
1057 ///         EFrameworkunifiedStatus - success or error
1058 ////////////////////////////////////////////////////////////////////////////////////
1059 EFrameworkunifiedStatus OnSystemManagerDebugDump(HANDLE hApp);
1060
1061 #endif // __SS_SYSTEM_MANAGER_CLIENT_IF_H__  // NOLINT (build/header_guard)
1062 /** @}*/
1063 /** @}*/
1064 /** @}*/