RDK-B
ccsp_hal_emmc.h
Go to the documentation of this file.
1 /*
2  * If not stated otherwise in this file or this component's LICENSE file the
3  * following copyright and licenses apply:
4  *
5  * Copyright 2016 RDK Management
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18 */
19 
20 /**
21 * @file ccsp_hal_emmc.h
22 * @brief For CCSP Component: EMMC Status HAL Layer
23 *
24 */
25 
26 /**
27  * @defgroup EMMC_HAL EMMC HAL
28  *
29  * EMMC HAL is used for the RDK-B EMMC Status abstraction layer.
30  *
31  * @defgroup EMMC_HAL_TYPES EMMC HAL Data Types
32  * @ingroup EMMC_HAL
33  *
34  * @defgroup EMMC_HAL_APIS EMMC HAL APIs
35  * @ingroup EMMC_HAL
36  *
37  **/
38 
39 #ifndef __CCSP_HAL_EMMC_H__
40 #define __CCSP_HAL_EMMC_H__
41 
42 #include <stdbool.h>
43 
44 /**
45  * @addtogroup EMMC_HAL_TYPES
46  * @{
47  */
48 
49 /* Defines */
50 #define RDK_STMGR_MAX_DEVICES 10
51 #define RDK_STMGR_MAX_STRING_LENGTH 128
52 #define RDK_STMGR_PARTITION_LENGTH 256
53 #define RDK_STMGR_DIAGNOSTICS_LENGTH 256
54 #define RDK_STMGR_DIAGNOSTICS_BLOB_LENGTH 2048
55 #define RDK_STMGR_MAX_DIAGNOSTIC_ATTRIBUTES 20 /*!< Max Number of SMART diagnostics attributes. */
56 
57 /* Structs & Enums */
58 /**
59  * @enum eSTMGRReturns
60  *
61  * @brief List of ReturnCodes for EMMC API's Fetch Operation.
62  */
63 typedef enum _stmgr_ReturnCode {
70 
71 /**
72  * @enum eSTMGRDeviceType
73  *
74  * @brief List of DeviceTypes supported.
75  */
76 typedef enum _stmgr_DeviceType {
85 
86 /**
87  * @enum eSTMGRDeviceStatus
88  *
89  * @brief DeviceStatus List.
90  */
91 typedef enum _stmgr_DeviceStatus {
101 
102 /**
103  * @enum eSTMGREvents
104  *
105  * @brief Event Types List.
106  */
107 typedef enum _stmgr_events {
111 } eSTMGREvents;
112 
113 typedef struct _stmgr_DeviceIds {
114  unsigned short m_numOfDevices;
117 
118 typedef struct _stmgr_DeviceInfo {
121  unsigned long long m_capacity;
132 
133 typedef struct _stmgr_DeviceInfos {
134  unsigned short m_numOfDevices;
137 
138 typedef struct _stmgr_PartitionInfo {
144  unsigned long long m_capacity;
145  unsigned long long m_freeSpace;
149 
151  char m_name[RDK_STMGR_MAX_STRING_LENGTH]; /*!< Gives SMART diagnostics attributes name. */
152  char m_value[RDK_STMGR_MAX_STRING_LENGTH]; /*!< Gives SMART diagnostics attributes value, Comma separated. */
154 
156  unsigned short m_numOfAttributes;
159 
160 typedef struct _stmgr_Health {
165  union {
168  } m_diagnostics;
174 
175 typedef struct _stmgr_EventMessage {
183 
184 typedef struct _stmgr_CallBackData{
185  bool isSDCard;
186  char mountPath[200];
188 
189 /** @} */ //END OF GROUP EMMC_HAL_TYPES
190 
191 //typedef void (*fnSTMGR_EventCallback)(eSTMGREventMessage*);
192 
193 // HAL Functions
194 
195 /**
196  * @addtogroup EMMC_HAL_APIS
197  * @{
198  */
199 
200 /* CcspHalEmmcGetHealthInfo() function */
201 /**
202 * @description Provides EMMC health information
203 * @param
204 * pHealthInfo - Pointer to Health Info structure that needs to be updated.
205 * @return The status of the operation.
206 * @retval RDK_STMGR_RETURN_SUCCESS Success.
207 * @retval RDK_STMGR_RETURN_GENERIC_FAILURE Generic Failure.
208 * @retval RDK_STMGR_RETURN_INIT_FAILURE Initialization failure.
209 * @retval RDK_STMGR_RETURN_INVALID_INPUT Invalid Input.
210 * @retval RDK_STMGR_RETURN_UNKNOWN_FAILURE Unknown Failure.
211 *
212 */
214 
215 /* CcspHalEmmcGetDeviceInfo() function */
216 /**
217 * @description Provides EMMC Device information
218 * @param
219 * pHealthInfo - Pointer to Device Info structure that needs to be updated.
220 * @return The status of the operation.
221 * @retval RDK_STMGR_RETURN_SUCCESS Success.
222 * @retval RDK_STMGR_RETURN_GENERIC_FAILURE Generic Failure.
223 * @retval RDK_STMGR_RETURN_INIT_FAILURE Initialization failure.
224 * @retval RDK_STMGR_RETURN_INVALID_INPUT Invalid Input.
225 * @retval RDK_STMGR_RETURN_UNKNOWN_FAILURE Unknown Failure.
226 *
227 */
229 
230 /** @} */ //END OF GROUP EMMC_HAL_APIS
231 
232 #endif /* __CCSP_HAL_EMMC_H__ */
_stmgr_DeviceInfos
Definition: ccsp_hal_emmc.h:133
RDK_STMGR_DEVICE_STATUS_DISK_FULL
@ RDK_STMGR_DEVICE_STATUS_DISK_FULL
Definition: ccsp_hal_emmc.h:96
RDK_STMGR_MAX_DEVICES
#define RDK_STMGR_MAX_DEVICES
Definition: ccsp_hal_emmc.h:50
_stmgr_DeviceInfo::m_hasSMARTSupport
bool m_hasSMARTSupport
Definition: ccsp_hal_emmc.h:130
_stmgr_EventMessage::m_deviceType
eSTMGRDeviceType m_deviceType
Definition: ccsp_hal_emmc.h:178
eSTMGRDeviceStatus
enum _stmgr_DeviceStatus eSTMGRDeviceStatus
_stmgr_Health::m_deviceID
char m_deviceID[128]
Definition: ccsp_hal_emmc.h:161
eSTMGRDiagAttributesList
struct _stmgr_DiagnosticsAttributeList eSTMGRDiagAttributesList
_stmgr_DiagnosticsAttributeList::m_diagnostics
eSTMGRDiagAttributes m_diagnostics[20]
Definition: ccsp_hal_emmc.h:157
RDK_STMGR_DEVICE_TYPE_HDD
@ RDK_STMGR_DEVICE_TYPE_HDD
Definition: ccsp_hal_emmc.h:77
_stmgr_CallBackData
Definition: ccsp_hal_emmc.h:184
RDK_STMGR_DEVICE_TYPE_FLASH
@ RDK_STMGR_DEVICE_TYPE_FLASH
Definition: ccsp_hal_emmc.h:80
RDK_STMGR_DEVICE_TYPE_EMMCCARD
@ RDK_STMGR_DEVICE_TYPE_EMMCCARD
Definition: ccsp_hal_emmc.h:82
RDK_STMGR_DEVICE_STATUS_NOT_QUALIFIED
@ RDK_STMGR_DEVICE_STATUS_NOT_QUALIFIED
Definition: ccsp_hal_emmc.h:95
_stmgr_Health::m_diagnostics
union _stmgr_Health::@1 m_diagnostics
_stmgr_Health::m_isHealthy
bool m_isHealthy
Definition: ccsp_hal_emmc.h:164
_stmgr_Health::m_list
eSTMGRDiagAttributesList m_list
Definition: ccsp_hal_emmc.h:166
_stmgr_EventMessage::m_description
char m_description[128]
Definition: ccsp_hal_emmc.h:180
_stmgr_DiagnosticsAttributeList::m_numOfAttributes
unsigned short m_numOfAttributes
Definition: ccsp_hal_emmc.h:156
RDK_STMGR_EVENT_HEALTH_WARNING
@ RDK_STMGR_EVENT_HEALTH_WARNING
Definition: ccsp_hal_emmc.h:109
RDK_STMGR_DEVICE_TYPE_MAX
@ RDK_STMGR_DEVICE_TYPE_MAX
Definition: ccsp_hal_emmc.h:83
RDK_STMGR_PARTITION_LENGTH
#define RDK_STMGR_PARTITION_LENGTH
Definition: ccsp_hal_emmc.h:52
_stmgr_DiagnosticsAttributes
Definition: ccsp_hal_emmc.h:150
_stmgr_EventMessage
Definition: ccsp_hal_emmc.h:175
_stmgr_DeviceInfo::m_type
eSTMGRDeviceType m_type
Definition: ccsp_hal_emmc.h:120
_stmgr_DeviceType
_stmgr_DeviceType
Definition: ccsp_hal_emmc.h:76
_stmgr_DeviceInfo::m_capacity
unsigned long long m_capacity
Definition: ccsp_hal_emmc.h:121
_stmgr_DeviceInfos::m_numOfDevices
unsigned short m_numOfDevices
Definition: ccsp_hal_emmc.h:134
RDK_STMGR_RETURN_UNKNOWN_FAILURE
@ RDK_STMGR_RETURN_UNKNOWN_FAILURE
Definition: ccsp_hal_emmc.h:68
RDK_STMGR_MAX_STRING_LENGTH
#define RDK_STMGR_MAX_STRING_LENGTH
Definition: ccsp_hal_emmc.h:51
_stmgr_DeviceInfo::m_firmwareVersion
char m_firmwareVersion[128]
Definition: ccsp_hal_emmc.h:127
_stmgr_EventMessage::m_diagnostics
char m_diagnostics[256]
Definition: ccsp_hal_emmc.h:181
_stmgr_CallBackData::isSDCard
bool isSDCard
Definition: ccsp_hal_emmc.h:185
eSTMGRDeviceIDs
struct _stmgr_DeviceIds eSTMGRDeviceIDs
_stmgr_CallBackData::mountPath
char mountPath[200]
Definition: ccsp_hal_emmc.h:186
RDK_STMGR_DEVICE_TYPE_USB
@ RDK_STMGR_DEVICE_TYPE_USB
Definition: ccsp_hal_emmc.h:79
_stmgr_PartitionInfo::m_partitionId
char m_partitionId[128]
Definition: ccsp_hal_emmc.h:139
_stmgr_DeviceInfo::m_hwVersion
char m_hwVersion[128]
Definition: ccsp_hal_emmc.h:128
eSTMGRCallBackData
struct _stmgr_CallBackData eSTMGRCallBackData
eSTMGRPartitionInfo
struct _stmgr_PartitionInfo eSTMGRPartitionInfo
RDK_STMGR_DEVICE_TYPE_NVRAM
@ RDK_STMGR_DEVICE_TYPE_NVRAM
Definition: ccsp_hal_emmc.h:81
eSTMGRDeviceInfoList
struct _stmgr_DeviceInfos eSTMGRDeviceInfoList
_stmgr_PartitionInfo::m_isDVRSupported
bool m_isDVRSupported
Definition: ccsp_hal_emmc.h:147
CcspHalEmmcGetHealthInfo
eSTMGRReturns CcspHalEmmcGetHealthInfo(eSTMGRHealthInfo *pHealthInfo)
RDK_STMGR_MAX_DIAGNOSTIC_ATTRIBUTES
#define RDK_STMGR_MAX_DIAGNOSTIC_ATTRIBUTES
Definition: ccsp_hal_emmc.h:55
RDK_STMGR_DEVICE_STATUS_UNKNOWN
@ RDK_STMGR_DEVICE_STATUS_UNKNOWN
Definition: ccsp_hal_emmc.h:99
_stmgr_Health
Definition: ccsp_hal_emmc.h:160
_stmgr_PartitionInfo::m_isTSBSupported
bool m_isTSBSupported
Definition: ccsp_hal_emmc.h:146
_stmgr_Health::m_firstExceededConfiguredLife
eSTMGRDiagAttributesList m_firstExceededConfiguredLife
Definition: ccsp_hal_emmc.h:170
RDK_STMGR_DEVICE_STATUS_READ_FAILURE
@ RDK_STMGR_DEVICE_STATUS_READ_FAILURE
Definition: ccsp_hal_emmc.h:97
_stmgr_DiagnosticsAttributeList
Definition: ccsp_hal_emmc.h:155
_stmgr_EventMessage::m_eventType
eSTMGREvents m_eventType
Definition: ccsp_hal_emmc.h:176
RDK_STMGR_RETURN_INIT_FAILURE
@ RDK_STMGR_RETURN_INIT_FAILURE
Definition: ccsp_hal_emmc.h:66
_stmgr_DeviceInfo
Definition: ccsp_hal_emmc.h:118
_stmgr_DeviceInfo::m_ifATAstandard
char m_ifATAstandard[128]
Definition: ccsp_hal_emmc.h:129
eSTMGRHealthInfo
struct _stmgr_Health eSTMGRHealthInfo
RDK_STMGR_DEVICE_TYPE_SDCARD
@ RDK_STMGR_DEVICE_TYPE_SDCARD
Definition: ccsp_hal_emmc.h:78
_stmgr_DeviceInfos::m_devices
eSTMGRDeviceInfo m_devices[10]
Definition: ccsp_hal_emmc.h:135
RDK_STMGR_DEVICE_STATUS_READ_ONLY
@ RDK_STMGR_DEVICE_STATUS_READ_ONLY
Definition: ccsp_hal_emmc.h:93
_stmgr_PartitionInfo::m_status
eSTMGRDeviceStatus m_status
Definition: ccsp_hal_emmc.h:143
eSTMGRDiagAttributes
struct _stmgr_DiagnosticsAttributes eSTMGRDiagAttributes
_stmgr_DeviceStatus
_stmgr_DeviceStatus
Definition: ccsp_hal_emmc.h:91
RDK_STMGR_RETURN_INVALID_INPUT
@ RDK_STMGR_RETURN_INVALID_INPUT
Definition: ccsp_hal_emmc.h:67
RDK_STMGR_RETURN_SUCCESS
@ RDK_STMGR_RETURN_SUCCESS
Definition: ccsp_hal_emmc.h:64
_stmgr_Health::m_lifetimesList
eSTMGRDiagAttributesList m_lifetimesList
Definition: ccsp_hal_emmc.h:169
RDK_STMGR_DEVICE_STATUS_OK
@ RDK_STMGR_DEVICE_STATUS_OK
Definition: ccsp_hal_emmc.h:92
eSTMGREvents
enum _stmgr_events eSTMGREvents
_stmgr_Health::m_isOperational
bool m_isOperational
Definition: ccsp_hal_emmc.h:163
eSTMGRDeviceInfo
struct _stmgr_DeviceInfo eSTMGRDeviceInfo
_stmgr_DeviceInfo::m_manufacturer
char m_manufacturer[128]
Definition: ccsp_hal_emmc.h:124
eSTMGREventMessage
struct _stmgr_EventMessage eSTMGREventMessage
_stmgr_events
_stmgr_events
Definition: ccsp_hal_emmc.h:107
_stmgr_DiagnosticsAttributes::m_value
char m_value[128]
Definition: ccsp_hal_emmc.h:152
_stmgr_DeviceIds::m_numOfDevices
unsigned short m_numOfDevices
Definition: ccsp_hal_emmc.h:114
_stmgr_DeviceIds::m_deviceIDs
char m_deviceIDs[10][128]
Definition: ccsp_hal_emmc.h:115
_stmgr_Health::m_blob
char m_blob[2048]
Definition: ccsp_hal_emmc.h:167
_stmgr_PartitionInfo::m_freeSpace
unsigned long long m_freeSpace
Definition: ccsp_hal_emmc.h:145
RDK_STMGR_DIAGNOSTICS_LENGTH
#define RDK_STMGR_DIAGNOSTICS_LENGTH
Definition: ccsp_hal_emmc.h:53
_stmgr_Health::m_firstExceededMaxLife
eSTMGRDiagAttributesList m_firstExceededMaxLife
Definition: ccsp_hal_emmc.h:171
_stmgr_PartitionInfo::m_format
char m_format[128]
Definition: ccsp_hal_emmc.h:142
eSTMGRDeviceType
enum _stmgr_DeviceType eSTMGRDeviceType
_stmgr_DeviceInfo::m_status
eSTMGRDeviceStatus m_status
Definition: ccsp_hal_emmc.h:122
eSTMGRReturns
enum _stmgr_ReturnCode eSTMGRReturns
RDK_STMGR_RETURN_GENERIC_FAILURE
@ RDK_STMGR_RETURN_GENERIC_FAILURE
Definition: ccsp_hal_emmc.h:65
_stmgr_DeviceInfo::m_model
char m_model[128]
Definition: ccsp_hal_emmc.h:125
RDK_STMGR_DEVICE_STATUS_WRITE_FAILURE
@ RDK_STMGR_DEVICE_STATUS_WRITE_FAILURE
Definition: ccsp_hal_emmc.h:98
_stmgr_Health::m_deviceType
eSTMGRDeviceType m_deviceType
Definition: ccsp_hal_emmc.h:162
_stmgr_DiagnosticsAttributes::m_name
char m_name[128]
Definition: ccsp_hal_emmc.h:151
_stmgr_PartitionInfo::m_mountPath
char m_mountPath[128]
Definition: ccsp_hal_emmc.h:141
_stmgr_EventMessage::m_deviceStatus
eSTMGRDeviceStatus m_deviceStatus
Definition: ccsp_hal_emmc.h:179
_stmgr_PartitionInfo::m_name
char m_name[128]
Definition: ccsp_hal_emmc.h:140
_stmgr_EventMessage::m_deviceID
char m_deviceID[128]
Definition: ccsp_hal_emmc.h:177
_stmgr_PartitionInfo
Definition: ccsp_hal_emmc.h:138
RDK_STMGR_EVENT_STATUS_CHANGED
@ RDK_STMGR_EVENT_STATUS_CHANGED
Definition: ccsp_hal_emmc.h:108
_stmgr_DeviceInfo::m_partitions
char m_partitions[256]
Definition: ccsp_hal_emmc.h:123
_stmgr_DeviceInfo::m_serialNumber
char m_serialNumber[128]
Definition: ccsp_hal_emmc.h:126
_stmgr_PartitionInfo::m_capacity
unsigned long long m_capacity
Definition: ccsp_hal_emmc.h:144
_stmgr_Health::m_healthStatesList
eSTMGRDiagAttributesList m_healthStatesList
Definition: ccsp_hal_emmc.h:172
RDK_STMGR_DIAGNOSTICS_BLOB_LENGTH
#define RDK_STMGR_DIAGNOSTICS_BLOB_LENGTH
Definition: ccsp_hal_emmc.h:54
CcspHalEmmcGetDeviceInfo
eSTMGRReturns CcspHalEmmcGetDeviceInfo(eSTMGRDeviceInfo *pDeviceInfo)
_stmgr_ReturnCode
_stmgr_ReturnCode
Definition: ccsp_hal_emmc.h:63
_stmgr_DeviceInfo::m_deviceID
char m_deviceID[128]
Definition: ccsp_hal_emmc.h:119
_stmgr_DeviceIds
Definition: ccsp_hal_emmc.h:113
RDK_STMGR_DEVICE_STATUS_NOT_PRESENT
@ RDK_STMGR_DEVICE_STATUS_NOT_PRESENT
Definition: ccsp_hal_emmc.h:94
RDK_STMGR_EVENT_DEVICE_FAILURE
@ RDK_STMGR_EVENT_DEVICE_FAILURE
Definition: ccsp_hal_emmc.h:110