summaryrefslogtreecommitdiffstats
path: root/task_manager/client/ss_data_init/include/system_service/tskm_data_init.h
blob: 8cb49d622b6b05979b74ac8144e6c0d596f10b30 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
/*
 * @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 tskm_data_init.h
 * @brief \~english This file contains API of initial task manager data
 */
/** @addtogroup BaseSystem
 *  @{
 */
/** @addtogroup system_service
 *  @ingroup BaseSystem
 *  @{
 */
/** @addtogroup task_manager
 *  @ingroup system_service
 *  @{
 */

#ifndef TASK_MANAGER_CLIENT_SS_DATA_INIT_INCLUDE_SYSTEM_SERVICE_TSKM_DATA_INIT_H_
#define TASK_MANAGER_CLIENT_SS_DATA_INIT_INCLUDE_SYSTEM_SERVICE_TSKM_DATA_INIT_H_

#include <native_service/frameworkunified_types.h>
#include <system_service/ss_system_manager_if.h>
#include "system_service/tskm_type.h"

/////////////////////////////////////////////////////////////////////////////////////
/// \ingroup TSKM_GetExtBootInfo
/// \~english @par Summary
///        Gets boot extended information.
/// \~english @param [in] p_info
///        T_SS_SM_START_ExtDataStructType *   - Boot extended information
/// \~english @code
///            typedef struct {
///                BOOL             isProgUpdated;
///                EMRelaunchStatus relaunchStatus;
///                BOOL             isMapUpdated;
///                BOOL             isMapDiffUpdated;
///                uint8_t          reserved[];
///            }T_SS_SM_START_ExtDataStructType;
///            @endcode
/// \~english @retval TSKM_E_OK Normal end
/// \~english @retval TSKM_E_PAR %Parameter error
/// \~english @par Preconditions
///       - None
/// \~english @par Change of the internal state
///       - The internal state is not changed.
/// \~english @par Causes of failures
///       - p_info is NULL. [TSKM_E_PAR]
/// \~english @par Classification
///       Public
/// \~english @par Type
///       Sync only
/// \~english @par Detail
///       Is available only at the functions defined by using TSKM_DATA_INIT_FUNC.
/// \~english @see  TSKM_DATA_INIT_FUNC
////////////////////////////////////////////////////////////////////////////////////
TSKM_ERR_t TSKM_GetExtBootInfo(T_SS_SM_START_ExtDataStructType *p_info);

/////////////////////////////////////////////////////////////////////////////////////
/// \ingroup TSKM_DATA_INIT_FUNC
/// \~english @par Summary
///       Defines callback functions to initialize data.
/// \~english @param [in] serviceName
///        const char*   - Service name
/// \~english @param [in] argName
///        const T_SS_SM_START_DataStructType*   - Argument name
/// \~english @code
///            typedef struct T_SS_SM_START_DataStruct{
///                EPWR_WAKEUP_FACTOR_TYPE  startupReason;
///                BOOL                     isUserModeOn;
///                ESMDataResetModeInfo       dataResetMode;
///                EPWR_SC_SECURITY_STATUS  securityStatus;
///                EPWR_SC_WAKEUP_TYPE    wakeupType;
///                ESMDramBackupStatus    dramBackupStatus;
///                ESMResetStatus   resetStatus;
///                UI_32                        resetCount;
///            } T_SS_SM_START_DataStructType;
///            @endcode
/// \~english @retval eFrameworkunifiedStatusOK Normal
/// \~english @retval eFrameworkunifiedStatusFail Check error
/// \~english @par Preconditions
///       - None
/// \~english @par Change of the internal state
///       - The internal state is not changed.
/// \~english @par Causes of failures
///       - Return values depend on the mount of callback functions. [eFrameworkunifiedStatusFail]
/// \~english @par Classification
///       Public
/// \~english @par Detail
///      Defines the callback functions to initialize data. \n
///       The callback functions defined by this macro are executed at a timing
///        when boot factor is fixed after booting the system. \n
///       (Task_Manager executes Callback prior to the boot of ActivityManager.)\n
///       If each service mounts and installs initialization functions, Task_Manager boots it
///        at a timing when data initialization is necessary. \n
///       Each service can install the object file of initialization functions by setting them
///        to MAKE variables INST_DATAINITOBJ of Makefile.
/// \~english @see  None
////////////////////////////////////////////////////////////////////////////////////
#define TSKM_DATA_INIT_FUNC(ServiceName, ArgName) \
  EFrameworkunifiedStatus tskm_ ## ServiceName ## _data_init(T_SS_SM_START_DataStructType* ArgName)

#endif  // TASK_MANAGER_CLIENT_SS_DATA_INIT_INCLUDE_SYSTEM_SERVICE_TSKM_DATA_INIT_H_
/** @}*/  // end of Task_Manager
/** @}*/  // end of SystemService
/** @}*/  // end of BaseSystem