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
|
#ifndef __EEMCS_STATE_H__
#define __EEMCS_STATE_H__
#include "eemcs_kal.h"
/*
* For user program to query the EEMCS detail state by
* CCCI_IOC_CHECK_STATE _IOR(CCCI_IOC_MAGIC, 12, unsigned int)
*/
typedef enum EEMCS_STATE_E {
EEMCS_INVALID =0,
EEMCS_GATE,
EEMCS_INIT,
EEMCS_XBOOT,
EEMCS_MOLY_HS_P1,
EEMCS_MOLY_HS_P2,
EEMCS_BOOTING_DONE,
EEMCS_EXCEPTION,
EEMCS_STATE_MAX,
}EEMCS_STATE;
/*
* For user program to query the MD state by
* CCCI_IOC_GET_MD_STATE _IOR(CCCI_IOC_MAGIC, 1, unsigned int)
*/
typedef enum MD_STATE_E{
MD_STATE_INVALID = 0, /* MD_BOOT_STAGE_0 */
MD_STATE_INIT = 1, /* MD_BOOT_STAGE_1 */
MD_STATE_READY = 2, /* MD_BOOT_STAGE_2 */
MD_STATE_EXPT = 3 /* MD_BOOT_STAGE_EXCEPTION */
}MD_STATE;
typedef struct{
struct list_head list;
void (*callback)(EEMCS_STATE data);
} EEMCS_STATE_CALLBACK_T;
void eemcs_state_callback_init(void);
kal_bool eemcs_state_callback(EEMCS_STATE state);
kal_bool eemcs_state_callback_register(EEMCS_STATE_CALLBACK_T *node);
kal_bool eemcs_state_callback_unregister(EEMCS_STATE_CALLBACK_T *node);
KAL_UINT32 check_device_state(void);
kal_bool eemcs_device_ready(void);
kal_bool change_device_state(KAL_UINT32 state);
bool eemcs_on_reset(void);
#endif // __EEMCS_STATE_H__
|