1 #include <trcRecorder.h>
2
3 extern volatile ULONG _tx_thread_system_state;
4 extern TX_THREAD *_tx_thread_execute_ptr;
5 extern TX_THREAD *_tx_thread_current_ptr;
6 extern TX_THREAD pxIdleTxThreadDummy;
7 static TX_THREAD *pxLastRunningTxThread = TX_NULL;
8
9 traceResult xTraceEventBeginRawOffline_orig(uint32_t uiSize, TraceEventHandle_t* pxEventHandle);
10 traceResult xTraceEventEndOffline_orig(TraceEventHandle_t pxEventHandle);
11
12 /* Original version of TRC_EVENT_BEGIN which uses xTraceEventBeginRawOffline_orig for the purpose
13 * of allowing interrupt locking for xTraceCheckThreadSwitch together with event posting. */
14 #define TRC_EVENT_BEGIN_OFFLINE_ORIG(uiEventCode, uiPayloadSize, pxEventHandle) \
15 (xTraceIsRecorderEnabled() ? \
16 ( \
17 (xTraceEventBeginRawOffline_orig(sizeof(TraceBaseEvent_t) + (uiPayloadSize), pxEventHandle)) == TRC_SUCCESS ? \
18 ( \
19 pxTraceEventDataTable->coreEventData[TRC_CFG_GET_CURRENT_CORE()].eventCounter++, \
20 SET_BASE_EVENT_DATA((TraceBaseEvent_t*)(((TraceEventData_t*)*(pxEventHandle))->pvBlob), \
21 uiEventCode, \
22 (((TraceEventData_t*)*(pxEventHandle))->size - sizeof(TraceBaseEvent_t)) / sizeof(uint32_t), \
23 pxTraceEventDataTable->coreEventData[TRC_CFG_GET_CURRENT_CORE()].eventCounter), \
24 ((TraceEventData_t*)*(pxEventHandle))->offset += sizeof(TraceBaseEvent_t), \
25 TRC_SUCCESS \
26 ) : TRC_FAIL \
27 ) : TRC_FAIL \
28 )
29
xTraceResetCurrentThread()30 void xTraceResetCurrentThread()
31 {
32 pxLastRunningTxThread = TX_NULL;
33 }
34
xTraceCheckThreadSwitch()35 void xTraceCheckThreadSwitch()
36 {
37 static uint8_t uiFirstThreadSwitch = 0;
38
39 if (uiFirstThreadSwitch == 0 && _tx_thread_execute_ptr != 0 && _tx_thread_system_state == 0)
40 {
41 uiFirstThreadSwitch = 1;
42
43 /* Update */
44 pxLastRunningTxThread = _tx_thread_execute_ptr;
45
46 TraceEventHandle_t xTraceHandle;
47
48 /* Since the regular xTraceEventBegin and xTraceEventEnd are wrapped via CTI, which calls this
49 * function, we have to use the original (non CTI wrapped) begin/end functions.
50 */
51 if (TRC_EVENT_BEGIN_OFFLINE_ORIG(PSF_EVENT_THREAD_SYSTEM_SUSPEND_SUCCESS, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
52 xTraceEventAddPointer(xTraceHandle, (void*)_tx_thread_execute_ptr);
53 xTraceEventEndOffline_orig(xTraceHandle);
54 }
55 }
56
57 if (uiFirstThreadSwitch)
58 {
59 /* Handle thread swapping while considering our dummy idle thread mapping. */
60 TX_THREAD *pxCurrentTxThread = _tx_thread_current_ptr == TX_NULL ? &pxIdleTxThreadDummy : _tx_thread_current_ptr;
61
62 if (pxCurrentTxThread != pxLastRunningTxThread) {
63 /* Update */
64 pxLastRunningTxThread = pxCurrentTxThread;
65
66 /* There has been a thread switch */
67 TraceEventHandle_t xTraceHandle;
68
69 /* Since the regular xTraceEventBegin and xTraceEventEnd are wrapped via CTI, which calls this
70 * function, we have to use the original (non CTI wrapped) begin/end functions.
71 */
72 if (TRC_EVENT_BEGIN_OFFLINE_ORIG(PSF_EVENT_TASK_POTENTIAL_SWITCH_RESULT, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
73 xTraceEventAddPointer(xTraceHandle, (void*)pxCurrentTxThread);
74 xTraceEventEndOffline_orig(xTraceHandle);
75 }
76 }
77 }
78 }
79
80
xTraceISREnterHook(UINT uiTxEventCode,UINT uiISRNr)81 void xTraceISREnterHook(UINT uiTxEventCode, UINT uiISRNr)
82 {
83 (void)uiTxEventCode;
84 (void)uiISRNr;
85 }
86
xTraceISRExitHook(UINT uiTxEventCode)87 void xTraceISRExitHook(UINT uiTxEventCode)
88 {
89 (void)uiTxEventCode;
90 }
91
xTraceTimeSliceHook(UINT uiTxEventCode,TX_THREAD * pxNextThreadPtr)92 void xTraceTimeSliceHook(UINT uiTxEventCode, TX_THREAD *pxNextThreadPtr)
93 {
94 TraceEventHandle_t xTraceHandle;
95
96 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
97 xTraceEventAddPointer(xTraceHandle, (void*)pxNextThreadPtr);
98 xTraceEventEnd(xTraceHandle);
99 }
100
101 /* Due to the design of ThreadX tracing we have to insert a potential switch
102 * check here. */
103 if (xTraceEventBegin(PSF_EVENT_TASK_POTENTIAL_SWITCH, 0, &xTraceHandle) == TRC_SUCCESS) {
104 xTraceEventEnd(xTraceHandle);
105 }
106 }
107
108
xTraceBlockAllocateHook(UINT uiTxEventCode,TX_BLOCK_POOL * pxBlockPool,ULONG uiWaitOption,UINT uiRemainingBlocks)109 void xTraceBlockAllocateHook(UINT uiTxEventCode, TX_BLOCK_POOL *pxBlockPool, ULONG uiWaitOption, UINT uiRemainingBlocks)
110 {
111 TraceEventHandle_t xTraceHandle;
112
113 if (xTraceEventBegin(uiTxEventCode, sizeof(void*) + sizeof(ULONG) + sizeof(UINT), &xTraceHandle) == TRC_SUCCESS) {
114 xTraceEventAddPointer(xTraceHandle, (void*)pxBlockPool);
115 xTraceEventAddUnsignedBaseType(xTraceHandle, uiWaitOption);
116 xTraceEventAdd32(xTraceHandle, uiRemainingBlocks);
117 xTraceEventEnd(xTraceHandle);
118 }
119 }
120
xTraceBlockPoolCreateHook(UINT uiTxEventCode,TX_BLOCK_POOL * pxBlockPool,ULONG uiBlockSize,VOID * pvPoolStart,ULONG uiTotalBlocks)121 void xTraceBlockPoolCreateHook(UINT uiTxEventCode, TX_BLOCK_POOL *pxBlockPool, ULONG uiBlockSize, VOID *pvPoolStart, ULONG uiTotalBlocks)
122 {
123 TraceEventHandle_t xTraceHandle;
124
125 if (pxBlockPool->tx_block_pool_name != 0) {
126 xTraceObjectSetNameWithoutHandle((void*)pxBlockPool, pxBlockPool->tx_block_pool_name);
127 }
128
129 if (xTraceEventBegin(uiTxEventCode, sizeof(void*) + sizeof(ULONG) + sizeof(void*) + sizeof(ULONG), &xTraceHandle) == TRC_SUCCESS) {
130 xTraceEventAddPointer(xTraceHandle, (void*)pxBlockPool);
131 xTraceEventAddUnsignedBaseType(xTraceHandle, uiBlockSize);
132 xTraceEventAddPointer(xTraceHandle, (void*)pvPoolStart);
133 xTraceEventAddUnsignedBaseType(xTraceHandle, uiTotalBlocks);
134 xTraceEventEnd(xTraceHandle);
135 }
136 }
137
xTraceBlockPoolDeleteHook(UINT uiTxEventCode,TX_BLOCK_POOL * pxBlockPool)138 void xTraceBlockPoolDeleteHook(UINT uiTxEventCode, TX_BLOCK_POOL *pxBlockPool)
139 {
140 xTraceObjectUnregisterWithoutHandle(uiTxEventCode, (void*)pxBlockPool, 0);
141 }
142
xTraceBlockPoolInfoGetHook(UINT uiTxEventCode,TX_BLOCK_POOL * pxBlockPool)143 void xTraceBlockPoolInfoGetHook(UINT uiTxEventCode, TX_BLOCK_POOL *pxBlockPool)
144 {
145 TraceEventHandle_t xTraceHandle;
146
147 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
148 xTraceEventAddPointer(xTraceHandle, (void*)pxBlockPool);
149 xTraceEventEnd(xTraceHandle);
150 }
151 }
152
xTraceBlockPoolPerformanceInfoGetHook(UINT uiTxEventCode,TX_BLOCK_POOL * pxBlockPool)153 void xTraceBlockPoolPerformanceInfoGetHook(UINT uiTxEventCode, TX_BLOCK_POOL *pxBlockPool)
154 {
155 TraceEventHandle_t xTraceHandle;
156
157 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
158 xTraceEventAddPointer(xTraceHandle, (void*)pxBlockPool);
159 xTraceEventEnd(xTraceHandle);
160 }
161 }
162
xTraceBlockPoolPerformanceSystemInfoGetHook(UINT uiTxEventCode)163 void xTraceBlockPoolPerformanceSystemInfoGetHook(UINT uiTxEventCode)
164 {
165 /* Intentionally left empty */
166 (void)uiTxEventCode;
167 }
168
xTraceBlockPoolPrioritizeHook(UINT uiTxEventCode,TX_BLOCK_POOL * pxBlockPool)169 void xTraceBlockPoolPrioritizeHook(UINT uiTxEventCode, TX_BLOCK_POOL *pxBlockPool)
170 {
171 TraceEventHandle_t xTraceHandle;
172
173 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
174 xTraceEventAddPointer(xTraceHandle, (void*)pxBlockPool);
175 xTraceEventEnd(xTraceHandle);
176 }
177 }
178
xTraceBlockReleaseHook(UINT uiTxEventCode,VOID * pvBlockPool)179 void xTraceBlockReleaseHook(UINT uiTxEventCode, VOID *pvBlockPool)
180 {
181 TraceEventHandle_t xTraceHandle;
182
183 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
184 xTraceEventAddPointer(xTraceHandle, (void*)pvBlockPool);
185 xTraceEventEnd(xTraceHandle);
186 }
187 }
188
189
xTraceByteAllocateHook(UINT uiTxEventCode)190 void xTraceByteAllocateHook(UINT uiTxEventCode)
191 {
192 /* Intentionally left empty */
193 (void)uiTxEventCode;
194 }
195
xTraceBytePoolCreateHook(UINT uiTxEventCode,TX_BYTE_POOL * pxBytePool,VOID * pvStartPtr,ULONG uiPoolSize)196 void xTraceBytePoolCreateHook(UINT uiTxEventCode, TX_BYTE_POOL *pxBytePool, VOID *pvStartPtr, ULONG uiPoolSize)
197 {
198 TraceEventHandle_t xTraceHandle;
199
200 if (pxBytePool->tx_byte_pool_name != 0) {
201 xTraceObjectSetNameWithoutHandle((void*)pxBytePool, pxBytePool->tx_byte_pool_name);
202 }
203
204 if (xTraceEventBegin(uiTxEventCode, sizeof(void*) + sizeof(void*) + sizeof(ULONG),
205 &xTraceHandle) == TRC_SUCCESS) {
206 xTraceEventAddPointer(xTraceHandle, (void*)pxBytePool);
207 xTraceEventAddPointer(xTraceHandle, (void*)pvStartPtr);
208 xTraceEventAddUnsignedBaseType(xTraceHandle, uiPoolSize);
209 xTraceEventEnd(xTraceHandle);
210 }
211 }
212
xTraceBytePoolDeleteHook(UINT uiTxEventCode,TX_BYTE_POOL * pxBytePool)213 void xTraceBytePoolDeleteHook(UINT uiTxEventCode, TX_BYTE_POOL *pxBytePool)
214 {
215 xTraceObjectUnregisterWithoutHandle(uiTxEventCode, (void*)pxBytePool, 0);
216 }
217
xTraceBytePoolInfoGetHook(UINT uiTxEventCode,TX_BYTE_POOL * pxBytePool)218 void xTraceBytePoolInfoGetHook(UINT uiTxEventCode, TX_BYTE_POOL *pxBytePool)
219 {
220 TraceEventHandle_t xTraceHandle;
221
222 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
223 xTraceEventAddPointer(xTraceHandle, (void*)pxBytePool);
224 xTraceEventEnd(xTraceHandle);
225 }
226 }
227
xTraceBytePoolPerformanceInfoGetHook(UINT uiTxEventCode,TX_BYTE_POOL * pxBytePool)228 void xTraceBytePoolPerformanceInfoGetHook(UINT uiTxEventCode, TX_BYTE_POOL *pxBytePool)
229 {
230 TraceEventHandle_t xTraceHandle;
231
232 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
233 xTraceEventAddPointer(xTraceHandle, (void*)pxBytePool);
234 xTraceEventEnd(xTraceHandle);
235 }
236 }
237
xTraceBytePoolPerformanceSystemInfoGetHook(UINT uiTxEventCode)238 void xTraceBytePoolPerformanceSystemInfoGetHook(UINT uiTxEventCode)
239 {
240 /* Intentionally left empty */
241 (void)uiTxEventCode;
242 }
243
xTraceBytePoolPrioritizeHook(UINT uiTxEventCode,TX_BYTE_POOL * pxBytePool)244 void xTraceBytePoolPrioritizeHook(UINT uiTxEventCode, TX_BYTE_POOL *pxBytePool)
245 {
246 TraceEventHandle_t xTraceHandle;
247
248 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
249 xTraceEventAddPointer(xTraceHandle, (void*)pxBytePool);
250 xTraceEventEnd(xTraceHandle);
251 }
252 }
253
xTraceByteReleaseHook(UINT uiTxEventCode,TX_BYTE_POOL * pxBytePool,VOID * pvMemory,UINT uiAvailableBytes)254 void xTraceByteReleaseHook(UINT uiTxEventCode, TX_BYTE_POOL *pxBytePool, VOID *pvMemory, UINT uiAvailableBytes)
255 {
256 TraceEventHandle_t xTraceHandle;
257
258 if (xTraceEventBegin(uiTxEventCode, sizeof(void*) + sizeof(void*) + sizeof(UINT),
259 &xTraceHandle) == TRC_SUCCESS) {
260 xTraceEventAddPointer(xTraceHandle, (void*)pxBytePool);
261 xTraceEventAddPointer(xTraceHandle, (void*)pvMemory);
262 xTraceEventAdd32(xTraceHandle, uiAvailableBytes);
263 xTraceEventEnd(xTraceHandle);
264 }
265 }
266
267
xTraceEventFlagsCreateHook(UINT uiTxEventCode,TX_EVENT_FLAGS_GROUP * pxFlagsGroup)268 void xTraceEventFlagsCreateHook(UINT uiTxEventCode, TX_EVENT_FLAGS_GROUP *pxFlagsGroup)
269 {
270 TraceEventHandle_t xTraceHandle;
271
272 if (pxFlagsGroup->tx_event_flags_group_name != 0) {
273 xTraceObjectSetNameWithoutHandle((void*)pxFlagsGroup, pxFlagsGroup->tx_event_flags_group_name);
274 }
275
276 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
277 xTraceEventAddPointer(xTraceHandle, (void*)pxFlagsGroup);
278 xTraceEventEnd(xTraceHandle);
279 }
280 }
281
xTraceEventFlagsDeleteHook(UINT uiTxEventCode,TX_EVENT_FLAGS_GROUP * pxFlagsGroup)282 void xTraceEventFlagsDeleteHook(UINT uiTxEventCode, TX_EVENT_FLAGS_GROUP *pxFlagsGroup)
283 {
284 xTraceObjectUnregisterWithoutHandle(uiTxEventCode, (void*)pxFlagsGroup, 0);
285 }
286
xTraceEventFlagsGetHook(UINT uiTxEventCode,TX_EVENT_FLAGS_GROUP * pxFlagsGroup,ULONG ulRequestedFlags,UINT uiGetOption)287 void xTraceEventFlagsGetHook(UINT uiTxEventCode, TX_EVENT_FLAGS_GROUP *pxFlagsGroup, ULONG ulRequestedFlags, UINT uiGetOption)
288 {
289 TraceEventHandle_t xTraceHandle;
290
291 if (xTraceEventBegin(uiTxEventCode, sizeof(void*) + sizeof(ULONG) + sizeof(UINT), &xTraceHandle) == TRC_SUCCESS) {
292 xTraceEventAddPointer(xTraceHandle, (void*)pxFlagsGroup);
293 xTraceEventAddUnsignedBaseType(xTraceHandle, ulRequestedFlags);
294 xTraceEventAdd32(xTraceHandle, uiGetOption);
295 xTraceEventEnd(xTraceHandle);
296 }
297 }
298
xTraceEventFlagsInfoGetHook(UINT uiTxEventCode,TX_EVENT_FLAGS_GROUP * pxFlagsGroup)299 void xTraceEventFlagsInfoGetHook(UINT uiTxEventCode, TX_EVENT_FLAGS_GROUP *pxFlagsGroup)
300 {
301 TraceEventHandle_t xTraceHandle;
302
303 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
304 xTraceEventAddPointer(xTraceHandle, (void*)pxFlagsGroup);
305 xTraceEventEnd(xTraceHandle);
306 }
307 }
308
xTraceEventFlagsPerformanceInfoGetHook(UINT uiTxEventCode,TX_EVENT_FLAGS_GROUP * pxFlagsGroup)309 void xTraceEventFlagsPerformanceInfoGetHook(UINT uiTxEventCode, TX_EVENT_FLAGS_GROUP *pxFlagsGroup)
310 {
311 TraceEventHandle_t xTraceHandle;
312
313 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
314 xTraceEventAddPointer(xTraceHandle, (void*)pxFlagsGroup);
315 xTraceEventEnd(xTraceHandle);
316 }
317 }
318
xTraceEventFlagsPerformanceSystemInfoGetHook(UINT uiTxEventCode)319 void xTraceEventFlagsPerformanceSystemInfoGetHook(UINT uiTxEventCode)
320 {
321 /* Intentionally left empty */
322 (void)uiTxEventCode;
323 }
324
xTraceEventFlagsSetHook(UINT uiTxEventCode,TX_EVENT_FLAGS_GROUP * pxFlagsGroup,ULONG ulFlagsToSet,UINT uiSetOption)325 void xTraceEventFlagsSetHook(UINT uiTxEventCode, TX_EVENT_FLAGS_GROUP *pxFlagsGroup, ULONG ulFlagsToSet, UINT uiSetOption)
326 {
327 TraceEventHandle_t xTraceHandle;
328
329 if (xTraceEventBegin(uiTxEventCode, sizeof(void*) + sizeof(ULONG) + sizeof(UINT), &xTraceHandle) == TRC_SUCCESS) {
330 xTraceEventAddPointer(xTraceHandle, (void*)pxFlagsGroup);
331 xTraceEventAddUnsignedBaseType(xTraceHandle, ulFlagsToSet);
332 xTraceEventAdd32(xTraceHandle, uiSetOption);
333 xTraceEventEnd(xTraceHandle);
334 }
335 }
336
xTraceEventFlagsSetNotifyHook(UINT uiTxEventCode,TX_EVENT_FLAGS_GROUP * pxFlagsGroup)337 void xTraceEventFlagsSetNotifyHook(UINT uiTxEventCode, TX_EVENT_FLAGS_GROUP *pxFlagsGroup)
338 {
339 TraceEventHandle_t xTraceHandle;
340
341 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
342 xTraceEventAddPointer(xTraceHandle, (void*)pxFlagsGroup);
343 xTraceEventEnd(xTraceHandle);
344 }
345 }
346
347
xTraceMutexCreateHook(UINT uiTxEventCode,TX_MUTEX * pxMutex,UINT uiPrioInherit)348 void xTraceMutexCreateHook(UINT uiTxEventCode, TX_MUTEX *pxMutex, UINT uiPrioInherit)
349 {
350 TraceEventHandle_t xTraceHandle;
351
352 if (pxMutex->tx_mutex_name != 0) {
353 xTraceObjectSetNameWithoutHandle((void*)pxMutex, pxMutex->tx_mutex_name);
354 }
355
356 if (xTraceEventBegin(uiTxEventCode, sizeof(void*) + sizeof(UINT), &xTraceHandle) == TRC_SUCCESS) {
357 xTraceEventAddPointer(xTraceHandle, (void*)pxMutex);
358 xTraceEventAdd32(xTraceHandle, uiPrioInherit);
359 xTraceEventEnd(xTraceHandle);
360 }
361 }
362
xTraceMutexDeleteHook(UINT uiTxEventCode,TX_MUTEX * pxMutex)363 void xTraceMutexDeleteHook(UINT uiTxEventCode, TX_MUTEX *pxMutex)
364 {
365 xTraceObjectUnregisterWithoutHandle(uiTxEventCode, (void*)pxMutex, 0);
366 }
367
xTraceMutexGetHook(UINT uiTxEventCode,TX_MUTEX * pxMutex)368 void xTraceMutexGetHook(UINT uiTxEventCode, TX_MUTEX *pxMutex)
369 {
370 /* Intentionally left empty */
371 (void)uiTxEventCode;
372 (void)pxMutex;
373 }
374
xTraceMutexInfoGetHook(UINT uiTxEventCode,TX_MUTEX * pxMutex)375 void xTraceMutexInfoGetHook(UINT uiTxEventCode, TX_MUTEX *pxMutex)
376 {
377 TraceEventHandle_t xTraceHandle;
378
379 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
380 xTraceEventAddPointer(xTraceHandle, (void*)pxMutex);
381 xTraceEventEnd(xTraceHandle);
382 }
383 }
384
xTraceMutexPerformanceInfoGetHook(UINT uiTxEventCode,TX_MUTEX * pxMutex)385 void xTraceMutexPerformanceInfoGetHook(UINT uiTxEventCode, TX_MUTEX *pxMutex)
386 {
387 TraceEventHandle_t xTraceHandle;
388
389 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
390 xTraceEventAddPointer(xTraceHandle, (void*)pxMutex);
391 xTraceEventEnd(xTraceHandle);
392 }
393 }
394
xTraceMutexPerformanceSystemInfoGetHook(UINT uiTxEventCode)395 void xTraceMutexPerformanceSystemInfoGetHook(UINT uiTxEventCode)
396 {
397 /* Intentionally left empty */
398 (void)uiTxEventCode;
399 }
400
xTraceMutexPrioritizeHook(UINT uiTxEventCode,TX_MUTEX * pxMutex)401 void xTraceMutexPrioritizeHook(UINT uiTxEventCode, TX_MUTEX *pxMutex)
402 {
403 TraceEventHandle_t xTraceHandle;
404
405 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
406 xTraceEventAddPointer(xTraceHandle, (void*)pxMutex);
407 xTraceEventEnd(xTraceHandle);
408 }
409 }
410
xTraceMutexPutHook(UINT uiTxEventCode,TX_MUTEX * pxMutex,UINT uiStateAfter)411 void xTraceMutexPutHook(UINT uiTxEventCode, TX_MUTEX *pxMutex, UINT uiStateAfter)
412 {
413 TraceEventHandle_t xTraceHandle;
414
415 if (xTraceEventBegin(uiTxEventCode, sizeof(void*) + sizeof(UINT), &xTraceHandle) == TRC_SUCCESS) {
416 xTraceEventAddPointer(xTraceHandle, (void*)pxMutex);
417 xTraceEventAdd32(xTraceHandle, uiStateAfter);
418 xTraceEventEnd(xTraceHandle);
419 }
420 }
421
422
xTraceQueueCreateHook(UINT uiTxEventCode,TX_QUEUE * pxQueue,UINT uiMessageSize,VOID * pvQueueStart,UINT uiQueueSize)423 void xTraceQueueCreateHook(UINT uiTxEventCode, TX_QUEUE *pxQueue, UINT uiMessageSize, VOID *pvQueueStart, UINT uiQueueSize)
424 {
425 TraceEventHandle_t xTraceHandle;
426
427 if (pxQueue->tx_queue_name != 0) {
428 xTraceObjectSetNameWithoutHandle((void*)pxQueue, pxQueue->tx_queue_name);
429 }
430
431 if (xTraceEventBegin(uiTxEventCode, sizeof(void*) + sizeof(UINT) + sizeof(void*) + sizeof(UINT),
432 &xTraceHandle) == TRC_SUCCESS) {
433 xTraceEventAddPointer(xTraceHandle, (void*)pxQueue);
434 xTraceEventAdd32(xTraceHandle, uiMessageSize);
435 xTraceEventAddPointer(xTraceHandle, (void*)pvQueueStart);
436 xTraceEventAdd32(xTraceHandle, uiQueueSize);
437 xTraceEventEnd(xTraceHandle);
438 }
439 }
440
xTraceQueueDeleteHook(UINT uiTxEventCode,TX_QUEUE * pxQueue)441 void xTraceQueueDeleteHook(UINT uiTxEventCode, TX_QUEUE *pxQueue)
442 {
443 xTraceObjectUnregisterWithoutHandle(uiTxEventCode, (void*)pxQueue, 0);
444 }
445
xTraceQueueFlushHook(UINT uiTxEventCode,TX_QUEUE * pxQueue)446 void xTraceQueueFlushHook(UINT uiTxEventCode, TX_QUEUE *pxQueue)
447 {
448 TraceEventHandle_t xTraceHandle;
449
450 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
451 xTraceEventAddPointer(xTraceHandle, (void*)pxQueue);
452 xTraceEventEnd(xTraceHandle);
453 }
454 }
455
xTraceQueueFrontSendHook(UINT uiTxEventCode,TX_QUEUE * pxQueue)456 void xTraceQueueFrontSendHook(UINT uiTxEventCode, TX_QUEUE *pxQueue)
457 {
458 /* Intentionally left empty */
459 (void)uiTxEventCode;
460 (void)pxQueue;
461 }
462
xTraceQueueInfoGetHook(UINT uiTxEventCode,TX_QUEUE * pxQueue)463 void xTraceQueueInfoGetHook(UINT uiTxEventCode, TX_QUEUE *pxQueue)
464 {
465 TraceEventHandle_t xTraceHandle;
466
467 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
468 xTraceEventAddPointer(xTraceHandle, (void*)pxQueue);
469 xTraceEventEnd(xTraceHandle);
470 }
471 }
472
xTraceQueuePerformanceInfoGetHook(UINT uiTxEventCode,TX_QUEUE * pxQueue)473 void xTraceQueuePerformanceInfoGetHook(UINT uiTxEventCode, TX_QUEUE *pxQueue)
474 {
475 TraceEventHandle_t xTraceHandle;
476
477 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
478 xTraceEventAddPointer(xTraceHandle, (void*)pxQueue);
479 xTraceEventEnd(xTraceHandle);
480 }
481 }
482
xTraceQueuePerformanceSystemInfoGetHook(UINT uiTxEventCode)483 void xTraceQueuePerformanceSystemInfoGetHook(UINT uiTxEventCode)
484 {
485 /* Intentionally left empty */
486 (void)uiTxEventCode;
487 }
488
xTraceQueuePrioritizeHook(UINT uiTxEventCode,TX_QUEUE * pxQueue)489 void xTraceQueuePrioritizeHook(UINT uiTxEventCode, TX_QUEUE *pxQueue)
490 {
491 TraceEventHandle_t xTraceHandle;
492
493 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
494 xTraceEventAddPointer(xTraceHandle, (void*)pxQueue);
495 xTraceEventEnd(xTraceHandle);
496 }
497 }
498
xTraceQueueReceiveHook(UINT uiTxEventCode)499 void xTraceQueueReceiveHook(UINT uiTxEventCode)
500 {
501 /* Intentionally left empty */
502 (void)uiTxEventCode;
503 }
504
xTraceQueueSendHook(UINT uiTxEventCode)505 void xTraceQueueSendHook(UINT uiTxEventCode)
506 {
507 /* Intentionally left empty */
508 (void)uiTxEventCode;
509 }
510
xTraceQueueSendNotifyHook(UINT uiTxEventCode,TX_QUEUE * pxQueue)511 void xTraceQueueSendNotifyHook(UINT uiTxEventCode, TX_QUEUE *pxQueue)
512 {
513 TraceEventHandle_t xTraceHandle;
514
515 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
516 xTraceEventAddPointer(xTraceHandle, (void*)pxQueue);
517 xTraceEventEnd(xTraceHandle);
518 }
519 }
520
521
xTraceSemaphoreCeilingPutHook(UINT uiTxEventCode)522 void xTraceSemaphoreCeilingPutHook(UINT uiTxEventCode)
523 {
524 /* Intentionally left empty */
525 (void)uiTxEventCode;
526 }
527
xTraceSemaphoreCreateHook(UINT uiTxEventCode,TX_SEMAPHORE * pxSemaphore,ULONG uiInitialCount)528 void xTraceSemaphoreCreateHook(UINT uiTxEventCode, TX_SEMAPHORE *pxSemaphore, ULONG uiInitialCount)
529 {
530 TraceEventHandle_t xTraceHandle;
531
532 if (pxSemaphore->tx_semaphore_name != 0) {
533 xTraceObjectSetNameWithoutHandle((void*)pxSemaphore, pxSemaphore->tx_semaphore_name);
534 }
535
536 if (xTraceEventBegin(uiTxEventCode, sizeof(void*) + sizeof(ULONG), &xTraceHandle) == TRC_SUCCESS) {
537 xTraceEventAddPointer(xTraceHandle, (void*)pxSemaphore);
538 xTraceEventAddUnsignedBaseType(xTraceHandle, uiInitialCount);
539 xTraceEventEnd(xTraceHandle);
540 }
541 }
542
xTraceSemaphoreDeleteHook(UINT uiTxEventCode,TX_SEMAPHORE * pxSemaphore)543 void xTraceSemaphoreDeleteHook(UINT uiTxEventCode, TX_SEMAPHORE *pxSemaphore)
544 {
545 xTraceObjectUnregisterWithoutHandle(uiTxEventCode, (void*)pxSemaphore, pxSemaphore->tx_semaphore_count);
546 }
547
xTraceSemaphoreGetHook(UINT uiTxEventCode)548 void xTraceSemaphoreGetHook(UINT uiTxEventCode)
549 {
550 /* Intentionally left empty */
551 (void)uiTxEventCode;
552 }
553
xTraceSemaphoreInfoGetHook(UINT uiTxEventCode,TX_SEMAPHORE * pxSemaphore)554 void xTraceSemaphoreInfoGetHook(UINT uiTxEventCode, TX_SEMAPHORE *pxSemaphore)
555 {
556 TraceEventHandle_t xTraceHandle;
557
558 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
559 xTraceEventAddPointer(xTraceHandle, (void*)pxSemaphore);
560 xTraceEventEnd(xTraceHandle);
561 }
562 }
563
xTraceSemaphorePerformanceInfoGetHook(UINT uiTxEventCode,TX_SEMAPHORE * pxSemaphore)564 void xTraceSemaphorePerformanceInfoGetHook(UINT uiTxEventCode, TX_SEMAPHORE *pxSemaphore)
565 {
566 TraceEventHandle_t xTraceHandle;
567
568 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
569 xTraceEventAddPointer(xTraceHandle, (void*)pxSemaphore);
570 xTraceEventEnd(xTraceHandle);
571 }
572 }
573
xTraceSemaphorePerformanceSystemInfoGetHook(UINT uiTxEventCode)574 void xTraceSemaphorePerformanceSystemInfoGetHook(UINT uiTxEventCode)
575 {
576 /* Intentionally left empty */
577 (void)uiTxEventCode;
578 }
579
xTraceSemaphorePrioritizeHook(UINT uiTxEventCode,TX_SEMAPHORE * pxSemaphore)580 void xTraceSemaphorePrioritizeHook(UINT uiTxEventCode, TX_SEMAPHORE *pxSemaphore)
581 {
582 TraceEventHandle_t xTraceHandle;
583
584 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
585 xTraceEventAddPointer(xTraceHandle, (void*)pxSemaphore);
586 xTraceEventEnd(xTraceHandle);
587 }
588 }
589
xTraceSemaphorePutHook(UINT uiTxEventCode,TX_SEMAPHORE * pxSemaphore)590 void xTraceSemaphorePutHook(UINT uiTxEventCode, TX_SEMAPHORE *pxSemaphore)
591 {
592 TraceEventHandle_t xTraceHandle;
593
594 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
595 xTraceEventAddPointer(xTraceHandle, (void*)pxSemaphore);
596 xTraceEventEnd(xTraceHandle);
597 }
598 }
599
xTraceSemaphorePutNotifyHook(UINT uiTxEventCode,TX_SEMAPHORE * pxSemaphore)600 void xTraceSemaphorePutNotifyHook(UINT uiTxEventCode, TX_SEMAPHORE *pxSemaphore)
601 {
602 TraceEventHandle_t xTraceHandle;
603
604 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
605 xTraceEventAddPointer(xTraceHandle, (void*)pxSemaphore);
606 xTraceEventEnd(xTraceHandle);
607 }
608 }
609
xTraceThreadResumeHook(UINT uiTxEventCode,TX_THREAD * pxThread)610 void xTraceThreadResumeHook(UINT uiTxEventCode, TX_THREAD *pxThread)
611 {
612 (void)uiTxEventCode;
613
614 xTraceTaskReady(pxThread);
615 }
616
xTraceThreadSuspendHook(UINT uiTxEventCode,TX_THREAD * pxThread)617 void xTraceThreadSuspendHook(UINT uiTxEventCode, TX_THREAD *pxThread)
618 {
619 (void)pxThread;
620 (void)uiTxEventCode;
621
622 TraceEventHandle_t xTraceHandle;
623
624 if (xTraceEventBegin(PSF_EVENT_TASK_POTENTIAL_SWITCH, 0, &xTraceHandle) == TRC_SUCCESS) {
625 xTraceEventEnd(xTraceHandle);
626 }
627 }
628
xTraceThreadCreateHook(UINT uiTxEventCode,TX_THREAD * pxThread,UINT uiPriority)629 void xTraceThreadCreateHook(UINT uiTxEventCode, TX_THREAD *pxThread, UINT uiPriority)
630 {
631 (void)uiTxEventCode;
632
633 TraceTaskHandle_t xTaskHandle;
634
635 xTraceTaskRegister((void*)pxThread, pxThread->tx_thread_name, uiPriority, &xTaskHandle);
636 }
637
xTraceThreadDeleteHook(UINT uiTxEventCode,TX_THREAD * pxThread)638 void xTraceThreadDeleteHook(UINT uiTxEventCode, TX_THREAD *pxThread)
639 {
640 (void)uiTxEventCode;
641
642 xTraceTaskUnregisterWithoutHandle((void*)pxThread, pxThread->tx_thread_priority);
643 }
644
xTraceThreadEntryExitNotifyHook(UINT uiTxEventCode,TX_THREAD * pxThread)645 void xTraceThreadEntryExitNotifyHook(UINT uiTxEventCode, TX_THREAD *pxThread)
646 {
647 TraceEventHandle_t xTraceHandle;
648
649 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
650 xTraceEventAddPointer(xTraceHandle, (void*)pxThread);
651 xTraceEventEnd(xTraceHandle);
652 }
653 }
654
xTraceThreadIdentifyHook(UINT uiTxEventCode)655 void xTraceThreadIdentifyHook(UINT uiTxEventCode)
656 {
657 TraceEventHandle_t xTraceHandle;
658
659 if (xTraceEventBegin(uiTxEventCode, 0, &xTraceHandle) == TRC_SUCCESS) {
660 xTraceEventEnd(xTraceHandle);
661 }
662 }
663
xTraceThreadInfoGetHook(UINT uiTxEventCode,TX_THREAD * pxThread)664 void xTraceThreadInfoGetHook(UINT uiTxEventCode, TX_THREAD *pxThread)
665 {
666 TraceEventHandle_t xTraceHandle;
667
668 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
669 xTraceEventAddPointer(xTraceHandle, (void*)pxThread);
670 xTraceEventEnd(xTraceHandle);
671 }
672 }
673
xTraceThreadPerformanceInfoGetHook(UINT uiTxEventCode,TX_THREAD * pxThread)674 void xTraceThreadPerformanceInfoGetHook(UINT uiTxEventCode, TX_THREAD *pxThread)
675 {
676 TraceEventHandle_t xTraceHandle;
677
678 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
679 xTraceEventAddPointer(xTraceHandle, (void*)pxThread);
680 xTraceEventEnd(xTraceHandle);
681 }
682 }
683
xTraceThreadPerformanceSystemInfoGetHook(UINT uiTxEventCode)684 void xTraceThreadPerformanceSystemInfoGetHook(UINT uiTxEventCode)
685 {
686 TraceEventHandle_t xTraceHandle;
687
688 if (xTraceEventBegin(uiTxEventCode, 0, &xTraceHandle) == TRC_SUCCESS) {
689 xTraceEventEnd(xTraceHandle);
690 }
691 }
692
xTraceThreadPreemptionChangeHook(UINT uiTxEventCode,TX_THREAD * pxThread,UINT uiNewThreshold)693 void xTraceThreadPreemptionChangeHook(UINT uiTxEventCode, TX_THREAD *pxThread, UINT uiNewThreshold)
694 {
695 TraceEventHandle_t xTraceHandle;
696
697 if (xTraceEventBegin(uiTxEventCode, sizeof(void*) + sizeof(UINT), &xTraceHandle) == TRC_SUCCESS) {
698 xTraceEventAddPointer(xTraceHandle, (void*)pxThread);
699 xTraceEventAdd32(xTraceHandle, uiNewThreshold);
700 xTraceEventEnd(xTraceHandle);
701 }
702 }
703
xTraceThreadPriorityChangeHook(UINT uiTxEventCode,TX_THREAD * pxThread,UINT uiNewPriority)704 void xTraceThreadPriorityChangeHook(UINT uiTxEventCode, TX_THREAD *pxThread, UINT uiNewPriority)
705 {
706 TraceEventHandle_t xTraceHandle;
707
708 if (xTraceEventBegin(uiTxEventCode, sizeof(void*) + sizeof(UINT), &xTraceHandle) == TRC_SUCCESS) {
709 xTraceEventAddPointer(xTraceHandle, (void*)pxThread);
710 xTraceEventAdd32(xTraceHandle, uiNewPriority);
711 xTraceEventEnd(xTraceHandle);
712 }
713 }
714
xTraceThreadRelinquishHook(UINT uiTxEventCode)715 void xTraceThreadRelinquishHook(UINT uiTxEventCode)
716 {
717 TraceEventHandle_t xTraceHandle;
718
719 if (xTraceEventBegin(uiTxEventCode, 0, &xTraceHandle) == TRC_SUCCESS) {
720 xTraceEventEnd(xTraceHandle);
721 }
722
723 /* Due to the design of ThreadX tracing we have to insert a potential switch
724 * check here. */
725 if (xTraceEventBegin(PSF_EVENT_TASK_POTENTIAL_SWITCH, 0, &xTraceHandle) == TRC_SUCCESS) {
726 xTraceEventEnd(xTraceHandle);
727 }
728 }
729
xTraceThreadResetHook(UINT uiTxEventCode,TX_THREAD * pxThread)730 void xTraceThreadResetHook(UINT uiTxEventCode, TX_THREAD *pxThread)
731 {
732 TraceEventHandle_t xTraceHandle;
733
734 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
735 xTraceEventAddPointer(xTraceHandle, (void*)pxThread);
736 xTraceEventEnd(xTraceHandle);
737 }
738 }
739
xTraceThreadResumeAPIHook(UINT uiTxEventCode,TX_THREAD * pxThread)740 void xTraceThreadResumeAPIHook(UINT uiTxEventCode, TX_THREAD *pxThread)
741 {
742 TraceEventHandle_t xTraceHandle;
743
744 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
745 xTraceEventAddPointer(xTraceHandle, (void*)pxThread);
746 xTraceEventEnd(xTraceHandle);
747 }
748 }
749
xTraceThreadSleepHook(UINT uiTxEventCode,TX_THREAD * pxThread)750 void xTraceThreadSleepHook(UINT uiTxEventCode, TX_THREAD *pxThread)
751 {
752 /* Intentionally left empty */
753 (void)uiTxEventCode;
754 (void)pxThread;
755 }
756
xTraceThreadStackErrorNotifyHook(UINT uiTxEventCode)757 void xTraceThreadStackErrorNotifyHook(UINT uiTxEventCode)
758 {
759 /* Intentionally left empty */
760 (void)uiTxEventCode;
761 }
762
xTraceThreadSuspendAPIHook(UINT uiTxEventCode,TX_THREAD * pxThread)763 void xTraceThreadSuspendAPIHook(UINT uiTxEventCode, TX_THREAD *pxThread)
764 {
765 TraceEventHandle_t xTraceHandle;
766
767 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
768 xTraceEventAddPointer(xTraceHandle, (void*)pxThread);
769 xTraceEventEnd(xTraceHandle);
770 }
771 }
772
xTraceThreadTerminateHook(UINT uiTxEventCode,TX_THREAD * pxThread)773 void xTraceThreadTerminateHook(UINT uiTxEventCode, TX_THREAD *pxThread)
774 {
775 TraceEventHandle_t xTraceHandle;
776
777 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
778 xTraceEventAddPointer(xTraceHandle, (void*)pxThread);
779 xTraceEventEnd(xTraceHandle);
780 }
781 }
782
xTraceThreadTimeSliceChangeHook(UINT uiTxEventCode,TX_THREAD * pxThread,UINT uiNewTimeSlice)783 void xTraceThreadTimeSliceChangeHook(UINT uiTxEventCode, TX_THREAD *pxThread, UINT uiNewTimeSlice)
784 {
785 TraceEventHandle_t xTraceHandle;
786
787 if (xTraceEventBegin(uiTxEventCode, sizeof(void*) + sizeof(UINT), &xTraceHandle) == TRC_SUCCESS) {
788 xTraceEventAddPointer(xTraceHandle, (void*)pxThread);
789 xTraceEventAdd32(xTraceHandle, uiNewTimeSlice);
790 xTraceEventEnd(xTraceHandle);
791 }
792 }
793
xTraceThreadWaitAbortHook(UINT uiTxEventCode,TX_THREAD * pxThread)794 void xTraceThreadWaitAbortHook(UINT uiTxEventCode, TX_THREAD *pxThread)
795 {
796 TraceEventHandle_t xTraceHandle;
797
798 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
799 xTraceEventAddPointer(xTraceHandle, (void*)pxThread);
800 xTraceEventEnd(xTraceHandle);
801 }
802 }
803
804
xTraceTimeGetHook(UINT uiTxEventCode)805 void xTraceTimeGetHook(UINT uiTxEventCode)
806 {
807 /* Intentionally left empty */
808 (void)uiTxEventCode;
809 }
810
xTraceTimeSetHook(UINT uiTxEventCode,TX_TIMER * pxTimer)811 void xTraceTimeSetHook(UINT uiTxEventCode, TX_TIMER *pxTimer)
812 {
813 TraceEventHandle_t xTraceHandle;
814
815 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
816 xTraceEventAddPointer(xTraceHandle, (void*)pxTimer);
817 xTraceEventEnd(xTraceHandle);
818 }
819 }
820
xTraceTimerActivateHook(UINT uiTxEventCode,TX_TIMER * pxTimer)821 void xTraceTimerActivateHook(UINT uiTxEventCode, TX_TIMER *pxTimer)
822 {
823 TraceEventHandle_t xTraceHandle;
824
825 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
826 xTraceEventAddPointer(xTraceHandle, (void*)pxTimer);
827 xTraceEventEnd(xTraceHandle);
828 }
829 }
830
xTraceTimerChangeHook(UINT uiTxEventCode,TX_TIMER * pxTimer,ULONG uiInitialTicks,ULONG uiRescheduleTicks)831 void xTraceTimerChangeHook(UINT uiTxEventCode, TX_TIMER *pxTimer, ULONG uiInitialTicks, ULONG uiRescheduleTicks)
832 {
833 TraceEventHandle_t xTraceHandle;
834
835 if (xTraceEventBegin(uiTxEventCode, sizeof(void*) + sizeof(ULONG) + sizeof(ULONG), &xTraceHandle) == TRC_SUCCESS) {
836 xTraceEventAddPointer(xTraceHandle, (void*)pxTimer);
837 xTraceEventAddUnsignedBaseType(xTraceHandle, uiInitialTicks);
838 xTraceEventAddUnsignedBaseType(xTraceHandle, uiRescheduleTicks);
839 xTraceEventEnd(xTraceHandle);
840 }
841 }
842
xTraceTimerCreateHook(UINT uiTxEventCode,TX_TIMER * pxTimer,ULONG uiInitialTicks,ULONG uiRescheduleTicks,UINT uiAutoActivate)843 void xTraceTimerCreateHook(UINT uiTxEventCode, TX_TIMER *pxTimer, ULONG uiInitialTicks, ULONG uiRescheduleTicks, UINT uiAutoActivate)
844 {
845 TraceEventHandle_t xTraceHandle;
846
847 if (pxTimer->tx_timer_name != 0) {
848 xTraceObjectSetNameWithoutHandle((void*)pxTimer, pxTimer->tx_timer_name);
849 }
850
851 if (xTraceEventBegin(uiTxEventCode, sizeof(void*) + sizeof(ULONG) + sizeof(ULONG) + sizeof(UINT),
852 &xTraceHandle) == TRC_SUCCESS) {
853 xTraceEventAddPointer(xTraceHandle, (void*)pxTimer);
854 xTraceEventAddUnsignedBaseType(xTraceHandle, uiInitialTicks);
855 xTraceEventAddUnsignedBaseType(xTraceHandle, uiRescheduleTicks);
856 xTraceEventAdd32(xTraceHandle, uiAutoActivate);
857 xTraceEventEnd(xTraceHandle);
858 }
859 }
860
xTraceTimerDeactivateHook(UINT uiTxEventCode,TX_TIMER * pxTimer)861 void xTraceTimerDeactivateHook(UINT uiTxEventCode, TX_TIMER *pxTimer)
862 {
863 TraceEventHandle_t xTraceHandle;
864
865 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
866 xTraceEventAddPointer(xTraceHandle, (void*)pxTimer);
867 xTraceEventEnd(xTraceHandle);
868 }
869 }
870
xTraceTimerDeleteHook(UINT uiTxEventCode,TX_TIMER * pxTimer)871 void xTraceTimerDeleteHook(UINT uiTxEventCode, TX_TIMER *pxTimer)
872 {
873 xTraceObjectUnregisterWithoutHandle(uiTxEventCode, (void*)pxTimer, 0);
874 }
875
xTraceTimerInfoGetHook(UINT uiTxEventCode,TX_TIMER * pxTimer)876 void xTraceTimerInfoGetHook(UINT uiTxEventCode, TX_TIMER *pxTimer)
877 {
878 TraceEventHandle_t xTraceHandle;
879
880 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
881 xTraceEventAddPointer(xTraceHandle, (void*)pxTimer);
882 xTraceEventEnd(xTraceHandle);
883 }
884 }
885
xTraceTimerPerformanceInfoGet(UINT uiTxEventCode,TX_TIMER * pxTimer)886 void xTraceTimerPerformanceInfoGet(UINT uiTxEventCode, TX_TIMER *pxTimer)
887 {
888 TraceEventHandle_t xTraceHandle;
889
890 if (xTraceEventBegin(uiTxEventCode, sizeof(void*), &xTraceHandle) == TRC_SUCCESS) {
891 xTraceEventAddPointer(xTraceHandle, (void*)pxTimer);
892 xTraceEventEnd(xTraceHandle);
893 }
894 }
895
xTraceTimerPerformanceSystemInfoGet(UINT uiTxEventCode)896 void xTraceTimerPerformanceSystemInfoGet(UINT uiTxEventCode)
897 {
898 (void)uiTxEventCode;
899 }
900