@@ -87,24 +87,24 @@ SUCH DAMAGE.
87
87
88
88
Author: Adam Dunkels
89
89
*/
90
- #define PERFC_PT_BEGIN (__state ) \
90
+ #define PERFC_PT_BEGIN (__pt ) \
91
91
enum { \
92
92
count_offset = __COUNTER__ + 1, \
93
93
}; \
94
- uint8_t *ptPTState = &(__state); \
95
- switch (__state ) { \
94
+ perfc_pt_t *ptPTCB = (((perfc_pt_t *)&(__pt))); \
95
+ switch (ptPTCB->chState ) { \
96
96
case __COUNTER__ - count_offset:
97
97
98
98
#define PERFC_PT_ENTRY (...) \
99
- (*ptPTState ) = (__COUNTER__ - count_offset + 1) >> 1; \
99
+ (ptPTCB->chState ) = (__COUNTER__ - count_offset + 1) >> 1; \
100
100
__VA_ARGS__ \
101
- case (__COUNTER__ - count_offset) >> 1: (void)(*ptPTState );
101
+ case (__COUNTER__ - count_offset) >> 1: (void)(ptPTCB->chState );
102
102
103
103
#define PERFC_PT_YIELD (...) \
104
104
PERFC_PT_ENTRY(return __VA_ARGS__;)
105
105
106
106
#define PERFC_PT_END () \
107
- (*ptPTState ) = 0; \
107
+ (ptPTCB->chState ) = 0; \
108
108
break; \
109
109
}
110
110
@@ -121,7 +121,7 @@ Author: Adam Dunkels
121
121
122
122
#define PERFC_PT_WAIT_FOR_OBJ_UNTIL (__CONDITION , ...) \
123
123
{ \
124
- PERFC_PT__ENTRY() \
124
+ PERFC_PT_ENTRY() \
125
125
__VA_ARGS__; \
126
126
if (!(__CONDITION)) { \
127
127
PERFC_PT_GOTO_PREV_ENTRY(fsm_rt_wait_for_obj); \
@@ -139,17 +139,11 @@ Author: Adam Dunkels
139
139
140
140
#define PERFC_PT_DELAY_MS (__ms , ...) \
141
141
{ \
142
- PERFC_PT_ENTRY( \
143
- static int64_t PERFC_SAFE_NAME(s_lTimestamp); \
144
- UNUSED_PARAM(PERFC_SAFE_NAME(s_lTimestamp)); \
145
- int64_t *PERFC_SAFE_NAME(plTimestamp) \
146
- = (&PERFC_SAFE_NAME(s_lTimestamp), ##__VA_ARGS__); \
147
- *PERFC_SAFE_NAME(plTimestamp) = get_system_ms(); \
148
- ) \
149
- PERFC_SAFE_NAME(plTimestamp) \
150
- = (&PERFC_SAFE_NAME(s_lTimestamp), ##__VA_ARGS__); \
142
+ PERFC_PT_ENTRY( \
143
+ ptPTCB->lTimestamp = get_system_ms(); \
144
+ ) \
151
145
int64_t PERFC_SAFE_NAME(lElapsedMs) = \
152
- get_system_ms() - *PERFC_SAFE_NAME(plTimestamp); \
146
+ get_system_ms() - ptPTCB->lTimestamp; \
153
147
if (PERFC_SAFE_NAME(lElapsedMs) < (__ms)) { \
154
148
PERFC_PT_GOTO_PREV_ENTRY(fsm_rt_on_going); \
155
149
} \
@@ -286,6 +280,11 @@ label_switch_start:
286
280
287
281
/*============================ TYPES =========================================*/
288
282
283
+ typedef struct perfc_pt_t {
284
+ uint8_t chState ;
285
+ int64_t lTimestamp ;
286
+ } perfc_pt_t ;
287
+
289
288
#if __C_LANGUAGE_EXTENSIONS_PERFC_COROUTINE__
290
289
291
290
typedef struct perfc_cpt_t {
0 commit comments