1
6
7
8
9
10
11
12
13
14
15
16
17
18
19
23
24
25
26
27
28
29
30
31
32
34
35
36
37
38
39
40
46
47
48
49
52
53
56
57
60
61
66
67
70
71
72
73
74
75
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
116
117
118
119
120
/* ... */
#pragma once
#include <stddef.h>
#include <stdbool.h>
#include "esp_err.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
/* ... */
SLEEP_EVENT_HW_EXIT_SLEEP,
SLEEP_EVENT_SW_CLK_READY,
SLEEP_EVENT_SW_EXIT_SLEEP,
SLEEP_EVENT_SW_GOTO_SLEEP,
SLEEP_EVENT_HW_TIME_START,
SLEEP_EVENT_HW_GOTO_SLEEP,
SLEEP_EVENT_SW_CPU_TO_MEM_START,
SLEEP_EVENT_SW_CPU_TO_MEM_END,
#if CONFIG_IDF_TARGET_ESP32H2
SLEEP_EVENT_HW_FLASH_BBPLL_EN_START,
SLEEP_EVENT_HW_FLASH_BBPLL_EN_STOP, /* ... */
#endif
SLEEP_EVENT_HW_PLL_EN_START,
SLEEP_EVENT_HW_PLL_EN_STOP,
SLEEP_EVENT_CB_INDEX_NUM,
}{ ... } esp_sleep_event_cb_index_t;
/* ... */
typedef esp_err_t (*esp_sleep_event_cb_t)(void *user_arg, void *ext_arg);
/* ... */
struct _esp_sleep_event_cb_config_t {
/* ... */
esp_sleep_event_cb_t cb;
/* ... */
void *user_arg;
/* ... */
uint32_t prior;
/* ... */
struct _esp_sleep_event_cb_config_t *next;
}{ ... };
typedef struct _esp_sleep_event_cb_config_t esp_sleep_event_cb_config_t;
struct _esp_sleep_event_cbs_config_t {
/* ... */
esp_sleep_event_cb_config_t *sleep_event_cb_config[SLEEP_EVENT_CB_INDEX_NUM];
}{ ... };
typedef struct _esp_sleep_event_cbs_config_t esp_sleep_event_cbs_config_t;
/* ... */
esp_err_t esp_sleep_register_event_callback(esp_sleep_event_cb_index_t event_id, const esp_sleep_event_cb_config_t *event_cb_conf);
/* ... */
esp_err_t esp_sleep_unregister_event_callback(esp_sleep_event_cb_index_t event_id, esp_sleep_event_cb_t cb);
/* ... */
void esp_sleep_execute_event_callbacks(esp_sleep_event_cb_index_t event_id, void *ext_arg);
#ifdef __cplusplus
}{...}
#endif