]> begriffs open source - cmsis-freertos/blob - CMSIS/RTOS2/FreeRTOS/Include/freertos_evr.h
Removed C comment since DoxyGen does not like it
[cmsis-freertos] / CMSIS / RTOS2 / FreeRTOS / Include / freertos_evr.h
1 /* --------------------------------------------------------------------------
2  * Copyright (c) 2013-2017 ARM Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Licensed under the Apache License, Version 2.0 (the License); you may
7  * not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an AS IS BASIS, WITHOUT
14  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  *      Name:    freertos_evr.h
19  *      Purpose: FreeRTOS Event Recorder definitions
20  *
21  *---------------------------------------------------------------------------*/
22
23 #ifndef FREERTOS_EVR_H_
24 #define FREERTOS_EVR_H_
25
26 #include <string.h>
27 #include <stdint.h>
28
29 #include "RTE_Components.h"
30
31 #if !defined(RTE_Compiler_EventRecorder)
32   /* Disable debug events if Event Recorder is not used */
33   #ifndef EVR_FREERTOS_DISABLE
34     #define EVR_FREERTOS_DISABLE
35   #endif
36 #endif
37
38 /* Temporarily define FreeRTOS object types */
39 #define TCB_t            void*
40 #define Queue_t          void*
41 #define Timer_t          void*
42 #define PendedFunction_t void*
43 #define EventGroup_t     void*
44
45 /**
46   \brief  Event on successful task create (Op)
47   \param[in]  pxNewTCB          pointer to task handle.
48 */
49 extern void EvrFreeRTOSTasks_TaskCreate (TCB_t pxNewTCB);
50
51 /**
52   \brief  Event on unsuccessful task create (Error)
53 */
54 extern void EvrFreeRTOSTasks_TaskCreateFailed (void);
55
56 /**
57   \brief  Event on task delete (Op)
58   \param[in]  pxTCB             pointer to task handle.
59 */
60 extern void EvrFreeRTOSTasks_TaskDelete (TCB_t pxTCB);
61
62 /**
63   \brief  Event before current running task execution is delayed (Op)
64   \param[in]  xTimeToWake       wake time (ticks).
65 */
66 extern void EvrFreeRTOSTasks_TaskDelayUntil (uint32_t xTimeToWake);
67
68 /**
69   \brief  Event on current thread execution delay (Op)
70   \param[in]  xTicksToDelay     number of ticks to delay.
71 */
72 extern void EvrFreeRTOSTasks_TaskDelay (uint32_t xTicksToDelay);
73
74 /**
75   \brief  Event on task priority set (Op)
76   \param[in]  pxTCB             pointer to task handle.
77   \param[in]  uxNewPriority
78 */
79 extern void EvrFreeRTOSTasks_TaskPrioritySet (TCB_t pxTCB, uint32_t uxNewPriority);
80
81 /**
82   \brief  Event on task suspend (Op)
83   \param[in]  pxTCB             pointer to task handle.
84 */
85 extern void EvrFreeRTOSTasks_TaskSuspend (TCB_t pxTCB);
86
87 /**
88   \brief  Event on task resume (Op)
89   \param[in]  pxTCB             pointer to task handle.
90 */
91 extern void EvrFreeRTOSTasks_TaskResume (TCB_t pxTCB);
92
93 /**
94   \brief  Event on task resume call from ISR (Op)
95   \param[in]  pxTCB             pointer to task handle.
96 */
97 extern void EvrFreeRTOSTasks_TaskResumeFromIsr (TCB_t pxTCB);
98
99 /**
100   \brief  Event on tick count increment (Op)
101   \param[in]  xTickCount        tick count before increment.
102 */
103 extern void EvrFreeRTOSTasks_TaskIncrementTick (uint32_t xTickCount);
104
105 /**
106   \brief  Event on tick count increase (Op)
107   \param[in]  xTicksToJump      number of ticks by which the tick count is increased.
108 */
109 extern void EvrFreeRTOSTasks_IncreaseTickCount (uint32_t xTicksToJump);
110
111 /**
112   \brief  Event before a new task is selected to run (Op)
113   \param[in]  pxCurrentTCB      handle to the task about to leave the running state.
114 */
115 extern void EvrFreeRTOSTasks_TaskSwitchedOut (TCB_t pxCurrentTCB);
116
117 /**
118   \brief  Event after a task has been selected to run (Op)
119   \param[in]  pxCurrentTCB      handle to the task about to enter the running state.
120   \param[in]  uxTopPriority     pxCurrentTCB task priority.
121 */
122 extern void EvrFreeRTOSTasks_TaskSwitchedIn  (TCB_t pxCurrentTCB, uint32_t uxTopPriority);
123
124 /**
125   \brief  Event on task priority inheritance (Op)
126   \param[in]  pxTCBOfMutexHolder  pointer to task handle.
127   \param[in]  uxInheritedPriority new (inherited) task priority.
128 */
129 extern void EvrFreeRTOSTasks_TaskPriorityInherit (TCB_t pxTCBOfMutexHolder, uint32_t uxInheritedPriority);
130
131 /**
132   \brief  Event on task priority disinheritance (Op)
133   \param[in]  pxTCBOfMutexHolder  pointer to task handle.
134   \param[in]  uxOriginalPriority  old (original) task priority.
135 */
136 extern void EvrFreeRTOSTasks_TaskPriorityDisinherit (TCB_t pxTCBOfMutexHolder, uint32_t uxOriginalPriority);
137
138 /**
139   \brief  Event sent before transition of a task into the Ready state (Op)
140   \param[in]  pxTCB             pointer to task handle.
141 */
142 extern void EvrFreeRTOSTasks_MovedTaskToReadyState (TCB_t pxTCB);
143
144 /**
145   \brief  Event sent after transition of a task into the Ready state (Op)
146   \param[in]  pxTCB             pointer to task handle.
147 */
148 extern void EvrFreeRTOSTasks_PostMovedTaskToReadyState (TCB_t pxTCB);
149
150 /**
151   \brief  Event on enter to the low power mode (Op)
152   \param[in]  xExpectedIdleTime expected idle time in ticks.
153 */
154 extern void EvrFreeRTOSTasks_LowPowerIdleBegin (uint32_t xExpectedIdleTime);
155
156 /**
157   \brief  Event on exit from the low power mode (Op)
158 */
159 extern void EvrFreeRTOSTasks_LowPowerIdleEnd (void);
160
161 /**
162   \brief  Event on indicating the current running task is about to block while waiting for notification to be non-zero (Op)
163   \param[in]  xTicksToWait      wait timeout in ticks.
164 */
165 extern void EvrFreeRTOSTasks_TaskNotifyTakeBlock (uint32_t xTicksToWait);
166
167 /**
168   \brief  Event on successful task notify take (Op)
169   \param[in]  ulNotifiedValue   current state of the notification value.
170 */
171 extern void EvrFreeRTOSTasks_TaskNotifyTake (uint32_t ulNotifiedValue);
172
173 /**
174   \brief  Event indicating the current running task is about to block while waiting to receive notification (Op)
175   \param[in]  xTicksToWait      wait timeout in ticks.
176 */
177 extern void EvrFreeRTOSTasks_TaskNotifyWaitBlock (uint32_t xTicksToWait);
178
179 /**
180   \brief  Event on successful task notify wait (Op)
181   \param[in]  ulNotifiedValue   current state of the notification value.
182 */
183 extern void EvrFreeRTOSTasks_TaskNotifyWait (uint32_t ulNotifiedValue);
184
185 /**
186   \brief  Event on successful task notify (Op)
187   \param[in]  xTaskToNotify     pointer to task to be notified.
188   \param[in]  ulValue           notify value.
189   \param[in]  eAction           task notification action.
190   \param[in]  ulNotifiedValue   current state of the notification value.
191 */
192 extern void EvrFreeRTOSTasks_TaskNotify (TCB_t xTaskToNotify, uint32_t ulValue, uint32_t eAction, uint32_t ulNotifiedValue);
193
194 /**
195   \brief  Event on successful task notify from ISR (Op)
196   \param[in]  xTaskToNotify     pointer to task to be notified.
197   \param[in]  ulValue           notify value.
198   \param[in]  eAction           task notification action.
199   \param[in]  ulNotifiedValue   current state of the notification value.
200 */
201 extern void EvrFreeRTOSTasks_TaskNotifyFromIsr (TCB_t xTaskToNotify, uint32_t ulValue, uint32_t eAction, uint32_t ulNotifiedValue);
202
203 /**
204   \brief  Event on successful task notify give from ISR (Op)
205   \param[in]  xTaskToNotify     pointer to task to be notified.
206   \param[in]  ulNotifiedValue   current state of the notification value.
207 */
208 extern void EvrFreeRTOSTasks_TaskNotifyGiveFromIsr (TCB_t xTaskToNotify, uint32_t ulNotifiedValue);
209
210 /**
211   \brief  Event on successful queue create (Op)
212   \param[in]  pxQueue           pointer to mutex object handle.
213 */
214 extern void EvrFreeRTOSQueue_QueueCreate (Queue_t pxQueue);
215
216 /**
217   \brief  Event on unsuccessful queue create (Error)
218   \param[in]  ucQueueType       queue type
219 */
220 extern void EvrFreeRTOSQueue_QueueCreateFailed (uint32_t ucQueueType);
221
222 /**
223   \brief  Event on successful mutex create (Op)
224   \param[in]  pxNewQueue        pointer to queue object handle.
225 */
226 extern void EvrFreeRTOSQueue_CreateMutex (Queue_t pxNewQueue);
227
228 /**
229   \brief  Event on unsuccessful mutex create (Error)
230 */
231 extern void EvrFreeRTOSQueue_CreateMutexFailed (void);
232
233 /**
234   \brief  Event on successful recursive mutex give (Op)
235   \param[in]  pxMutex           pointer to mutex object handle.
236 */
237 extern void EvrFreeRTOSQueue_GiveMutexRecursive (Queue_t pxMutex);
238
239 /**
240   \brief  Event on unsuccessful recursive mutex give (Error)
241   \param[in]  pxMutex           pointer to mutex object handle.
242 */
243 extern void EvrFreeRTOSQueue_GiveMutexRecursiveFailed (Queue_t pxMutex);
244
245 /**
246   \brief  Event on successful recursive mutex take (Op)
247   \param[in]  pxMutex           pointer to mutex object handle.
248 */
249 extern void EvrFreeRTOSQueue_TakeMutexRecursive (Queue_t pxMutex);
250
251 /**
252   \brief  Event on unsuccessful recursive mutex take (Error)
253   \param[in]  pxMutex           pointer to mutex object handle.
254 */
255 extern void EvrFreeRTOSQueue_TakeMutexRecursiveFailed (Queue_t pxMutex);
256
257 /**
258   \brief  Event on successful counting semaphore create (Op)
259   \param[in]  xHandle           pointer to semaphore object handle.
260 */
261 extern void EvrFreeRTOSQueue_CreateCountingSemaphore (Queue_t xHandle);
262
263 /**
264   \brief  Event on unsuccessful counting semaphore create (Error)
265 */
266 extern void EvrFreeRTOSQueue_CreateCountingSemaphoreFailed (void);
267
268 /**
269   \brief  Event on queue write (Op)
270   \param[in]  pxQueue           pointer to queue object handle.
271 */
272 extern void EvrFreeRTOSQueue_QueueSend (Queue_t pxQueue);
273
274 /**
275   \brief  Event on write to the full queue (Error)
276   \param[in]  pxQueue           pointer to queue object handle.
277 */
278 extern void EvrFreeRTOSQueue_QueueSendFailed (Queue_t pxQueue);
279
280 /**
281   \brief  Event on queue read (Op)
282   \param[in]  pxQueue           pointer to queue object handle.
283 */
284 extern void EvrFreeRTOSQueue_QueueReceive (Queue_t pxQueue);
285
286 /**
287   \brief  Event on queue peek (Op)
288   \param[in]  pxQueue           pointer to queue object handle.
289 */
290 extern void EvrFreeRTOSQueue_QueuePeek (Queue_t pxQueue);
291
292 /**
293   \brief  Event on queue peek from ISR (Op)
294   \param[in]  pxQueue           pointer to queue object handle.
295 */
296 extern void EvrFreeRTOSQueue_QueuePeekFromIsr (Queue_t pxQueue);
297
298 /**
299   \brief  Event on read from the empty queue (Error)
300   \param[in]  pxQueue           pointer to queue object handle.
301 */
302 extern void EvrFreeRTOSQueue_QueueReceiveFailed (Queue_t pxQueue);
303
304 /**
305   \brief  Event on write to the queue from ISR (Op)
306   \param[in]  pxQueue           pointer to queue object handle.
307 */
308 extern void EvrFreeRTOSQueue_QueueSendFromIsr (Queue_t pxQueue);
309
310 /**
311   \brief  Event on write to the full queue from ISR (Error)
312   \param[in]  pxQueue           pointer to queue object handle.
313 */
314 extern void EvrFreeRTOSQueue_QueueSendFromIsrFailed (Queue_t pxQueue);
315
316 /**
317   \brief  Event on queue read from ISR (Op)
318   \param[in]  pxQueue           pointer to queue object handle.
319 */
320 extern void EvrFreeRTOSQueue_QueueReceiveFromIsr (Queue_t pxQueue);
321
322 /**
323   \brief  Event on empty queue read from ISR (Error)
324   \param[in]  pxQueue           pointer to queue object handle.
325 */
326 extern void EvrFreeRTOSQueue_QueueReceiveFromIsrFailed (Queue_t pxQueue);
327
328 /**
329   \brief  Event on empty queue peek from ISR (Error)
330   \param[in]  pxQueue           pointer to queue object handle.
331 */
332 extern void EvrFreeRTOSQueue_QueuePeekFromIsrFailed (Queue_t pxQueue);
333
334 /**
335   \brief  Event on queue delete (Op)
336   \param[in]  pxQueue           pointer to queue object handle.
337 */
338 extern void EvrFreeRTOSQueue_QueueDelete (Queue_t pxQueue);
339
340 /**
341   \brief  Event on assignment of a human readable name to a queue (Op)
342   \param[in]  pxQueue           pointer to queue object handle.
343   \param[in]  pcQueueName       pointer to queue object name.
344 */
345 extern void EvrFreeRTOSQueue_QueueRegistryAdd (Queue_t pxQueue, const char *pcQueueName);
346
347 /**
348   \brief  Event indicating the current running task is about to block while reading from an empty queue (Op)
349   \param[in]  pxQueue           pointer to queue object handle.
350 */
351 extern void EvrFreeRTOSQueue_BlockingOnQueueReceive (Queue_t pxQueue);
352
353 /**
354   \brief  Event indicating the current running task is about to block while writting to a full queue (Op)
355   \param[in]  pxQueue           pointer to queue object handle.
356 */
357 extern void EvrFreeRTOSQueue_BlockingOnQueueSend (Queue_t pxQueue);
358
359 /**
360   \brief  Event on successful timer object create (Op)
361   \param[in]  pxNewTimer        pointer to timer object handle.
362 */
363 extern void EvrFreeRTOSTimers_TimerCreate (Timer_t pxNewTimer);
364
365 /**
366   \brief  Event on unsuccessful timer object create (Error)
367 */
368 extern void EvrFreeRTOSTimers_TimerCreateFailed (void);
369
370 /**
371   \brief  Event on timer queue command send (Op)
372   \param[in]  pxTimer           pointer to timer object handle.
373   \param[in]  xCommandID        timer command ID.
374   \param[in]  xOptionalValue    optional command value.
375   \param[in]  xReturn           return value.
376 */
377 extern void EvrFreeRTOSTimers_TimerCommandSend (Timer_t pxTimer, uint32_t xCommandID, uint32_t xOptionalValue, uint32_t xReturn);
378
379 /**
380   \brief  Event on timer queue command receive (Op)
381   \param[in]  pxTimer           pointer to timer object handle.
382   \param[in]  xCommandID        timer command ID.
383   \param[in]  xOptionalValue    optional command value.
384 */
385 extern void EvrFreeRTOSTimers_TimerCommandReceived (Timer_t pxTimer, uint32_t xCommandID, uint32_t xOptionalValue);
386
387 /**
388   \brief  Event on timer expire (Op)
389   \param[in]  pxTimer           pointer to timer object handle.
390 */
391 extern void EvrFreeRTOSTimers_TimerExpired (Timer_t pxTimer);
392
393 /**
394   \brief  Event on pass of the function execution to the timer service task (Op)
395   \param[in]  pxFunctionToPend  pointer to callback function
396   \param[in]  pvParameter1      function parameter 1.
397   \param[in]  ulParameter2      function parameter 2.
398   \param[in]  xReturn           return value.
399 */
400 extern void EvrFreeRTOSTimers_PendFuncCall (PendedFunction_t pxFunctionToPend, void *pvParameter1, uint32_t ulParameter2, uint32_t xReturn);
401
402 /**
403   \brief  Event on pass of the function execution to the timer service task from the ISR (Op)
404   \param[in]  pxFunctionToPend  pointer to callback function
405   \param[in]  pvParameter1      function parameter 1.
406   \param[in]  ulParameter2      function parameter 2.
407   \param[in]  xReturn           return value.
408 */
409 extern void EvrFreeRTOSTimers_PendFuncCallFromIsr (PendedFunction_t pxFunctionToPend, void *pvParameter1, uint32_t ulParameter2, uint32_t xReturn);
410
411 /**
412   \brief  Event on successful event groups object create (Op)
413   \param[in]  pxEventGroup      pointer to Event Groups object handle.
414 */
415 extern void EvrFreeRTOSEventGroups_EventGroupCreate (EventGroup_t pxEventGroup);
416
417 /**
418   \brief  Event on unsuccessful event groups object create (Error)
419 */
420 extern void EvrFreeRTOSEventGroups_EventGroupCreateFailed (void);
421
422 /**
423   \brief  Event on event groups sync wait start (Op)
424   \param[in]  pxEventGroup      pointer to Event Groups object handle.
425   \param[in]  uxBitsToSet       event bits that shall be set.
426   \param[in]  uxBitsToWaitFor   event bits to wait for.
427 */
428 extern void EvrFreeRTOSEventGroups_EventGroupSyncBlock (EventGroup_t pxEventGroup, uint32_t uxBitsToSet, uint32_t uxBitsToWaitFor);
429
430 /**
431   \brief  Event on event groups sync completed (Op)
432   \param[in]  pxEventGroup      pointer to Event Groups object handle.
433   \param[in]  uxBitsToSet       event bits that shall be set.
434   \param[in]  uxBitsToWaitFor   event bits to wait for.
435   \param[in]  xTimeoutOccurred  timeout value.
436 */
437 extern void EvrFreeRTOSEventGroups_EventGroupSyncEnd (EventGroup_t pxEventGroup, uint32_t uxBitsToSet, uint32_t uxBitsToWaitFor, uint32_t xTimeoutOccurred);
438
439 /**
440   \brief  Event on event groups bit wait start (Op)
441   \param[in]  pxEventGroup      pointer to Event Groups object handle.
442   \param[in]  uxBitsToWaitFor   event bits to wait for.
443 */
444 extern void EvrFreeRTOSEventGroups_EventGroupWaitBitsBlock (EventGroup_t pxEventGroup, uint32_t uxBitsToWaitFor);
445
446 /**
447   \brief  Event on event groups bit wait completed (Op)
448   \param[in]  pxEventGroup      pointer to Event Groups object handle.
449   \param[in]  uxBitsToWaitFor   event bits to wait for.
450   \param[in]  xTimeoutOccurred  timeout value.
451 */
452 extern void EvrFreeRTOSEventGroups_EventGroupWaitBitsEnd (EventGroup_t pxEventGroup, uint32_t uxBitsToWaitFor, uint32_t xTimeoutOccurred);
453
454 /**
455   \brief  Event on event groups bit clear (Op)
456   \param[in]  pxEventGroup      pointer to Event Groups object handle.
457   \param[in]  uxBitsToClear     event bits that shall be cleared.
458 */
459 extern void EvrFreeRTOSEventGroups_EventGroupClearBits (EventGroup_t pxEventGroup, uint32_t uxBitsToClear);
460
461 /**
462   \brief  Event on event groups bit clear call from ISR (Op)
463   \param[in]  pxEventGroup      pointer to Event Groups object handle.
464   \param[in]  uxBitsToClear     event bits that shall be cleared.
465 */
466 extern void EvrFreeRTOSEventGroups_EventGroupClearBitsFromIsr (EventGroup_t pxEventGroup, uint32_t uxBitsToClear);
467
468 /**
469   \brief  Event on event groups bit set (Op)
470   \param[in]  pxEventGroup      pointer to Event Groups object handle.
471   \param[in]  uxBitsToSet       event bits that shall be set.
472 */
473 extern void EvrFreeRTOSEventGroups_EventGroupSetBits (EventGroup_t pxEventGroup, uint32_t uxBitsToSet);
474
475 /**
476   \brief  Event on event groups bit set call from ISR (Op)
477   \param[in]  pxEventGroup      pointer to Event Groups object handle.
478   \param[in]  uxBitsToSet       event bits that shall be set.
479 */
480 extern void EvrFreeRTOSEventGroups_EventGroupSetBitsFromIsr (EventGroup_t pxEventGroup, uint32_t uxBitsToSet);
481
482 /**
483   \brief  Event on event groups object delete (Op)
484   \param[in]  pxEventGroup      pointer to Event Groups object handle.
485 */
486 extern void EvrFreeRTOSEventGroups_EventGroupDelete (EventGroup_t pxEventGroup);
487
488 /**
489   \brief  Event on heap memory block allocation (Op)
490   \param[in]  pvAddress         pointer to memory block.
491   \param[in]  uiSize            memory block size.
492 */
493 extern void EvrFreeRTOSHeap_Malloc (void *pvAddress, uint32_t uiSize);
494
495 /**
496   \brief  Event on heap memory block free (Op)
497   \param[in]  pvAddress         pointer to memory block.
498   \param[in]  uiSize            memory block size.
499 */
500 extern void EvrFreeRTOSHeap_Free (void *pvAddress, uint32_t uiSize);
501
502
503 /* Tasks */
504
505 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_CREATE_DISABLE))
506   #define traceTASK_CREATE(px)                        EvrFreeRTOSTasks_TaskCreate(px)
507 #endif
508
509 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_CREATE_FAILED_DISABLE))
510   #define traceTASK_CREATE_FAILED()                   EvrFreeRTOSTasks_TaskCreateFailed()
511 #endif
512
513 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_DELETE_DISABLE))
514   #define traceTASK_DELETE(px)                        EvrFreeRTOSTasks_TaskDelete(px)
515 #endif
516
517 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_DELAY_UNTIL_DISABLE))
518   #define traceTASK_DELAY_UNTIL(x)                    EvrFreeRTOSTasks_TaskDelayUntil(x)
519 #endif
520
521 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_DELAY_DISABLE))
522   #define traceTASK_DELAY()                           EvrFreeRTOSTasks_TaskDelay(xTicksToDelay)
523 #endif
524
525 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_PRIORITY_SET_DISABLE))
526   #define traceTASK_PRIORITY_SET(px,ux)               EvrFreeRTOSTasks_TaskPrioritySet(px,ux)
527 #endif
528
529 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_SUSPEND_DISABLE))
530   #define traceTASK_SUSPEND(px)                       EvrFreeRTOSTasks_TaskSuspend(px)
531 #endif
532
533 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_RESUME_DISABLE))
534   #define traceTASK_RESUME(px)                        EvrFreeRTOSTasks_TaskResume(px)
535 #endif
536
537 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_RESUME_FROM_ISR_DISABLE))
538   #define traceTASK_RESUME_FROM_ISR(px)               EvrFreeRTOSTasks_TaskResumeFromIsr(px)
539 #endif
540
541 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_INCREMENT_TICK_DISABLE))
542   #define traceTASK_INCREMENT_TICK(x)                 EvrFreeRTOSTasks_TaskIncrementTick(x)
543 #endif
544
545 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceINCREASE_TICK_COUNT_DISABLE))
546   #define traceINCREASE_TICK_COUNT(x)                 EvrFreeRTOSTasks_IncreaseTickCount(x)
547 #endif
548
549 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_SWITCHED_OUT_DISABLE))
550   #define traceTASK_SWITCHED_OUT()                    EvrFreeRTOSTasks_TaskSwitchedOut(pxCurrentTCB)
551 #endif
552
553 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_SWITCHED_IN_DISABLE))
554   #define traceTASK_SWITCHED_IN()                     EvrFreeRTOSTasks_TaskSwitchedIn(pxCurrentTCB, uxTopReadyPriority)
555 #endif
556
557 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_PRIORITY_INHERIT_DISABLE))
558   #define traceTASK_PRIORITY_INHERIT(px,ux)           EvrFreeRTOSTasks_TaskPriorityInherit(px,ux)
559 #endif
560
561 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_PRIORITY_DISINHERIT_DISABLE))
562   #define traceTASK_PRIORITY_DISINHERIT(px,ux)        EvrFreeRTOSTasks_TaskPriorityDisinherit(px,ux)
563 #endif
564
565 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceMOVED_TASK_TO_READY_STATE_DISABLE))
566   #define traceMOVED_TASK_TO_READY_STATE(px)          EvrFreeRTOSTasks_MovedTaskToReadyState(px)
567 #endif
568
569 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(tracePOST_MOVED_TASK_TO_READY_STATE_DISABLE))
570   #define tracePOST_MOVED_TASK_TO_READY_STATE(px)     EvrFreeRTOSTasks_PostMovedTaskToReadyState(px)
571 #endif
572
573 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceLOW_POWER_IDLE_BEGIN_DISABLE))
574   #define traceLOW_POWER_IDLE_BEGIN()                 EvrFreeRTOSTasks_LowPowerIdleBegin(xExpectedIdleTime)
575 #endif
576
577 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceLOW_POWER_IDLE_END_DISABLE))
578   #define traceLOW_POWER_IDLE_END()                   EvrFreeRTOSTasks_LowPowerIdleEnd()
579 #endif
580
581 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_NOTIFY_TAKE_BLOCK_DISABLE))
582   #define traceTASK_NOTIFY_TAKE_BLOCK()               EvrFreeRTOSTasks_TaskNotifyTakeBlock(xTicksToWait)
583 #endif
584
585 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_NOTIFY_TAKE_DISABLE))
586   #define traceTASK_NOTIFY_TAKE()                     EvrFreeRTOSTasks_TaskNotifyTake(pxCurrentTCB->ulNotifiedValue)
587 #endif
588
589 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_NOTIFY_WAIT_BLOCK_DISABLE))
590   #define traceTASK_NOTIFY_WAIT_BLOCK()               EvrFreeRTOSTasks_TaskNotifyWaitBlock(xTicksToWait)
591 #endif
592
593 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_NOTIFY_WAIT_DISABLE))
594   #define traceTASK_NOTIFY_WAIT()                     EvrFreeRTOSTasks_TaskNotifyWait(pxCurrentTCB->ulNotifiedValue)
595 #endif
596
597 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_NOTIFY_DISABLE))
598   #define traceTASK_NOTIFY()                          EvrFreeRTOSTasks_TaskNotify(pxTCB, ulValue, eAction, pxTCB->ulNotifiedValue)
599 #endif
600
601 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_NOTIFY_FROM_ISR_DISABLE))
602   #define traceTASK_NOTIFY_FROM_ISR()                 EvrFreeRTOSTasks_TaskNotifyFromIsr(pxTCB, ulValue, eAction, pxTCB->ulNotifiedValue)
603 #endif
604
605 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTASK_NOTIFY_GIVE_FROM_ISR_DISABLE))
606   #define traceTASK_NOTIFY_GIVE_FROM_ISR()            EvrFreeRTOSTasks_TaskNotifyGiveFromIsr(pxTCB, pxTCB->ulNotifiedValue)
607 #endif
608
609
610 /* Queue */
611
612 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_CREATE_DISABLE))
613   #define traceQUEUE_CREATE(px)                       EvrFreeRTOSQueue_QueueCreate(px)
614 #endif
615
616 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_CREATE_FAILED_DISABLE))
617   #define traceQUEUE_CREATE_FAILED(uc)                EvrFreeRTOSQueue_QueueCreateFailed(uc)
618 #endif
619
620 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceCREATE_MUTEX_DISABLE))
621   #define traceCREATE_MUTEX(px)                       EvrFreeRTOSQueue_CreateMutex(px)
622 #endif
623
624 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceCREATE_MUTEX_FAILED_DISABLE))
625   #define traceCREATE_MUTEX_FAILED()                  EvrFreeRTOSQueue_CreateMutexFailed()
626 #endif
627
628 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceGIVE_MUTEX_RECURSIVE_DISABLE))
629   #define traceGIVE_MUTEX_RECURSIVE(px)               EvrFreeRTOSQueue_GiveMutexRecursive(px)
630 #endif
631
632 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceGIVE_MUTEX_RECURSIVE_FAILED_DISABLE))
633   #define traceGIVE_MUTEX_RECURSIVE_FAILED(px)        EvrFreeRTOSQueue_GiveMutexRecursiveFailed(px)
634 #endif
635
636 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTAKE_MUTEX_RECURSIVE_DISABLE))
637   #define traceTAKE_MUTEX_RECURSIVE(px)               EvrFreeRTOSQueue_TakeMutexRecursive(px)
638 #endif
639
640 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTAKE_MUTEX_RECURSIVE_FAILED_DISABLE))
641   #define traceTAKE_MUTEX_RECURSIVE_FAILED(px)        EvrFreeRTOSQueue_TakeMutexRecursiveFailed(px)
642 #endif
643
644 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceCREATE_COUNTING_SEMAPHORE_DISABLE))
645   #define traceCREATE_COUNTING_SEMAPHORE()            EvrFreeRTOSQueue_CreateCountingSemaphore(xHandle)
646 #endif
647
648 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceCREATE_COUNTING_SEMAPHORE_FAILED_DISABLE))
649   #define traceCREATE_COUNTING_SEMAPHORE_FAILED()     EvrFreeRTOSQueue_CreateCountingSemaphoreFailed()
650 #endif
651
652 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_SEND_DISABLE))
653   #define traceQUEUE_SEND(px)                         EvrFreeRTOSQueue_QueueSend(px)
654 #endif
655
656 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_SEND_FAILED_DISABLE))
657   #define traceQUEUE_SEND_FAILED(px)                  EvrFreeRTOSQueue_QueueSendFailed(px)
658 #endif
659
660 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_RECEIVE_DISABLE))
661   #define traceQUEUE_RECEIVE(px)                      EvrFreeRTOSQueue_QueueReceive(px)
662 #endif
663
664 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_PEEK_DISABLE))
665   #define traceQUEUE_PEEK(px)                         EvrFreeRTOSQueue_QueuePeek(px)
666 #endif
667
668 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_PEEK_FROM_ISR_DISABLE))
669   #define traceQUEUE_PEEK_FROM_ISR(px)                EvrFreeRTOSQueue_QueuePeekFromIsr(px)
670 #endif
671
672 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_RECEIVE_FAILED_DISABLE))
673   #define traceQUEUE_RECEIVE_FAILED(px)               EvrFreeRTOSQueue_QueueReceiveFailed(px)
674 #endif
675
676 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_SEND_FROM_ISR_DISABLE))
677   #define traceQUEUE_SEND_FROM_ISR(px)                EvrFreeRTOSQueue_QueueSendFromIsr(px)
678 #endif
679
680 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_SEND_FROM_ISR_FAILED_DISABLE))
681   #define traceQUEUE_SEND_FROM_ISR_FAILED(px)         EvrFreeRTOSQueue_QueueSendFromIsrFailed(px)
682 #endif
683
684 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_RECEIVE_FROM_ISR_DISABLE))
685   #define traceQUEUE_RECEIVE_FROM_ISR(px)             EvrFreeRTOSQueue_QueueReceiveFromIsr(px)
686 #endif
687
688 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_RECEIVE_FROM_ISR_FAILED_DISABLE))
689   #define traceQUEUE_RECEIVE_FROM_ISR_FAILED(px)      EvrFreeRTOSQueue_QueueReceiveFromIsrFailed(px)
690 #endif
691
692 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_PEEK_FROM_ISR_FAILED_DISABLE))
693   #define traceQUEUE_PEEK_FROM_ISR_FAILED(px)         EvrFreeRTOSQueue_QueuePeekFromIsrFailed(px)
694 #endif
695
696 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_DELETE_DISABLE))
697   #define traceQUEUE_DELETE(px)                       EvrFreeRTOSQueue_QueueDelete(px)
698 #endif
699
700 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceQUEUE_REGISTRY_ADD_DISABLE))
701   #define traceQUEUE_REGISTRY_ADD(px,pc)              EvrFreeRTOSQueue_QueueRegistryAdd(px,pc)
702 #endif
703
704 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceBLOCKING_ON_QUEUE_RECEIVE_DISABLE))
705   #define traceBLOCKING_ON_QUEUE_RECEIVE(px)          EvrFreeRTOSQueue_BlockingOnQueueReceive(px)
706 #endif
707
708 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceBLOCKING_ON_QUEUE_SEND_DISABLE))
709   #define traceBLOCKING_ON_QUEUE_SEND(px)             EvrFreeRTOSQueue_BlockingOnQueueSend(px)
710 #endif
711
712
713 /* Timers */
714
715 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTIMER_CREATE_DISABLE))
716   #define traceTIMER_CREATE(px)                       EvrFreeRTOSTimers_TimerCreate(px)
717 #endif
718
719 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTIMER_CREATE_FAILED_DISABLE))
720   #define traceTIMER_CREATE_FAILED()                  EvrFreeRTOSTimers_TimerCreateFailed()
721 #endif
722
723 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTIMER_COMMAND_SEND_DISABLE))
724   #define traceTIMER_COMMAND_SEND(pxT,xC,xO,xR)       EvrFreeRTOSTimers_TimerCommandSend(pxT,xC,xO,xR)
725 #endif
726
727 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTIMER_COMMAND_RECEIVED_DISABLE))
728   #define traceTIMER_COMMAND_RECEIVED(px,xC,xO)       EvrFreeRTOSTimers_TimerCommandReceived(px,xC,xO)
729 #endif
730
731 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceTIMER_EXPIRED_DISABLE))
732   #define traceTIMER_EXPIRED(px)                      EvrFreeRTOSTimers_TimerExpired(px)
733 #endif
734
735 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(tracePEND_FUNC_CALL_DISABLE))
736   #define tracePEND_FUNC_CALL(px,pv,ul,x)             EvrFreeRTOSTimers_PendFuncCall(px,pv,ul,x)
737 #endif
738
739 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(tracePEND_FUNC_CALL_FROM_ISR_DISABLE))
740   #define tracePEND_FUNC_CALL_FROM_ISR(px,pv,ul,x)    EvrFreeRTOSTimers_PendFuncCallFromIsr(px,pv,ul,x)
741 #endif
742
743
744 /* Event Groups */
745
746 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_CREATE_DISABLE))
747   #define traceEVENT_GROUP_CREATE(px)                 EvrFreeRTOSEventGroups_EventGroupCreate(px)
748 #endif
749
750 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_CREATE_FAILED_DISABLE))
751   #define traceEVENT_GROUP_CREATE_FAILED()            EvrFreeRTOSEventGroups_EventGroupCreateFailed()
752 #endif
753
754 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_SYNC_BLOCK_DISABLE))
755   #define traceEVENT_GROUP_SYNC_BLOCK(px,uxS,uxW)     EvrFreeRTOSEventGroups_EventGroupSyncBlock(px,uxS,uxW)
756 #endif
757
758 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_SYNC_END_DISABLE))
759   #define traceEVENT_GROUP_SYNC_END(px,uxS,uxW,x)     EvrFreeRTOSEventGroups_EventGroupSyncEnd(px,uxS,uxW,x)
760 #endif
761
762 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_WAIT_BITS_BLOCK_DISABLE))
763   #define traceEVENT_GROUP_WAIT_BITS_BLOCK(px,ux)     EvrFreeRTOSEventGroups_EventGroupWaitBitsBlock(px,ux)
764 #endif
765
766 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_WAIT_BITS_END_DISABLE))
767   #define traceEVENT_GROUP_WAIT_BITS_END(px,ux,x)     EvrFreeRTOSEventGroups_EventGroupWaitBitsEnd(px,ux,x)
768 #endif
769
770 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_CLEAR_BITS_DISABLE))
771   #define traceEVENT_GROUP_CLEAR_BITS(px,ux)          EvrFreeRTOSEventGroups_EventGroupClearBits(px,ux)
772 #endif
773
774 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_CLEAR_BITS_FROM_ISR_DISABLE))
775   #define traceEVENT_GROUP_CLEAR_BITS_FROM_ISR(px,ux) EvrFreeRTOSEventGroups_EventGroupClearBitsFromIsr(px,ux)
776 #endif
777
778 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_SET_BITS_DISABLE))
779   #define traceEVENT_GROUP_SET_BITS(px,ux)            EvrFreeRTOSEventGroups_EventGroupSetBits(px,ux)
780 #endif
781
782 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_SET_BITS_FROM_ISR_DISABLE))
783   #define traceEVENT_GROUP_SET_BITS_FROM_ISR(px,ux)   EvrFreeRTOSEventGroups_EventGroupSetBitsFromIsr(px,ux)
784 #endif
785
786 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceEVENT_GROUP_DELETE_DISABLE))
787   #define traceEVENT_GROUP_DELETE(px)                 EvrFreeRTOSEventGroups_EventGroupDelete(px)
788 #endif
789
790
791 /* Heap */
792
793 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceMALLOC_DISABLE))
794   #define traceMALLOC(pv,x)                           EvrFreeRTOSHeap_Malloc(pv,x)
795 #endif
796
797 #if (!defined(EVR_FREERTOS_DISABLE) && !defined(traceFREE_DISABLE))
798   #define traceFREE(pv,x)                             EvrFreeRTOSHeap_Free(pv,x)
799 #endif
800
801
802 /* Undefine FreeRTOS object types */
803 #undef TCB_t
804 #undef Queue_t
805 #undef Timer_t
806 #undef PendedFunction_t
807 #undef EventGroup_t
808
809 #endif /* FREERTOS_EVR_H_ */