]> begriffs open source - freertos/blob - include/FreeRTOS.h
Update xTaskGetIdleTaskHandle() For SMP (#868)
[freertos] / include / FreeRTOS.h
1 /*
2  * FreeRTOS Kernel <DEVELOPMENT BRANCH>
3  * Copyright (C) 2021 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
4  *
5  * SPDX-License-Identifier: MIT
6  *
7  * Permission is hereby granted, free of charge, to any person obtaining a copy of
8  * this software and associated documentation files (the "Software"), to deal in
9  * the Software without restriction, including without limitation the rights to
10  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
11  * the Software, and to permit persons to whom the Software is furnished to do so,
12  * subject to the following conditions:
13  *
14  * The above copyright notice and this permission notice shall be included in all
15  * copies or substantial portions of the Software.
16  *
17  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
19  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
20  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
21  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23  *
24  * https://www.FreeRTOS.org
25  * https://github.com/FreeRTOS
26  *
27  */
28
29 #ifndef INC_FREERTOS_H
30 #define INC_FREERTOS_H
31
32 /*
33  * Include the generic headers required for the FreeRTOS port being used.
34  */
35 #include <stddef.h>
36
37 /*
38  * If stdint.h cannot be located then:
39  *   + If using GCC ensure the -nostdint options is *not* being used.
40  *   + Ensure the project's include path includes the directory in which your
41  *     compiler stores stdint.h.
42  *   + Set any compiler options necessary for it to support C99, as technically
43  *     stdint.h is only mandatory with C99 (FreeRTOS does not require C99 in any
44  *     other way).
45  *   + The FreeRTOS download includes a simple stdint.h definition that can be
46  *     used in cases where none is provided by the compiler.  The files only
47  *     contains the typedefs required to build FreeRTOS.  Read the instructions
48  *     in FreeRTOS/source/stdint.readme for more information.
49  */
50 #include <stdint.h> /* READ COMMENT ABOVE. */
51
52 /* *INDENT-OFF* */
53 #ifdef __cplusplus
54     extern "C" {
55 #endif
56 /* *INDENT-ON* */
57
58 /* Acceptable values for configTICK_TYPE_WIDTH_IN_BITS. */
59 #define TICK_TYPE_WIDTH_16_BITS    0
60 #define TICK_TYPE_WIDTH_32_BITS    1
61 #define TICK_TYPE_WIDTH_64_BITS    2
62
63 /* Application specific configuration options. */
64 #include "FreeRTOSConfig.h"
65
66 #if !defined( configUSE_16_BIT_TICKS ) && !defined( configTICK_TYPE_WIDTH_IN_BITS )
67     #error Missing definition:  One of configUSE_16_BIT_TICKS and configTICK_TYPE_WIDTH_IN_BITS must be defined in FreeRTOSConfig.h.  See the Configuration section of the FreeRTOS API documentation for details.
68 #endif
69
70 #if defined( configUSE_16_BIT_TICKS ) && defined( configTICK_TYPE_WIDTH_IN_BITS )
71     #error Only one of configUSE_16_BIT_TICKS and configTICK_TYPE_WIDTH_IN_BITS must be defined in FreeRTOSConfig.h.  See the Configuration section of the FreeRTOS API documentation for details.
72 #endif
73
74 /* Define configTICK_TYPE_WIDTH_IN_BITS according to the
75  * value of configUSE_16_BIT_TICKS for backward compatibility. */
76 #ifndef configTICK_TYPE_WIDTH_IN_BITS
77     #if ( configUSE_16_BIT_TICKS == 1 )
78         #define configTICK_TYPE_WIDTH_IN_BITS    TICK_TYPE_WIDTH_16_BITS
79     #else
80         #define configTICK_TYPE_WIDTH_IN_BITS    TICK_TYPE_WIDTH_32_BITS
81     #endif
82 #endif
83
84 /* Set configUSE_MPU_WRAPPERS_V1 to 1 to use MPU wrappers v1. */
85 #ifndef configUSE_MPU_WRAPPERS_V1
86     #define configUSE_MPU_WRAPPERS_V1    0
87 #endif
88
89 /* Set configENABLE_ACCESS_CONTROL_LIST to 1 to enable access control list support. */
90 #ifndef configENABLE_ACCESS_CONTROL_LIST
91     #define configENABLE_ACCESS_CONTROL_LIST    0
92 #endif
93
94 /* Set default value of configNUMBER_OF_CORES to 1 to use single core FreeRTOS. */
95 #ifndef configNUMBER_OF_CORES
96     #define configNUMBER_OF_CORES    1
97 #endif
98
99 /* Basic FreeRTOS definitions. */
100 #include "projdefs.h"
101
102 /* Definitions specific to the port being used. */
103 #include "portable.h"
104
105 /* Must be defaulted before configUSE_NEWLIB_REENTRANT is used below. */
106 #ifndef configUSE_NEWLIB_REENTRANT
107     #define configUSE_NEWLIB_REENTRANT    0
108 #endif
109
110 /* Required if struct _reent is used. */
111 #if ( configUSE_NEWLIB_REENTRANT == 1 )
112
113     #include "newlib-freertos.h"
114
115 #endif /* if ( configUSE_NEWLIB_REENTRANT == 1 ) */
116
117 /* Must be defaulted before configUSE_PICOLIBC_TLS is used below. */
118 #ifndef configUSE_PICOLIBC_TLS
119     #define configUSE_PICOLIBC_TLS    0
120 #endif
121
122 #if ( configUSE_PICOLIBC_TLS == 1 )
123
124     #include "picolibc-freertos.h"
125
126 #endif /* if ( configUSE_PICOLIBC_TLS == 1 ) */
127
128 #ifndef configUSE_C_RUNTIME_TLS_SUPPORT
129     #define configUSE_C_RUNTIME_TLS_SUPPORT    0
130 #endif
131
132 #if ( configUSE_C_RUNTIME_TLS_SUPPORT == 1 )
133
134     #ifndef configTLS_BLOCK_TYPE
135         #error Missing definition:  configTLS_BLOCK_TYPE must be defined in FreeRTOSConfig.h when configUSE_C_RUNTIME_TLS_SUPPORT is set to 1.
136     #endif
137
138     #ifndef configINIT_TLS_BLOCK
139         #error Missing definition:  configINIT_TLS_BLOCK must be defined in FreeRTOSConfig.h when configUSE_C_RUNTIME_TLS_SUPPORT is set to 1.
140     #endif
141
142     #ifndef configSET_TLS_BLOCK
143         #error Missing definition:  configSET_TLS_BLOCK must be defined in FreeRTOSConfig.h when configUSE_C_RUNTIME_TLS_SUPPORT is set to 1.
144     #endif
145
146     #ifndef configDEINIT_TLS_BLOCK
147         #error Missing definition:  configDEINIT_TLS_BLOCK must be defined in FreeRTOSConfig.h when configUSE_C_RUNTIME_TLS_SUPPORT is set to 1.
148     #endif
149 #endif /* if ( configUSE_C_RUNTIME_TLS_SUPPORT == 1 ) */
150
151 /*
152  * Check all the required application specific macros have been defined.
153  * These macros are application specific and (as downloaded) are defined
154  * within FreeRTOSConfig.h.
155  */
156
157 #ifndef configMINIMAL_STACK_SIZE
158     #error Missing definition:  configMINIMAL_STACK_SIZE must be defined in FreeRTOSConfig.h.  configMINIMAL_STACK_SIZE defines the size (in words) of the stack allocated to the idle task.  Refer to the demo project provided for your port for a suitable value.
159 #endif
160
161 #ifndef configMAX_PRIORITIES
162     #error Missing definition:  configMAX_PRIORITIES must be defined in FreeRTOSConfig.h.  See the Configuration section of the FreeRTOS API documentation for details.
163 #endif
164
165 #if configMAX_PRIORITIES < 1
166     #error configMAX_PRIORITIES must be defined to be greater than or equal to 1.
167 #endif
168
169 #ifndef configUSE_PREEMPTION
170     #error Missing definition:  configUSE_PREEMPTION must be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.
171 #endif
172
173 #ifndef configUSE_IDLE_HOOK
174     #error Missing definition:  configUSE_IDLE_HOOK must be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.
175 #endif
176
177 #if ( configNUMBER_OF_CORES > 1 )
178     #ifndef configUSE_PASSIVE_IDLE_HOOK
179         #error Missing definition:  configUSE_PASSIVE_IDLE_HOOK must be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.
180     #endif
181 #endif
182
183 #ifndef configUSE_TICK_HOOK
184     #error Missing definition:  configUSE_TICK_HOOK must be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.
185 #endif
186
187 #if ( ( configTICK_TYPE_WIDTH_IN_BITS != TICK_TYPE_WIDTH_16_BITS ) && \
188     ( configTICK_TYPE_WIDTH_IN_BITS != TICK_TYPE_WIDTH_32_BITS ) &&   \
189     ( configTICK_TYPE_WIDTH_IN_BITS != TICK_TYPE_WIDTH_64_BITS ) )
190     #error Macro configTICK_TYPE_WIDTH_IN_BITS is defined to incorrect value.  See the Configuration section of the FreeRTOS API documentation for details.
191 #endif
192
193 #ifndef configUSE_CO_ROUTINES
194     #define configUSE_CO_ROUTINES    0
195 #endif
196
197 #ifndef INCLUDE_vTaskPrioritySet
198     #define INCLUDE_vTaskPrioritySet    0
199 #endif
200
201 #ifndef INCLUDE_uxTaskPriorityGet
202     #define INCLUDE_uxTaskPriorityGet    0
203 #endif
204
205 #ifndef INCLUDE_vTaskDelete
206     #define INCLUDE_vTaskDelete    0
207 #endif
208
209 #ifndef INCLUDE_vTaskSuspend
210     #define INCLUDE_vTaskSuspend    0
211 #endif
212
213 #ifdef INCLUDE_xTaskDelayUntil
214     #ifdef INCLUDE_vTaskDelayUntil
215
216 /* INCLUDE_vTaskDelayUntil was replaced by INCLUDE_xTaskDelayUntil.  Backward
217  * compatibility is maintained if only one or the other is defined, but
218  * there is a conflict if both are defined. */
219         #error INCLUDE_vTaskDelayUntil and INCLUDE_xTaskDelayUntil are both defined.  INCLUDE_vTaskDelayUntil is no longer required and should be removed
220     #endif
221 #endif
222
223 #ifndef INCLUDE_xTaskDelayUntil
224     #ifdef INCLUDE_vTaskDelayUntil
225
226 /* If INCLUDE_vTaskDelayUntil is set but INCLUDE_xTaskDelayUntil is not then
227  * the project's FreeRTOSConfig.h probably pre-dates the introduction of
228  * xTaskDelayUntil and setting INCLUDE_xTaskDelayUntil to whatever
229  * INCLUDE_vTaskDelayUntil is set to will ensure backward compatibility.
230  */
231         #define INCLUDE_xTaskDelayUntil    INCLUDE_vTaskDelayUntil
232     #endif
233 #endif
234
235 #ifndef INCLUDE_xTaskDelayUntil
236     #define INCLUDE_xTaskDelayUntil    0
237 #endif
238
239 #ifndef INCLUDE_vTaskDelay
240     #define INCLUDE_vTaskDelay    0
241 #endif
242
243 #ifndef INCLUDE_xTaskGetIdleTaskHandle
244     #define INCLUDE_xTaskGetIdleTaskHandle    0
245 #endif
246
247 #ifndef INCLUDE_xTaskAbortDelay
248     #define INCLUDE_xTaskAbortDelay    0
249 #endif
250
251 #ifndef INCLUDE_xQueueGetMutexHolder
252     #define INCLUDE_xQueueGetMutexHolder    0
253 #endif
254
255 #ifndef INCLUDE_xSemaphoreGetMutexHolder
256     #define INCLUDE_xSemaphoreGetMutexHolder    INCLUDE_xQueueGetMutexHolder
257 #endif
258
259 #ifndef INCLUDE_xTaskGetHandle
260     #define INCLUDE_xTaskGetHandle    0
261 #endif
262
263 #ifndef INCLUDE_uxTaskGetStackHighWaterMark
264     #define INCLUDE_uxTaskGetStackHighWaterMark    0
265 #endif
266
267 #ifndef INCLUDE_uxTaskGetStackHighWaterMark2
268     #define INCLUDE_uxTaskGetStackHighWaterMark2    0
269 #endif
270
271 #ifndef INCLUDE_eTaskGetState
272     #define INCLUDE_eTaskGetState    0
273 #endif
274
275 #ifndef INCLUDE_xTaskResumeFromISR
276     #define INCLUDE_xTaskResumeFromISR    1
277 #endif
278
279 #ifndef INCLUDE_xTimerPendFunctionCall
280     #define INCLUDE_xTimerPendFunctionCall    0
281 #endif
282
283 #ifndef INCLUDE_xTaskGetSchedulerState
284     #define INCLUDE_xTaskGetSchedulerState    0
285 #endif
286
287 #ifndef INCLUDE_xTaskGetCurrentTaskHandle
288     #define INCLUDE_xTaskGetCurrentTaskHandle    1
289 #endif
290
291 #if configUSE_CO_ROUTINES != 0
292     #ifndef configMAX_CO_ROUTINE_PRIORITIES
293         #error configMAX_CO_ROUTINE_PRIORITIES must be greater than or equal to 1.
294     #endif
295 #endif
296
297 #ifndef configUSE_DAEMON_TASK_STARTUP_HOOK
298     #define configUSE_DAEMON_TASK_STARTUP_HOOK    0
299 #endif
300
301 #ifndef configUSE_APPLICATION_TASK_TAG
302     #define configUSE_APPLICATION_TASK_TAG    0
303 #endif
304
305 #ifndef configNUM_THREAD_LOCAL_STORAGE_POINTERS
306     #define configNUM_THREAD_LOCAL_STORAGE_POINTERS    0
307 #endif
308
309 #ifndef configUSE_RECURSIVE_MUTEXES
310     #define configUSE_RECURSIVE_MUTEXES    0
311 #endif
312
313 #ifndef configUSE_MUTEXES
314     #define configUSE_MUTEXES    0
315 #endif
316
317 #ifndef configUSE_TIMERS
318     #define configUSE_TIMERS    0
319 #endif
320
321 #ifndef configUSE_COUNTING_SEMAPHORES
322     #define configUSE_COUNTING_SEMAPHORES    0
323 #endif
324
325 #ifndef configUSE_TASK_PREEMPTION_DISABLE
326     #define configUSE_TASK_PREEMPTION_DISABLE    0
327 #endif
328
329 #ifndef configUSE_ALTERNATIVE_API
330     #define configUSE_ALTERNATIVE_API    0
331 #endif
332
333 #ifndef portCRITICAL_NESTING_IN_TCB
334     #define portCRITICAL_NESTING_IN_TCB    0
335 #endif
336
337 #ifndef configMAX_TASK_NAME_LEN
338     #define configMAX_TASK_NAME_LEN    16
339 #endif
340
341 #ifndef configIDLE_SHOULD_YIELD
342     #define configIDLE_SHOULD_YIELD    1
343 #endif
344
345 #if configMAX_TASK_NAME_LEN < 1
346     #error configMAX_TASK_NAME_LEN must be set to a minimum of 1 in FreeRTOSConfig.h
347 #endif
348
349 #ifndef configASSERT
350     #define configASSERT( x )
351     #define configASSERT_DEFINED    0
352 #else
353     #define configASSERT_DEFINED    1
354 #endif
355
356 /* configPRECONDITION should be defined as configASSERT.
357  * The CBMC proofs need a way to track assumptions and assertions.
358  * A configPRECONDITION statement should express an implicit invariant or
359  * assumption made.  A configASSERT statement should express an invariant that must
360  * hold explicit before calling the code. */
361 #ifndef configPRECONDITION
362     #define configPRECONDITION( X )    configASSERT( X )
363     #define configPRECONDITION_DEFINED    0
364 #else
365     #define configPRECONDITION_DEFINED    1
366 #endif
367
368 #ifndef portMEMORY_BARRIER
369     #define portMEMORY_BARRIER()
370 #endif
371
372 #ifndef portSOFTWARE_BARRIER
373     #define portSOFTWARE_BARRIER()
374 #endif
375
376 #ifndef configRUN_MULTIPLE_PRIORITIES
377     #define configRUN_MULTIPLE_PRIORITIES    0
378 #endif
379
380 #ifndef portGET_CORE_ID
381
382     #if ( configNUMBER_OF_CORES == 1 )
383         #define portGET_CORE_ID()    0
384     #else
385         #error configNUMBER_OF_CORES is set to more than 1 then portGET_CORE_ID must also be defined.
386     #endif /* configNUMBER_OF_CORES */
387
388 #endif /* portGET_CORE_ID */
389
390 #ifndef portYIELD_CORE
391
392     #if ( configNUMBER_OF_CORES == 1 )
393         #define portYIELD_CORE( x )    portYIELD()
394     #else
395         #error configNUMBER_OF_CORES is set to more than 1 then portYIELD_CORE must also be defined.
396     #endif /* configNUMBER_OF_CORES */
397
398 #endif /* portYIELD_CORE */
399
400 #ifndef portSET_INTERRUPT_MASK
401
402     #if ( configNUMBER_OF_CORES > 1 )
403         #error portSET_INTERRUPT_MASK is required in SMP
404     #endif
405
406 #endif /* portSET_INTERRUPT_MASK */
407
408 #ifndef portCLEAR_INTERRUPT_MASK
409
410     #if ( configNUMBER_OF_CORES > 1 )
411         #error portCLEAR_INTERRUPT_MASK is required in SMP
412     #endif
413
414 #endif /* portCLEAR_INTERRUPT_MASK */
415
416 #ifndef portRELEASE_TASK_LOCK
417
418     #if ( configNUMBER_OF_CORES == 1 )
419         #define portRELEASE_TASK_LOCK()
420     #else
421         #error portRELEASE_TASK_LOCK is required in SMP
422     #endif
423
424 #endif /* portRELEASE_TASK_LOCK */
425
426 #ifndef portGET_TASK_LOCK
427
428     #if ( configNUMBER_OF_CORES == 1 )
429         #define portGET_TASK_LOCK()
430     #else
431         #error portGET_TASK_LOCK is required in SMP
432     #endif
433
434 #endif /* portGET_TASK_LOCK */
435
436 #ifndef portRELEASE_ISR_LOCK
437
438     #if ( configNUMBER_OF_CORES == 1 )
439         #define portRELEASE_ISR_LOCK()
440     #else
441         #error portRELEASE_ISR_LOCK is required in SMP
442     #endif
443
444 #endif /* portRELEASE_ISR_LOCK */
445
446 #ifndef portGET_ISR_LOCK
447
448     #if ( configNUMBER_OF_CORES == 1 )
449         #define portGET_ISR_LOCK()
450     #else
451         #error portGET_ISR_LOCK is required in SMP
452     #endif
453
454 #endif /* portGET_ISR_LOCK */
455
456 #ifndef portENTER_CRITICAL_FROM_ISR
457
458     #if ( configNUMBER_OF_CORES > 1 )
459         #error portENTER_CRITICAL_FROM_ISR is required in SMP
460     #endif
461
462 #endif
463
464 #ifndef portEXIT_CRITICAL_FROM_ISR
465
466     #if ( configNUMBER_OF_CORES > 1 )
467         #error portEXIT_CRITICAL_FROM_ISR is required in SMP
468     #endif
469
470 #endif
471
472 #ifndef configUSE_CORE_AFFINITY
473     #define configUSE_CORE_AFFINITY    0
474 #endif /* configUSE_CORE_AFFINITY */
475
476 #ifndef configUSE_PASSIVE_IDLE_HOOK
477     #define configUSE_PASSIVE_IDLE_HOOK    0
478 #endif /* configUSE_PASSIVE_IDLE_HOOK */
479
480 /* The timers module relies on xTaskGetSchedulerState(). */
481 #if configUSE_TIMERS == 1
482
483     #ifndef configTIMER_TASK_PRIORITY
484         #error If configUSE_TIMERS is set to 1 then configTIMER_TASK_PRIORITY must also be defined.
485     #endif /* configTIMER_TASK_PRIORITY */
486
487     #ifndef configTIMER_QUEUE_LENGTH
488         #error If configUSE_TIMERS is set to 1 then configTIMER_QUEUE_LENGTH must also be defined.
489     #endif /* configTIMER_QUEUE_LENGTH */
490
491     #ifndef configTIMER_TASK_STACK_DEPTH
492         #error If configUSE_TIMERS is set to 1 then configTIMER_TASK_STACK_DEPTH must also be defined.
493     #endif /* configTIMER_TASK_STACK_DEPTH */
494
495     #ifndef portTIMER_CALLBACK_ATTRIBUTE
496         #define portTIMER_CALLBACK_ATTRIBUTE
497     #endif /* portTIMER_CALLBACK_ATTRIBUTE */
498
499 #endif /* configUSE_TIMERS */
500
501 #ifndef portSET_INTERRUPT_MASK_FROM_ISR
502     #define portSET_INTERRUPT_MASK_FROM_ISR()    0
503 #endif
504
505 #ifndef portCLEAR_INTERRUPT_MASK_FROM_ISR
506     #define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedStatusValue )    ( void ) ( uxSavedStatusValue )
507 #endif
508
509 #ifndef portCLEAN_UP_TCB
510     #define portCLEAN_UP_TCB( pxTCB )    ( void ) ( pxTCB )
511 #endif
512
513 #ifndef portPRE_TASK_DELETE_HOOK
514     #define portPRE_TASK_DELETE_HOOK( pvTaskToDelete, pxYieldPending )
515 #endif
516
517 #ifndef portSETUP_TCB
518     #define portSETUP_TCB( pxTCB )    ( void ) ( pxTCB )
519 #endif
520
521 #ifndef configQUEUE_REGISTRY_SIZE
522     #define configQUEUE_REGISTRY_SIZE    0U
523 #endif
524
525 #if ( configQUEUE_REGISTRY_SIZE < 1 )
526     #define vQueueAddToRegistry( xQueue, pcName )
527     #define vQueueUnregisterQueue( xQueue )
528     #define pcQueueGetName( xQueue )
529 #endif
530
531 #ifndef configUSE_MINI_LIST_ITEM
532     #define configUSE_MINI_LIST_ITEM    1
533 #endif
534
535 #ifndef portPOINTER_SIZE_TYPE
536     #define portPOINTER_SIZE_TYPE    uint32_t
537 #endif
538
539 /* Remove any unused trace macros. */
540 #ifndef traceSTART
541
542 /* Used to perform any necessary initialisation - for example, open a file
543  * into which trace is to be written. */
544     #define traceSTART()
545 #endif
546
547 #ifndef traceEND
548
549 /* Use to close a trace, for example close a file into which trace has been
550  * written. */
551     #define traceEND()
552 #endif
553
554 #ifndef traceTASK_SWITCHED_IN
555
556 /* Called after a task has been selected to run.  pxCurrentTCB holds a pointer
557  * to the task control block of the selected task. */
558     #define traceTASK_SWITCHED_IN()
559 #endif
560
561 #ifndef traceINCREASE_TICK_COUNT
562
563 /* Called before stepping the tick count after waking from tickless idle
564  * sleep. */
565     #define traceINCREASE_TICK_COUNT( x )
566 #endif
567
568 #ifndef traceLOW_POWER_IDLE_BEGIN
569     /* Called immediately before entering tickless idle. */
570     #define traceLOW_POWER_IDLE_BEGIN()
571 #endif
572
573 #ifndef traceLOW_POWER_IDLE_END
574     /* Called when returning to the Idle task after a tickless idle. */
575     #define traceLOW_POWER_IDLE_END()
576 #endif
577
578 #ifndef traceTASK_SWITCHED_OUT
579
580 /* Called before a task has been selected to run.  pxCurrentTCB holds a pointer
581  * to the task control block of the task being switched out. */
582     #define traceTASK_SWITCHED_OUT()
583 #endif
584
585 #ifndef traceTASK_PRIORITY_INHERIT
586
587 /* Called when a task attempts to take a mutex that is already held by a
588  * lower priority task.  pxTCBOfMutexHolder is a pointer to the TCB of the task
589  * that holds the mutex.  uxInheritedPriority is the priority the mutex holder
590  * will inherit (the priority of the task that is attempting to obtain the
591  * muted. */
592     #define traceTASK_PRIORITY_INHERIT( pxTCBOfMutexHolder, uxInheritedPriority )
593 #endif
594
595 #ifndef traceTASK_PRIORITY_DISINHERIT
596
597 /* Called when a task releases a mutex, the holding of which had resulted in
598  * the task inheriting the priority of a higher priority task.
599  * pxTCBOfMutexHolder is a pointer to the TCB of the task that is releasing the
600  * mutex.  uxOriginalPriority is the task's configured (base) priority. */
601     #define traceTASK_PRIORITY_DISINHERIT( pxTCBOfMutexHolder, uxOriginalPriority )
602 #endif
603
604 #ifndef traceBLOCKING_ON_QUEUE_RECEIVE
605
606 /* Task is about to block because it cannot read from a
607  * queue/mutex/semaphore.  pxQueue is a pointer to the queue/mutex/semaphore
608  * upon which the read was attempted.  pxCurrentTCB points to the TCB of the
609  * task that attempted the read. */
610     #define traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue )
611 #endif
612
613 #ifndef traceBLOCKING_ON_QUEUE_PEEK
614
615 /* Task is about to block because it cannot read from a
616  * queue/mutex/semaphore.  pxQueue is a pointer to the queue/mutex/semaphore
617  * upon which the read was attempted.  pxCurrentTCB points to the TCB of the
618  * task that attempted the read. */
619     #define traceBLOCKING_ON_QUEUE_PEEK( pxQueue )
620 #endif
621
622 #ifndef traceBLOCKING_ON_QUEUE_SEND
623
624 /* Task is about to block because it cannot write to a
625  * queue/mutex/semaphore.  pxQueue is a pointer to the queue/mutex/semaphore
626  * upon which the write was attempted.  pxCurrentTCB points to the TCB of the
627  * task that attempted the write. */
628     #define traceBLOCKING_ON_QUEUE_SEND( pxQueue )
629 #endif
630
631 #ifndef configCHECK_FOR_STACK_OVERFLOW
632     #define configCHECK_FOR_STACK_OVERFLOW    0
633 #endif
634
635 #ifndef configRECORD_STACK_HIGH_ADDRESS
636     #define configRECORD_STACK_HIGH_ADDRESS    0
637 #endif
638
639 #ifndef configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H
640     #define configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H    0
641 #endif
642
643 /* The following event macros are embedded in the kernel API calls. */
644
645 #ifndef traceMOVED_TASK_TO_READY_STATE
646     #define traceMOVED_TASK_TO_READY_STATE( pxTCB )
647 #endif
648
649 #ifndef tracePOST_MOVED_TASK_TO_READY_STATE
650     #define tracePOST_MOVED_TASK_TO_READY_STATE( pxTCB )
651 #endif
652
653 #ifndef traceMOVED_TASK_TO_DELAYED_LIST
654     #define traceMOVED_TASK_TO_DELAYED_LIST()
655 #endif
656
657 #ifndef traceMOVED_TASK_TO_OVERFLOW_DELAYED_LIST
658     #define traceMOVED_TASK_TO_OVERFLOW_DELAYED_LIST()
659 #endif
660
661 #ifndef traceQUEUE_CREATE
662     #define traceQUEUE_CREATE( pxNewQueue )
663 #endif
664
665 #ifndef traceQUEUE_CREATE_FAILED
666     #define traceQUEUE_CREATE_FAILED( ucQueueType )
667 #endif
668
669 #ifndef traceCREATE_MUTEX
670     #define traceCREATE_MUTEX( pxNewQueue )
671 #endif
672
673 #ifndef traceCREATE_MUTEX_FAILED
674     #define traceCREATE_MUTEX_FAILED()
675 #endif
676
677 #ifndef traceGIVE_MUTEX_RECURSIVE
678     #define traceGIVE_MUTEX_RECURSIVE( pxMutex )
679 #endif
680
681 #ifndef traceGIVE_MUTEX_RECURSIVE_FAILED
682     #define traceGIVE_MUTEX_RECURSIVE_FAILED( pxMutex )
683 #endif
684
685 #ifndef traceTAKE_MUTEX_RECURSIVE
686     #define traceTAKE_MUTEX_RECURSIVE( pxMutex )
687 #endif
688
689 #ifndef traceTAKE_MUTEX_RECURSIVE_FAILED
690     #define traceTAKE_MUTEX_RECURSIVE_FAILED( pxMutex )
691 #endif
692
693 #ifndef traceCREATE_COUNTING_SEMAPHORE
694     #define traceCREATE_COUNTING_SEMAPHORE()
695 #endif
696
697 #ifndef traceCREATE_COUNTING_SEMAPHORE_FAILED
698     #define traceCREATE_COUNTING_SEMAPHORE_FAILED()
699 #endif
700
701 #ifndef traceQUEUE_SET_SEND
702     #define traceQUEUE_SET_SEND    traceQUEUE_SEND
703 #endif
704
705 #ifndef traceQUEUE_SEND
706     #define traceQUEUE_SEND( pxQueue )
707 #endif
708
709 #ifndef traceQUEUE_SEND_FAILED
710     #define traceQUEUE_SEND_FAILED( pxQueue )
711 #endif
712
713 #ifndef traceQUEUE_RECEIVE
714     #define traceQUEUE_RECEIVE( pxQueue )
715 #endif
716
717 #ifndef traceQUEUE_PEEK
718     #define traceQUEUE_PEEK( pxQueue )
719 #endif
720
721 #ifndef traceQUEUE_PEEK_FAILED
722     #define traceQUEUE_PEEK_FAILED( pxQueue )
723 #endif
724
725 #ifndef traceQUEUE_PEEK_FROM_ISR
726     #define traceQUEUE_PEEK_FROM_ISR( pxQueue )
727 #endif
728
729 #ifndef traceQUEUE_RECEIVE_FAILED
730     #define traceQUEUE_RECEIVE_FAILED( pxQueue )
731 #endif
732
733 #ifndef traceQUEUE_SEND_FROM_ISR
734     #define traceQUEUE_SEND_FROM_ISR( pxQueue )
735 #endif
736
737 #ifndef traceQUEUE_SEND_FROM_ISR_FAILED
738     #define traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue )
739 #endif
740
741 #ifndef traceQUEUE_RECEIVE_FROM_ISR
742     #define traceQUEUE_RECEIVE_FROM_ISR( pxQueue )
743 #endif
744
745 #ifndef traceQUEUE_RECEIVE_FROM_ISR_FAILED
746     #define traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue )
747 #endif
748
749 #ifndef traceQUEUE_PEEK_FROM_ISR_FAILED
750     #define traceQUEUE_PEEK_FROM_ISR_FAILED( pxQueue )
751 #endif
752
753 #ifndef traceQUEUE_DELETE
754     #define traceQUEUE_DELETE( pxQueue )
755 #endif
756
757 #ifndef traceTASK_CREATE
758     #define traceTASK_CREATE( pxNewTCB )
759 #endif
760
761 #ifndef traceTASK_CREATE_FAILED
762     #define traceTASK_CREATE_FAILED()
763 #endif
764
765 #ifndef traceTASK_DELETE
766     #define traceTASK_DELETE( pxTaskToDelete )
767 #endif
768
769 #ifndef traceTASK_DELAY_UNTIL
770     #define traceTASK_DELAY_UNTIL( x )
771 #endif
772
773 #ifndef traceTASK_DELAY
774     #define traceTASK_DELAY()
775 #endif
776
777 #ifndef traceTASK_PRIORITY_SET
778     #define traceTASK_PRIORITY_SET( pxTask, uxNewPriority )
779 #endif
780
781 #ifndef traceTASK_SUSPEND
782     #define traceTASK_SUSPEND( pxTaskToSuspend )
783 #endif
784
785 #ifndef traceTASK_RESUME
786     #define traceTASK_RESUME( pxTaskToResume )
787 #endif
788
789 #ifndef traceTASK_RESUME_FROM_ISR
790     #define traceTASK_RESUME_FROM_ISR( pxTaskToResume )
791 #endif
792
793 #ifndef traceTASK_INCREMENT_TICK
794     #define traceTASK_INCREMENT_TICK( xTickCount )
795 #endif
796
797 #ifndef traceTIMER_CREATE
798     #define traceTIMER_CREATE( pxNewTimer )
799 #endif
800
801 #ifndef traceTIMER_CREATE_FAILED
802     #define traceTIMER_CREATE_FAILED()
803 #endif
804
805 #ifndef traceTIMER_COMMAND_SEND
806     #define traceTIMER_COMMAND_SEND( xTimer, xMessageID, xMessageValueValue, xReturn )
807 #endif
808
809 #ifndef traceTIMER_EXPIRED
810     #define traceTIMER_EXPIRED( pxTimer )
811 #endif
812
813 #ifndef traceTIMER_COMMAND_RECEIVED
814     #define traceTIMER_COMMAND_RECEIVED( pxTimer, xMessageID, xMessageValue )
815 #endif
816
817 #ifndef traceMALLOC
818     #define traceMALLOC( pvAddress, uiSize )
819 #endif
820
821 #ifndef traceFREE
822     #define traceFREE( pvAddress, uiSize )
823 #endif
824
825 #ifndef traceEVENT_GROUP_CREATE
826     #define traceEVENT_GROUP_CREATE( xEventGroup )
827 #endif
828
829 #ifndef traceEVENT_GROUP_CREATE_FAILED
830     #define traceEVENT_GROUP_CREATE_FAILED()
831 #endif
832
833 #ifndef traceEVENT_GROUP_SYNC_BLOCK
834     #define traceEVENT_GROUP_SYNC_BLOCK( xEventGroup, uxBitsToSet, uxBitsToWaitFor )
835 #endif
836
837 #ifndef traceEVENT_GROUP_SYNC_END
838     #define traceEVENT_GROUP_SYNC_END( xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTimeoutOccurred )    ( void ) ( xTimeoutOccurred )
839 #endif
840
841 #ifndef traceEVENT_GROUP_WAIT_BITS_BLOCK
842     #define traceEVENT_GROUP_WAIT_BITS_BLOCK( xEventGroup, uxBitsToWaitFor )
843 #endif
844
845 #ifndef traceEVENT_GROUP_WAIT_BITS_END
846     #define traceEVENT_GROUP_WAIT_BITS_END( xEventGroup, uxBitsToWaitFor, xTimeoutOccurred )    ( void ) ( xTimeoutOccurred )
847 #endif
848
849 #ifndef traceEVENT_GROUP_CLEAR_BITS
850     #define traceEVENT_GROUP_CLEAR_BITS( xEventGroup, uxBitsToClear )
851 #endif
852
853 #ifndef traceEVENT_GROUP_CLEAR_BITS_FROM_ISR
854     #define traceEVENT_GROUP_CLEAR_BITS_FROM_ISR( xEventGroup, uxBitsToClear )
855 #endif
856
857 #ifndef traceEVENT_GROUP_SET_BITS
858     #define traceEVENT_GROUP_SET_BITS( xEventGroup, uxBitsToSet )
859 #endif
860
861 #ifndef traceEVENT_GROUP_SET_BITS_FROM_ISR
862     #define traceEVENT_GROUP_SET_BITS_FROM_ISR( xEventGroup, uxBitsToSet )
863 #endif
864
865 #ifndef traceEVENT_GROUP_DELETE
866     #define traceEVENT_GROUP_DELETE( xEventGroup )
867 #endif
868
869 #ifndef tracePEND_FUNC_CALL
870     #define tracePEND_FUNC_CALL( xFunctionToPend, pvParameter1, ulParameter2, ret )
871 #endif
872
873 #ifndef tracePEND_FUNC_CALL_FROM_ISR
874     #define tracePEND_FUNC_CALL_FROM_ISR( xFunctionToPend, pvParameter1, ulParameter2, ret )
875 #endif
876
877 #ifndef traceQUEUE_REGISTRY_ADD
878     #define traceQUEUE_REGISTRY_ADD( xQueue, pcQueueName )
879 #endif
880
881 #ifndef traceTASK_NOTIFY_TAKE_BLOCK
882     #define traceTASK_NOTIFY_TAKE_BLOCK( uxIndexToWait )
883 #endif
884
885 #ifndef traceTASK_NOTIFY_TAKE
886     #define traceTASK_NOTIFY_TAKE( uxIndexToWait )
887 #endif
888
889 #ifndef traceTASK_NOTIFY_WAIT_BLOCK
890     #define traceTASK_NOTIFY_WAIT_BLOCK( uxIndexToWait )
891 #endif
892
893 #ifndef traceTASK_NOTIFY_WAIT
894     #define traceTASK_NOTIFY_WAIT( uxIndexToWait )
895 #endif
896
897 #ifndef traceTASK_NOTIFY
898     #define traceTASK_NOTIFY( uxIndexToNotify )
899 #endif
900
901 #ifndef traceTASK_NOTIFY_FROM_ISR
902     #define traceTASK_NOTIFY_FROM_ISR( uxIndexToNotify )
903 #endif
904
905 #ifndef traceTASK_NOTIFY_GIVE_FROM_ISR
906     #define traceTASK_NOTIFY_GIVE_FROM_ISR( uxIndexToNotify )
907 #endif
908
909 #ifndef traceISR_EXIT_TO_SCHEDULER
910     #define traceISR_EXIT_TO_SCHEDULER()
911 #endif
912
913 #ifndef traceISR_EXIT
914     #define traceISR_EXIT()
915 #endif
916
917 #ifndef traceISR_ENTER
918     #define traceISR_ENTER()
919 #endif
920
921 #ifndef traceSTREAM_BUFFER_CREATE_FAILED
922     #define traceSTREAM_BUFFER_CREATE_FAILED( xIsMessageBuffer )
923 #endif
924
925 #ifndef traceSTREAM_BUFFER_CREATE_STATIC_FAILED
926     #define traceSTREAM_BUFFER_CREATE_STATIC_FAILED( xReturn, xIsMessageBuffer )
927 #endif
928
929 #ifndef traceSTREAM_BUFFER_CREATE
930     #define traceSTREAM_BUFFER_CREATE( pxStreamBuffer, xIsMessageBuffer )
931 #endif
932
933 #ifndef traceSTREAM_BUFFER_DELETE
934     #define traceSTREAM_BUFFER_DELETE( xStreamBuffer )
935 #endif
936
937 #ifndef traceSTREAM_BUFFER_RESET
938     #define traceSTREAM_BUFFER_RESET( xStreamBuffer )
939 #endif
940
941 #ifndef traceBLOCKING_ON_STREAM_BUFFER_SEND
942     #define traceBLOCKING_ON_STREAM_BUFFER_SEND( xStreamBuffer )
943 #endif
944
945 #ifndef traceSTREAM_BUFFER_SEND
946     #define traceSTREAM_BUFFER_SEND( xStreamBuffer, xBytesSent )
947 #endif
948
949 #ifndef traceSTREAM_BUFFER_SEND_FAILED
950     #define traceSTREAM_BUFFER_SEND_FAILED( xStreamBuffer )
951 #endif
952
953 #ifndef traceSTREAM_BUFFER_SEND_FROM_ISR
954     #define traceSTREAM_BUFFER_SEND_FROM_ISR( xStreamBuffer, xBytesSent )
955 #endif
956
957 #ifndef traceBLOCKING_ON_STREAM_BUFFER_RECEIVE
958     #define traceBLOCKING_ON_STREAM_BUFFER_RECEIVE( xStreamBuffer )
959 #endif
960
961 #ifndef traceSTREAM_BUFFER_RECEIVE
962     #define traceSTREAM_BUFFER_RECEIVE( xStreamBuffer, xReceivedLength )
963 #endif
964
965 #ifndef traceSTREAM_BUFFER_RECEIVE_FAILED
966     #define traceSTREAM_BUFFER_RECEIVE_FAILED( xStreamBuffer )
967 #endif
968
969 #ifndef traceSTREAM_BUFFER_RECEIVE_FROM_ISR
970     #define traceSTREAM_BUFFER_RECEIVE_FROM_ISR( xStreamBuffer, xReceivedLength )
971 #endif
972
973 #ifndef traceENTER_xEventGroupCreateStatic
974     #define traceENTER_xEventGroupCreateStatic( pxEventGroupBuffer )
975 #endif
976
977 #ifndef traceRETURN_xEventGroupCreateStatic
978     #define traceRETURN_xEventGroupCreateStatic( pxEventBits )
979 #endif
980
981 #ifndef traceENTER_xEventGroupCreate
982     #define traceENTER_xEventGroupCreate()
983 #endif
984
985 #ifndef traceRETURN_xEventGroupCreate
986     #define traceRETURN_xEventGroupCreate( pxEventBits )
987 #endif
988
989 #ifndef traceENTER_xEventGroupSync
990     #define traceENTER_xEventGroupSync( xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTicksToWait )
991 #endif
992
993 #ifndef traceRETURN_xEventGroupSync
994     #define traceRETURN_xEventGroupSync( uxReturn )
995 #endif
996
997 #ifndef traceENTER_xEventGroupWaitBits
998     #define traceENTER_xEventGroupWaitBits( xEventGroup, uxBitsToWaitFor, xClearOnExit, xWaitForAllBits, xTicksToWait )
999 #endif
1000
1001 #ifndef traceRETURN_xEventGroupWaitBits
1002     #define traceRETURN_xEventGroupWaitBits( uxReturn )
1003 #endif
1004
1005 #ifndef traceENTER_xEventGroupClearBits
1006     #define traceENTER_xEventGroupClearBits( xEventGroup, uxBitsToClear )
1007 #endif
1008
1009 #ifndef traceRETURN_xEventGroupClearBits
1010     #define traceRETURN_xEventGroupClearBits( uxReturn )
1011 #endif
1012
1013 #ifndef traceENTER_xEventGroupClearBitsFromISR
1014     #define traceENTER_xEventGroupClearBitsFromISR( xEventGroup, uxBitsToClear )
1015 #endif
1016
1017 #ifndef traceRETURN_xEventGroupClearBitsFromISR
1018     #define traceRETURN_xEventGroupClearBitsFromISR( xReturn )
1019 #endif
1020
1021 #ifndef traceENTER_xEventGroupGetBitsFromISR
1022     #define traceENTER_xEventGroupGetBitsFromISR( xEventGroup )
1023 #endif
1024
1025 #ifndef traceRETURN_xEventGroupGetBitsFromISR
1026     #define traceRETURN_xEventGroupGetBitsFromISR( uxReturn )
1027 #endif
1028
1029 #ifndef traceENTER_xEventGroupSetBits
1030     #define traceENTER_xEventGroupSetBits( xEventGroup, uxBitsToSet )
1031 #endif
1032
1033 #ifndef traceRETURN_xEventGroupSetBits
1034     #define traceRETURN_xEventGroupSetBits( uxEventBits )
1035 #endif
1036
1037 #ifndef traceENTER_vEventGroupDelete
1038     #define traceENTER_vEventGroupDelete( xEventGroup )
1039 #endif
1040
1041 #ifndef traceRETURN_vEventGroupDelete
1042     #define traceRETURN_vEventGroupDelete()
1043 #endif
1044
1045 #ifndef traceENTER_xEventGroupGetStaticBuffer
1046     #define traceENTER_xEventGroupGetStaticBuffer( xEventGroup, ppxEventGroupBuffer )
1047 #endif
1048
1049 #ifndef traceRETURN_xEventGroupGetStaticBuffer
1050     #define traceRETURN_xEventGroupGetStaticBuffer( xReturn )
1051 #endif
1052
1053 #ifndef traceENTER_vEventGroupSetBitsCallback
1054     #define traceENTER_vEventGroupSetBitsCallback( pvEventGroup, ulBitsToSet )
1055 #endif
1056
1057 #ifndef traceRETURN_vEventGroupSetBitsCallback
1058     #define traceRETURN_vEventGroupSetBitsCallback()
1059 #endif
1060
1061 #ifndef traceENTER_vEventGroupClearBitsCallback
1062     #define traceENTER_vEventGroupClearBitsCallback( pvEventGroup, ulBitsToClear )
1063 #endif
1064
1065 #ifndef traceRETURN_vEventGroupClearBitsCallback
1066     #define traceRETURN_vEventGroupClearBitsCallback()
1067 #endif
1068
1069 #ifndef traceENTER_xEventGroupSetBitsFromISR
1070     #define traceENTER_xEventGroupSetBitsFromISR( xEventGroup, uxBitsToSet, pxHigherPriorityTaskWoken )
1071 #endif
1072
1073 #ifndef traceRETURN_xEventGroupSetBitsFromISR
1074     #define traceRETURN_xEventGroupSetBitsFromISR( xReturn )
1075 #endif
1076
1077 #ifndef traceENTER_uxEventGroupGetNumber
1078     #define traceENTER_uxEventGroupGetNumber( xEventGroup )
1079 #endif
1080
1081 #ifndef traceRETURN_uxEventGroupGetNumber
1082     #define traceRETURN_uxEventGroupGetNumber( xReturn )
1083 #endif
1084
1085 #ifndef traceENTER_vEventGroupSetNumber
1086     #define traceENTER_vEventGroupSetNumber( xEventGroup, uxEventGroupNumber )
1087 #endif
1088
1089 #ifndef traceRETURN_vEventGroupSetNumber
1090     #define traceRETURN_vEventGroupSetNumber()
1091 #endif
1092
1093 #ifndef traceENTER_xQueueGenericReset
1094     #define traceENTER_xQueueGenericReset( xQueue, xNewQueue )
1095 #endif
1096
1097 #ifndef traceRETURN_xQueueGenericReset
1098     #define traceRETURN_xQueueGenericReset( xReturn )
1099 #endif
1100
1101 #ifndef traceENTER_xQueueGenericCreateStatic
1102     #define traceENTER_xQueueGenericCreateStatic( uxQueueLength, uxItemSize, pucQueueStorage, pxStaticQueue, ucQueueType )
1103 #endif
1104
1105 #ifndef traceRETURN_xQueueGenericCreateStatic
1106     #define traceRETURN_xQueueGenericCreateStatic( pxNewQueue )
1107 #endif
1108
1109 #ifndef traceENTER_xQueueGenericGetStaticBuffers
1110     #define traceENTER_xQueueGenericGetStaticBuffers( xQueue, ppucQueueStorage, ppxStaticQueue )
1111 #endif
1112
1113 #ifndef traceRETURN_xQueueGenericGetStaticBuffers
1114     #define traceRETURN_xQueueGenericGetStaticBuffers( xReturn )
1115 #endif
1116
1117 #ifndef traceENTER_xQueueGenericCreate
1118     #define traceENTER_xQueueGenericCreate( uxQueueLength, uxItemSize, ucQueueType )
1119 #endif
1120
1121 #ifndef traceRETURN_xQueueGenericCreate
1122     #define traceRETURN_xQueueGenericCreate( pxNewQueue )
1123 #endif
1124
1125 #ifndef traceENTER_xQueueCreateMutex
1126     #define traceENTER_xQueueCreateMutex( ucQueueType )
1127 #endif
1128
1129 #ifndef traceRETURN_xQueueCreateMutex
1130     #define traceRETURN_xQueueCreateMutex( xNewQueue )
1131 #endif
1132
1133 #ifndef traceENTER_xQueueCreateMutexStatic
1134     #define traceENTER_xQueueCreateMutexStatic( ucQueueType, pxStaticQueue )
1135 #endif
1136
1137 #ifndef traceRETURN_xQueueCreateMutexStatic
1138     #define traceRETURN_xQueueCreateMutexStatic( xNewQueue )
1139 #endif
1140
1141 #ifndef traceENTER_xQueueGetMutexHolder
1142     #define traceENTER_xQueueGetMutexHolder( xSemaphore )
1143 #endif
1144
1145 #ifndef traceRETURN_xQueueGetMutexHolder
1146     #define traceRETURN_xQueueGetMutexHolder( pxReturn )
1147 #endif
1148
1149 #ifndef traceENTER_xQueueGetMutexHolderFromISR
1150     #define traceENTER_xQueueGetMutexHolderFromISR( xSemaphore )
1151 #endif
1152
1153 #ifndef traceRETURN_xQueueGetMutexHolderFromISR
1154     #define traceRETURN_xQueueGetMutexHolderFromISR( pxReturn )
1155 #endif
1156
1157 #ifndef traceENTER_xQueueGiveMutexRecursive
1158     #define traceENTER_xQueueGiveMutexRecursive( xMutex )
1159 #endif
1160
1161 #ifndef traceRETURN_xQueueGiveMutexRecursive
1162     #define traceRETURN_xQueueGiveMutexRecursive( xReturn )
1163 #endif
1164
1165 #ifndef traceENTER_xQueueTakeMutexRecursive
1166     #define traceENTER_xQueueTakeMutexRecursive( xMutex, xTicksToWait )
1167 #endif
1168
1169 #ifndef traceRETURN_xQueueTakeMutexRecursive
1170     #define traceRETURN_xQueueTakeMutexRecursive( xReturn )
1171 #endif
1172
1173 #ifndef traceENTER_xQueueCreateCountingSemaphoreStatic
1174     #define traceENTER_xQueueCreateCountingSemaphoreStatic( uxMaxCount, uxInitialCount, pxStaticQueue )
1175 #endif
1176
1177 #ifndef traceRETURN_xQueueCreateCountingSemaphoreStatic
1178     #define traceRETURN_xQueueCreateCountingSemaphoreStatic( xHandle )
1179 #endif
1180
1181 #ifndef traceENTER_xQueueCreateCountingSemaphore
1182     #define traceENTER_xQueueCreateCountingSemaphore( uxMaxCount, uxInitialCount )
1183 #endif
1184
1185 #ifndef traceRETURN_xQueueCreateCountingSemaphore
1186     #define traceRETURN_xQueueCreateCountingSemaphore( xHandle )
1187 #endif
1188
1189 #ifndef traceENTER_xQueueGenericSend
1190     #define traceENTER_xQueueGenericSend( xQueue, pvItemToQueue, xTicksToWait, xCopyPosition )
1191 #endif
1192
1193 #ifndef traceRETURN_xQueueGenericSend
1194     #define traceRETURN_xQueueGenericSend( xReturn )
1195 #endif
1196
1197 #ifndef traceENTER_xQueueGenericSendFromISR
1198     #define traceENTER_xQueueGenericSendFromISR( xQueue, pvItemToQueue, pxHigherPriorityTaskWoken, xCopyPosition )
1199 #endif
1200
1201 #ifndef traceRETURN_xQueueGenericSendFromISR
1202     #define traceRETURN_xQueueGenericSendFromISR( xReturn )
1203 #endif
1204
1205 #ifndef traceENTER_xQueueGiveFromISR
1206     #define traceENTER_xQueueGiveFromISR( xQueue, pxHigherPriorityTaskWoken )
1207 #endif
1208
1209 #ifndef traceRETURN_xQueueGiveFromISR
1210     #define traceRETURN_xQueueGiveFromISR( xReturn )
1211 #endif
1212
1213 #ifndef traceENTER_xQueueReceive
1214     #define traceENTER_xQueueReceive( xQueue, pvBuffer, xTicksToWait )
1215 #endif
1216
1217 #ifndef traceRETURN_xQueueReceive
1218     #define traceRETURN_xQueueReceive( xReturn )
1219 #endif
1220
1221 #ifndef traceENTER_xQueueSemaphoreTake
1222     #define traceENTER_xQueueSemaphoreTake( xQueue, xTicksToWait )
1223 #endif
1224
1225 #ifndef traceRETURN_xQueueSemaphoreTake
1226     #define traceRETURN_xQueueSemaphoreTake( xReturn )
1227 #endif
1228
1229 #ifndef traceENTER_xQueuePeek
1230     #define traceENTER_xQueuePeek( xQueue, pvBuffer, xTicksToWait )
1231 #endif
1232
1233 #ifndef traceRETURN_xQueuePeek
1234     #define traceRETURN_xQueuePeek( xReturn )
1235 #endif
1236
1237 #ifndef traceENTER_xQueueReceiveFromISR
1238     #define traceENTER_xQueueReceiveFromISR( xQueue, pvBuffer, pxHigherPriorityTaskWoken )
1239 #endif
1240
1241 #ifndef traceRETURN_xQueueReceiveFromISR
1242     #define traceRETURN_xQueueReceiveFromISR( xReturn )
1243 #endif
1244
1245 #ifndef traceENTER_xQueuePeekFromISR
1246     #define traceENTER_xQueuePeekFromISR( xQueue, pvBuffer )
1247 #endif
1248
1249 #ifndef traceRETURN_xQueuePeekFromISR
1250     #define traceRETURN_xQueuePeekFromISR( xReturn )
1251 #endif
1252
1253 #ifndef traceENTER_uxQueueMessagesWaiting
1254     #define traceENTER_uxQueueMessagesWaiting( xQueue )
1255 #endif
1256
1257 #ifndef traceRETURN_uxQueueMessagesWaiting
1258     #define traceRETURN_uxQueueMessagesWaiting( uxReturn )
1259 #endif
1260
1261 #ifndef traceENTER_uxQueueSpacesAvailable
1262     #define traceENTER_uxQueueSpacesAvailable( xQueue )
1263 #endif
1264
1265 #ifndef traceRETURN_uxQueueSpacesAvailable
1266     #define traceRETURN_uxQueueSpacesAvailable( uxReturn )
1267 #endif
1268
1269 #ifndef traceENTER_uxQueueMessagesWaitingFromISR
1270     #define traceENTER_uxQueueMessagesWaitingFromISR( xQueue )
1271 #endif
1272
1273 #ifndef traceRETURN_uxQueueMessagesWaitingFromISR
1274     #define traceRETURN_uxQueueMessagesWaitingFromISR( uxReturn )
1275 #endif
1276
1277 #ifndef traceENTER_vQueueDelete
1278     #define traceENTER_vQueueDelete( xQueue )
1279 #endif
1280
1281 #ifndef traceRETURN_vQueueDelete
1282     #define traceRETURN_vQueueDelete()
1283 #endif
1284
1285 #ifndef traceENTER_uxQueueGetQueueNumber
1286     #define traceENTER_uxQueueGetQueueNumber( xQueue )
1287 #endif
1288
1289 #ifndef traceRETURN_uxQueueGetQueueNumber
1290     #define traceRETURN_uxQueueGetQueueNumber( uxQueueNumber )
1291 #endif
1292
1293 #ifndef traceENTER_vQueueSetQueueNumber
1294     #define traceENTER_vQueueSetQueueNumber( xQueue, uxQueueNumber )
1295 #endif
1296
1297 #ifndef traceRETURN_vQueueSetQueueNumber
1298     #define traceRETURN_vQueueSetQueueNumber()
1299 #endif
1300
1301 #ifndef traceENTER_ucQueueGetQueueType
1302     #define traceENTER_ucQueueGetQueueType( xQueue )
1303 #endif
1304
1305 #ifndef traceRETURN_ucQueueGetQueueType
1306     #define traceRETURN_ucQueueGetQueueType( ucQueueType )
1307 #endif
1308
1309 #ifndef traceENTER_uxQueueGetQueueItemSize
1310     #define traceENTER_uxQueueGetQueueItemSize( xQueue )
1311 #endif
1312
1313 #ifndef traceRETURN_uxQueueGetQueueItemSize
1314     #define traceRETURN_uxQueueGetQueueItemSize( uxItemSize )
1315 #endif
1316
1317 #ifndef traceENTER_uxQueueGetQueueLength
1318     #define traceENTER_uxQueueGetQueueLength( xQueue )
1319 #endif
1320
1321 #ifndef traceRETURN_uxQueueGetQueueLength
1322     #define traceRETURN_uxQueueGetQueueLength( uxLength )
1323 #endif
1324
1325 #ifndef traceENTER_xQueueIsQueueEmptyFromISR
1326     #define traceENTER_xQueueIsQueueEmptyFromISR( xQueue )
1327 #endif
1328
1329 #ifndef traceRETURN_xQueueIsQueueEmptyFromISR
1330     #define traceRETURN_xQueueIsQueueEmptyFromISR( xReturn )
1331 #endif
1332
1333 #ifndef traceENTER_xQueueIsQueueFullFromISR
1334     #define traceENTER_xQueueIsQueueFullFromISR( xQueue )
1335 #endif
1336
1337 #ifndef traceRETURN_xQueueIsQueueFullFromISR
1338     #define traceRETURN_xQueueIsQueueFullFromISR( xReturn )
1339 #endif
1340
1341 #ifndef traceENTER_xQueueCRSend
1342     #define traceENTER_xQueueCRSend( xQueue, pvItemToQueue, xTicksToWait )
1343 #endif
1344
1345 #ifndef traceRETURN_xQueueCRSend
1346     #define traceRETURN_xQueueCRSend( xReturn )
1347 #endif
1348
1349 #ifndef traceENTER_xQueueCRReceive
1350     #define traceENTER_xQueueCRReceive( xQueue, pvBuffer, xTicksToWait )
1351 #endif
1352
1353 #ifndef traceRETURN_xQueueCRReceive
1354     #define traceRETURN_xQueueCRReceive( xReturn )
1355 #endif
1356
1357 #ifndef traceENTER_xQueueCRSendFromISR
1358     #define traceENTER_xQueueCRSendFromISR( xQueue, pvItemToQueue, xCoRoutinePreviouslyWoken )
1359 #endif
1360
1361 #ifndef traceRETURN_xQueueCRSendFromISR
1362     #define traceRETURN_xQueueCRSendFromISR( xCoRoutinePreviouslyWoken )
1363 #endif
1364
1365 #ifndef traceENTER_xQueueCRReceiveFromISR
1366     #define traceENTER_xQueueCRReceiveFromISR( xQueue, pvBuffer, pxCoRoutineWoken )
1367 #endif
1368
1369 #ifndef traceRETURN_xQueueCRReceiveFromISR
1370     #define traceRETURN_xQueueCRReceiveFromISR( xReturn )
1371 #endif
1372
1373 #ifndef traceENTER_vQueueAddToRegistry
1374     #define traceENTER_vQueueAddToRegistry( xQueue, pcQueueName )
1375 #endif
1376
1377 #ifndef traceRETURN_vQueueAddToRegistry
1378     #define traceRETURN_vQueueAddToRegistry()
1379 #endif
1380
1381 #ifndef traceENTER_pcQueueGetName
1382     #define traceENTER_pcQueueGetName( xQueue )
1383 #endif
1384
1385 #ifndef traceRETURN_pcQueueGetName
1386     #define traceRETURN_pcQueueGetName( pcReturn )
1387 #endif
1388
1389 #ifndef traceENTER_vQueueUnregisterQueue
1390     #define traceENTER_vQueueUnregisterQueue( xQueue )
1391 #endif
1392
1393 #ifndef traceRETURN_vQueueUnregisterQueue
1394     #define traceRETURN_vQueueUnregisterQueue()
1395 #endif
1396
1397 #ifndef traceENTER_vQueueWaitForMessageRestricted
1398     #define traceENTER_vQueueWaitForMessageRestricted( xQueue, xTicksToWait, xWaitIndefinitely )
1399 #endif
1400
1401 #ifndef traceRETURN_vQueueWaitForMessageRestricted
1402     #define traceRETURN_vQueueWaitForMessageRestricted()
1403 #endif
1404
1405 #ifndef traceENTER_xQueueCreateSet
1406     #define traceENTER_xQueueCreateSet( uxEventQueueLength )
1407 #endif
1408
1409 #ifndef traceRETURN_xQueueCreateSet
1410     #define traceRETURN_xQueueCreateSet( pxQueue )
1411 #endif
1412
1413 #ifndef traceENTER_xQueueAddToSet
1414     #define traceENTER_xQueueAddToSet( xQueueOrSemaphore, xQueueSet )
1415 #endif
1416
1417 #ifndef traceRETURN_xQueueAddToSet
1418     #define traceRETURN_xQueueAddToSet( xReturn )
1419 #endif
1420
1421 #ifndef traceENTER_xQueueRemoveFromSet
1422     #define traceENTER_xQueueRemoveFromSet( xQueueOrSemaphore, xQueueSet )
1423 #endif
1424
1425 #ifndef traceRETURN_xQueueRemoveFromSet
1426     #define traceRETURN_xQueueRemoveFromSet( xReturn )
1427 #endif
1428
1429 #ifndef traceENTER_xQueueSelectFromSet
1430     #define traceENTER_xQueueSelectFromSet( xQueueSet, xTicksToWait )
1431 #endif
1432
1433 #ifndef traceRETURN_xQueueSelectFromSet
1434     #define traceRETURN_xQueueSelectFromSet( xReturn )
1435 #endif
1436
1437 #ifndef traceENTER_xQueueSelectFromSetFromISR
1438     #define traceENTER_xQueueSelectFromSetFromISR( xQueueSet )
1439 #endif
1440
1441 #ifndef traceRETURN_xQueueSelectFromSetFromISR
1442     #define traceRETURN_xQueueSelectFromSetFromISR( xReturn )
1443 #endif
1444
1445 #ifndef traceENTER_xTimerCreateTimerTask
1446     #define traceENTER_xTimerCreateTimerTask()
1447 #endif
1448
1449 #ifndef traceRETURN_xTimerCreateTimerTask
1450     #define traceRETURN_xTimerCreateTimerTask( xReturn )
1451 #endif
1452
1453 #ifndef traceENTER_xTimerCreate
1454     #define traceENTER_xTimerCreate( pcTimerName, xTimerPeriodInTicks, xAutoReload, pvTimerID, pxCallbackFunction )
1455 #endif
1456
1457 #ifndef traceRETURN_xTimerCreate
1458     #define traceRETURN_xTimerCreate( pxNewTimer )
1459 #endif
1460
1461 #ifndef traceENTER_xTimerCreateStatic
1462     #define traceENTER_xTimerCreateStatic( pcTimerName, xTimerPeriodInTicks, xAutoReload, pvTimerID, pxCallbackFunction, pxTimerBuffer )
1463 #endif
1464
1465 #ifndef traceRETURN_xTimerCreateStatic
1466     #define traceRETURN_xTimerCreateStatic( pxNewTimer )
1467 #endif
1468
1469 #ifndef traceENTER_xTimerGenericCommandFromTask
1470     #define traceENTER_xTimerGenericCommandFromTask( xTimer, xCommandID, xOptionalValue, pxHigherPriorityTaskWoken, xTicksToWait )
1471 #endif
1472
1473 #ifndef traceRETURN_xTimerGenericCommandFromTask
1474     #define traceRETURN_xTimerGenericCommandFromTask( xReturn )
1475 #endif
1476
1477 #ifndef traceENTER_xTimerGenericCommandFromISR
1478     #define traceENTER_xTimerGenericCommandFromISR( xTimer, xCommandID, xOptionalValue, pxHigherPriorityTaskWoken, xTicksToWait )
1479 #endif
1480
1481 #ifndef traceRETURN_xTimerGenericCommandFromISR
1482     #define traceRETURN_xTimerGenericCommandFromISR( xReturn )
1483 #endif
1484
1485 #ifndef traceENTER_xTimerGetTimerDaemonTaskHandle
1486     #define traceENTER_xTimerGetTimerDaemonTaskHandle()
1487 #endif
1488
1489 #ifndef traceRETURN_xTimerGetTimerDaemonTaskHandle
1490     #define traceRETURN_xTimerGetTimerDaemonTaskHandle( xTimerTaskHandle )
1491 #endif
1492
1493 #ifndef traceENTER_xTimerGetPeriod
1494     #define traceENTER_xTimerGetPeriod( xTimer )
1495 #endif
1496
1497 #ifndef traceRETURN_xTimerGetPeriod
1498     #define traceRETURN_xTimerGetPeriod( xTimerPeriodInTicks )
1499 #endif
1500
1501 #ifndef traceENTER_vTimerSetReloadMode
1502     #define traceENTER_vTimerSetReloadMode( xTimer, xAutoReload )
1503 #endif
1504
1505 #ifndef traceRETURN_vTimerSetReloadMode
1506     #define traceRETURN_vTimerSetReloadMode()
1507 #endif
1508
1509 #ifndef traceENTER_xTimerGetReloadMode
1510     #define traceENTER_xTimerGetReloadMode( xTimer )
1511 #endif
1512
1513 #ifndef traceRETURN_xTimerGetReloadMode
1514     #define traceRETURN_xTimerGetReloadMode( xReturn )
1515 #endif
1516
1517 #ifndef traceENTER_uxTimerGetReloadMode
1518     #define traceENTER_uxTimerGetReloadMode( xTimer )
1519 #endif
1520
1521 #ifndef traceRETURN_uxTimerGetReloadMode
1522     #define traceRETURN_uxTimerGetReloadMode( uxReturn )
1523 #endif
1524
1525 #ifndef traceENTER_xTimerGetExpiryTime
1526     #define traceENTER_xTimerGetExpiryTime( xTimer )
1527 #endif
1528
1529 #ifndef traceRETURN_xTimerGetExpiryTime
1530     #define traceRETURN_xTimerGetExpiryTime( xReturn )
1531 #endif
1532
1533 #ifndef traceENTER_xTimerGetStaticBuffer
1534     #define traceENTER_xTimerGetStaticBuffer( xTimer, ppxTimerBuffer )
1535 #endif
1536
1537 #ifndef traceRETURN_xTimerGetStaticBuffer
1538     #define traceRETURN_xTimerGetStaticBuffer( xReturn )
1539 #endif
1540
1541 #ifndef traceENTER_pcTimerGetName
1542     #define traceENTER_pcTimerGetName( xTimer )
1543 #endif
1544
1545 #ifndef traceRETURN_pcTimerGetName
1546     #define traceRETURN_pcTimerGetName( pcTimerName )
1547 #endif
1548
1549 #ifndef traceENTER_xTimerIsTimerActive
1550     #define traceENTER_xTimerIsTimerActive( xTimer )
1551 #endif
1552
1553 #ifndef traceRETURN_xTimerIsTimerActive
1554     #define traceRETURN_xTimerIsTimerActive( xReturn )
1555 #endif
1556
1557 #ifndef traceENTER_pvTimerGetTimerID
1558     #define traceENTER_pvTimerGetTimerID( xTimer )
1559 #endif
1560
1561 #ifndef traceRETURN_pvTimerGetTimerID
1562     #define traceRETURN_pvTimerGetTimerID( pvReturn )
1563 #endif
1564
1565 #ifndef traceENTER_vTimerSetTimerID
1566     #define traceENTER_vTimerSetTimerID( xTimer, pvNewID )
1567 #endif
1568
1569 #ifndef traceRETURN_vTimerSetTimerID
1570     #define traceRETURN_vTimerSetTimerID()
1571 #endif
1572
1573 #ifndef traceENTER_xTimerPendFunctionCallFromISR
1574     #define traceENTER_xTimerPendFunctionCallFromISR( xFunctionToPend, pvParameter1, ulParameter2, pxHigherPriorityTaskWoken )
1575 #endif
1576
1577 #ifndef traceRETURN_xTimerPendFunctionCallFromISR
1578     #define traceRETURN_xTimerPendFunctionCallFromISR( xReturn )
1579 #endif
1580
1581 #ifndef traceENTER_xTimerPendFunctionCall
1582     #define traceENTER_xTimerPendFunctionCall( xFunctionToPend, pvParameter1, ulParameter2, xTicksToWait )
1583 #endif
1584
1585 #ifndef traceRETURN_xTimerPendFunctionCall
1586     #define traceRETURN_xTimerPendFunctionCall( xReturn )
1587 #endif
1588
1589 #ifndef traceENTER_uxTimerGetTimerNumber
1590     #define traceENTER_uxTimerGetTimerNumber( xTimer )
1591 #endif
1592
1593 #ifndef traceRETURN_uxTimerGetTimerNumber
1594     #define traceRETURN_uxTimerGetTimerNumber( uxTimerNumber )
1595 #endif
1596
1597 #ifndef traceENTER_vTimerSetTimerNumber
1598     #define traceENTER_vTimerSetTimerNumber( xTimer, uxTimerNumber )
1599 #endif
1600
1601 #ifndef traceRETURN_vTimerSetTimerNumber
1602     #define traceRETURN_vTimerSetTimerNumber()
1603 #endif
1604
1605 #ifndef traceENTER_xTaskCreateStatic
1606     #define traceENTER_xTaskCreateStatic( pxTaskCode, pcName, ulStackDepth, pvParameters, uxPriority, puxStackBuffer, pxTaskBuffer )
1607 #endif
1608
1609 #ifndef traceRETURN_xTaskCreateStatic
1610     #define traceRETURN_xTaskCreateStatic( xReturn )
1611 #endif
1612
1613 #ifndef traceENTER_xTaskCreateStaticAffinitySet
1614     #define traceENTER_xTaskCreateStaticAffinitySet( pxTaskCode, pcName, ulStackDepth, pvParameters, uxPriority, puxStackBuffer, pxTaskBuffer, uxCoreAffinityMask )
1615 #endif
1616
1617 #ifndef traceRETURN_xTaskCreateStaticAffinitySet
1618     #define traceRETURN_xTaskCreateStaticAffinitySet( xReturn )
1619 #endif
1620
1621 #ifndef traceENTER_xTaskCreateRestrictedStatic
1622     #define traceENTER_xTaskCreateRestrictedStatic( pxTaskDefinition, pxCreatedTask )
1623 #endif
1624
1625 #ifndef traceRETURN_xTaskCreateRestrictedStatic
1626     #define traceRETURN_xTaskCreateRestrictedStatic( xReturn )
1627 #endif
1628
1629 #ifndef traceENTER_xTaskCreateRestrictedStaticAffinitySet
1630     #define traceENTER_xTaskCreateRestrictedStaticAffinitySet( pxTaskDefinition, uxCoreAffinityMask, pxCreatedTask )
1631 #endif
1632
1633 #ifndef traceRETURN_xTaskCreateRestrictedStaticAffinitySet
1634     #define traceRETURN_xTaskCreateRestrictedStaticAffinitySet( xReturn )
1635 #endif
1636
1637 #ifndef traceENTER_xTaskCreateRestricted
1638     #define traceENTER_xTaskCreateRestricted( pxTaskDefinition, pxCreatedTask )
1639 #endif
1640
1641 #ifndef traceRETURN_xTaskCreateRestricted
1642     #define traceRETURN_xTaskCreateRestricted( xReturn )
1643 #endif
1644
1645 #ifndef traceENTER_xTaskCreateRestrictedAffinitySet
1646     #define traceENTER_xTaskCreateRestrictedAffinitySet( pxTaskDefinition, uxCoreAffinityMask, pxCreatedTask )
1647 #endif
1648
1649 #ifndef traceRETURN_xTaskCreateRestrictedAffinitySet
1650     #define traceRETURN_xTaskCreateRestrictedAffinitySet( xReturn )
1651 #endif
1652
1653 #ifndef traceENTER_xTaskCreate
1654     #define traceENTER_xTaskCreate( pxTaskCode, pcName, usStackDepth, pvParameters, uxPriority, pxCreatedTask )
1655 #endif
1656
1657 #ifndef traceRETURN_xTaskCreate
1658     #define traceRETURN_xTaskCreate( xReturn )
1659 #endif
1660
1661 #ifndef traceENTER_xTaskCreateAffinitySet
1662     #define traceENTER_xTaskCreateAffinitySet( pxTaskCode, pcName, usStackDepth, pvParameters, uxPriority, uxCoreAffinityMask, pxCreatedTask )
1663 #endif
1664
1665 #ifndef traceRETURN_xTaskCreateAffinitySet
1666     #define traceRETURN_xTaskCreateAffinitySet( xReturn )
1667 #endif
1668
1669 #ifndef traceENTER_vTaskDelete
1670     #define traceENTER_vTaskDelete( xTaskToDelete )
1671 #endif
1672
1673 #ifndef traceRETURN_vTaskDelete
1674     #define traceRETURN_vTaskDelete()
1675 #endif
1676
1677 #ifndef traceENTER_xTaskDelayUntil
1678     #define traceENTER_xTaskDelayUntil( pxPreviousWakeTime, xTimeIncrement )
1679 #endif
1680
1681 #ifndef traceRETURN_xTaskDelayUntil
1682     #define traceRETURN_xTaskDelayUntil( xShouldDelay )
1683 #endif
1684
1685 #ifndef traceENTER_vTaskDelay
1686     #define traceENTER_vTaskDelay( xTicksToDelay )
1687 #endif
1688
1689 #ifndef traceRETURN_vTaskDelay
1690     #define traceRETURN_vTaskDelay()
1691 #endif
1692
1693 #ifndef traceENTER_eTaskGetState
1694     #define traceENTER_eTaskGetState( xTask )
1695 #endif
1696
1697 #ifndef traceRETURN_eTaskGetState
1698     #define traceRETURN_eTaskGetState( eReturn )
1699 #endif
1700
1701 #ifndef traceENTER_uxTaskPriorityGet
1702     #define traceENTER_uxTaskPriorityGet( xTask )
1703 #endif
1704
1705 #ifndef traceRETURN_uxTaskPriorityGet
1706     #define traceRETURN_uxTaskPriorityGet( uxReturn )
1707 #endif
1708
1709 #ifndef traceENTER_uxTaskPriorityGetFromISR
1710     #define traceENTER_uxTaskPriorityGetFromISR( xTask )
1711 #endif
1712
1713 #ifndef traceRETURN_uxTaskPriorityGetFromISR
1714     #define traceRETURN_uxTaskPriorityGetFromISR( uxReturn )
1715 #endif
1716
1717 #ifndef traceENTER_uxTaskBasePriorityGet
1718     #define traceENTER_uxTaskBasePriorityGet( xTask )
1719 #endif
1720
1721 #ifndef traceRETURN_uxTaskBasePriorityGet
1722     #define traceRETURN_uxTaskBasePriorityGet( uxReturn )
1723 #endif
1724
1725 #ifndef traceENTER_uxTaskBasePriorityGetFromISR
1726     #define traceENTER_uxTaskBasePriorityGetFromISR( xTask )
1727 #endif
1728
1729 #ifndef traceRETURN_uxTaskBasePriorityGetFromISR
1730     #define traceRETURN_uxTaskBasePriorityGetFromISR( uxReturn )
1731 #endif
1732
1733 #ifndef traceENTER_vTaskPrioritySet
1734     #define traceENTER_vTaskPrioritySet( xTask, uxNewPriority )
1735 #endif
1736
1737 #ifndef traceRETURN_vTaskPrioritySet
1738     #define traceRETURN_vTaskPrioritySet()
1739 #endif
1740
1741 #ifndef traceENTER_vTaskCoreAffinitySet
1742     #define traceENTER_vTaskCoreAffinitySet( xTask, uxCoreAffinityMask )
1743 #endif
1744
1745 #ifndef traceRETURN_vTaskCoreAffinitySet
1746     #define traceRETURN_vTaskCoreAffinitySet()
1747 #endif
1748
1749 #ifndef traceENTER_vTaskCoreAffinityGet
1750     #define traceENTER_vTaskCoreAffinityGet( xTask )
1751 #endif
1752
1753 #ifndef traceRETURN_vTaskCoreAffinityGet
1754     #define traceRETURN_vTaskCoreAffinityGet( uxCoreAffinityMask )
1755 #endif
1756
1757 #ifndef traceENTER_vTaskPreemptionDisable
1758     #define traceENTER_vTaskPreemptionDisable( xTask )
1759 #endif
1760
1761 #ifndef traceRETURN_vTaskPreemptionDisable
1762     #define traceRETURN_vTaskPreemptionDisable()
1763 #endif
1764
1765 #ifndef traceENTER_vTaskPreemptionEnable
1766     #define traceENTER_vTaskPreemptionEnable( xTask )
1767 #endif
1768
1769 #ifndef traceRETURN_vTaskPreemptionEnable
1770     #define traceRETURN_vTaskPreemptionEnable()
1771 #endif
1772
1773 #ifndef traceENTER_vTaskSuspend
1774     #define traceENTER_vTaskSuspend( xTaskToSuspend )
1775 #endif
1776
1777 #ifndef traceRETURN_vTaskSuspend
1778     #define traceRETURN_vTaskSuspend()
1779 #endif
1780
1781 #ifndef traceENTER_vTaskResume
1782     #define traceENTER_vTaskResume( xTaskToResume )
1783 #endif
1784
1785 #ifndef traceRETURN_vTaskResume
1786     #define traceRETURN_vTaskResume()
1787 #endif
1788
1789 #ifndef traceENTER_xTaskResumeFromISR
1790     #define traceENTER_xTaskResumeFromISR( xTaskToResume )
1791 #endif
1792
1793 #ifndef traceRETURN_xTaskResumeFromISR
1794     #define traceRETURN_xTaskResumeFromISR( xYieldRequired )
1795 #endif
1796
1797 #ifndef traceENTER_vTaskStartScheduler
1798     #define traceENTER_vTaskStartScheduler()
1799 #endif
1800
1801 #ifndef traceRETURN_vTaskStartScheduler
1802     #define traceRETURN_vTaskStartScheduler()
1803 #endif
1804
1805 #ifndef traceENTER_vTaskEndScheduler
1806     #define traceENTER_vTaskEndScheduler()
1807 #endif
1808
1809 #ifndef traceRETURN_vTaskEndScheduler
1810     #define traceRETURN_vTaskEndScheduler()
1811 #endif
1812
1813 #ifndef traceENTER_vTaskSuspendAll
1814     #define traceENTER_vTaskSuspendAll()
1815 #endif
1816
1817 #ifndef traceRETURN_vTaskSuspendAll
1818     #define traceRETURN_vTaskSuspendAll()
1819 #endif
1820
1821 #ifndef traceENTER_xTaskResumeAll
1822     #define traceENTER_xTaskResumeAll()
1823 #endif
1824
1825 #ifndef traceRETURN_xTaskResumeAll
1826     #define traceRETURN_xTaskResumeAll( xAlreadyYielded )
1827 #endif
1828
1829 #ifndef traceENTER_xTaskGetTickCount
1830     #define traceENTER_xTaskGetTickCount()
1831 #endif
1832
1833 #ifndef traceRETURN_xTaskGetTickCount
1834     #define traceRETURN_xTaskGetTickCount( xTicks )
1835 #endif
1836
1837 #ifndef traceENTER_xTaskGetTickCountFromISR
1838     #define traceENTER_xTaskGetTickCountFromISR()
1839 #endif
1840
1841 #ifndef traceRETURN_xTaskGetTickCountFromISR
1842     #define traceRETURN_xTaskGetTickCountFromISR( xReturn )
1843 #endif
1844
1845 #ifndef traceENTER_uxTaskGetNumberOfTasks
1846     #define traceENTER_uxTaskGetNumberOfTasks()
1847 #endif
1848
1849 #ifndef traceRETURN_uxTaskGetNumberOfTasks
1850     #define traceRETURN_uxTaskGetNumberOfTasks( uxCurrentNumberOfTasks )
1851 #endif
1852
1853 #ifndef traceENTER_pcTaskGetName
1854     #define traceENTER_pcTaskGetName( xTaskToQuery )
1855 #endif
1856
1857 #ifndef traceRETURN_pcTaskGetName
1858     #define traceRETURN_pcTaskGetName( pcTaskName )
1859 #endif
1860
1861 #ifndef traceENTER_xTaskGetHandle
1862     #define traceENTER_xTaskGetHandle( pcNameToQuery )
1863 #endif
1864
1865 #ifndef traceRETURN_xTaskGetHandle
1866     #define traceRETURN_xTaskGetHandle( pxTCB )
1867 #endif
1868
1869 #ifndef traceENTER_xTaskGetStaticBuffers
1870     #define traceENTER_xTaskGetStaticBuffers( xTask, ppuxStackBuffer, ppxTaskBuffer )
1871 #endif
1872
1873 #ifndef traceRETURN_xTaskGetStaticBuffers
1874     #define traceRETURN_xTaskGetStaticBuffers( xReturn )
1875 #endif
1876
1877 #ifndef traceENTER_uxTaskGetSystemState
1878     #define traceENTER_uxTaskGetSystemState( pxTaskStatusArray, uxArraySize, pulTotalRunTime )
1879 #endif
1880
1881 #ifndef traceRETURN_uxTaskGetSystemState
1882     #define traceRETURN_uxTaskGetSystemState( uxTask )
1883 #endif
1884
1885 #if ( configNUMBER_OF_CORES == 1 )
1886     #ifndef traceENTER_xTaskGetIdleTaskHandle
1887         #define traceENTER_xTaskGetIdleTaskHandle()
1888     #endif
1889 #endif
1890
1891 #if ( configNUMBER_OF_CORES == 1 )
1892     #ifndef traceRETURN_xTaskGetIdleTaskHandle
1893         #define traceRETURN_xTaskGetIdleTaskHandle( xIdleTaskHandle )
1894     #endif
1895 #endif
1896
1897 #ifndef traceENTER_xTaskGetIdleTaskHandleForCore
1898     #define traceENTER_xTaskGetIdleTaskHandleForCore( xCoreID )
1899 #endif
1900
1901 #ifndef traceRETURN_xTaskGetIdleTaskHandleForCore
1902     #define traceRETURN_xTaskGetIdleTaskHandleForCore( xIdleTaskHandle )
1903 #endif
1904
1905 #ifndef traceENTER_vTaskStepTick
1906     #define traceENTER_vTaskStepTick( xTicksToJump )
1907 #endif
1908
1909 #ifndef traceRETURN_vTaskStepTick
1910     #define traceRETURN_vTaskStepTick()
1911 #endif
1912
1913 #ifndef traceENTER_xTaskCatchUpTicks
1914     #define traceENTER_xTaskCatchUpTicks( xTicksToCatchUp )
1915 #endif
1916
1917 #ifndef traceRETURN_xTaskCatchUpTicks
1918     #define traceRETURN_xTaskCatchUpTicks( xYieldOccurred )
1919 #endif
1920
1921 #ifndef traceENTER_xTaskAbortDelay
1922     #define traceENTER_xTaskAbortDelay( xTask )
1923 #endif
1924
1925 #ifndef traceRETURN_xTaskAbortDelay
1926     #define traceRETURN_xTaskAbortDelay( xReturn )
1927 #endif
1928
1929 #ifndef traceENTER_xTaskIncrementTick
1930     #define traceENTER_xTaskIncrementTick()
1931 #endif
1932
1933 #ifndef traceRETURN_xTaskIncrementTick
1934     #define traceRETURN_xTaskIncrementTick( xSwitchRequired )
1935 #endif
1936
1937 #ifndef traceENTER_vTaskSetApplicationTaskTag
1938     #define traceENTER_vTaskSetApplicationTaskTag( xTask, pxHookFunction )
1939 #endif
1940
1941 #ifndef traceRETURN_vTaskSetApplicationTaskTag
1942     #define traceRETURN_vTaskSetApplicationTaskTag()
1943 #endif
1944
1945 #ifndef traceENTER_xTaskGetApplicationTaskTag
1946     #define traceENTER_xTaskGetApplicationTaskTag( xTask )
1947 #endif
1948
1949 #ifndef traceRETURN_xTaskGetApplicationTaskTag
1950     #define traceRETURN_xTaskGetApplicationTaskTag( xReturn )
1951 #endif
1952
1953 #ifndef traceENTER_xTaskGetApplicationTaskTagFromISR
1954     #define traceENTER_xTaskGetApplicationTaskTagFromISR( xTask )
1955 #endif
1956
1957 #ifndef traceRETURN_xTaskGetApplicationTaskTagFromISR
1958     #define traceRETURN_xTaskGetApplicationTaskTagFromISR( xReturn )
1959 #endif
1960
1961 #ifndef traceENTER_xTaskCallApplicationTaskHook
1962     #define traceENTER_xTaskCallApplicationTaskHook( xTask, pvParameter )
1963 #endif
1964
1965 #ifndef traceRETURN_xTaskCallApplicationTaskHook
1966     #define traceRETURN_xTaskCallApplicationTaskHook( xReturn )
1967 #endif
1968
1969 #ifndef traceENTER_vTaskSwitchContext
1970     #define traceENTER_vTaskSwitchContext()
1971 #endif
1972
1973 #ifndef traceRETURN_vTaskSwitchContext
1974     #define traceRETURN_vTaskSwitchContext()
1975 #endif
1976
1977 #ifndef traceENTER_vTaskPlaceOnEventList
1978     #define traceENTER_vTaskPlaceOnEventList( pxEventList, xTicksToWait )
1979 #endif
1980
1981 #ifndef traceRETURN_vTaskPlaceOnEventList
1982     #define traceRETURN_vTaskPlaceOnEventList()
1983 #endif
1984
1985 #ifndef traceENTER_vTaskPlaceOnUnorderedEventList
1986     #define traceENTER_vTaskPlaceOnUnorderedEventList( pxEventList, xItemValue, xTicksToWait )
1987 #endif
1988
1989 #ifndef traceRETURN_vTaskPlaceOnUnorderedEventList
1990     #define traceRETURN_vTaskPlaceOnUnorderedEventList()
1991 #endif
1992
1993 #ifndef traceENTER_vTaskPlaceOnEventListRestricted
1994     #define traceENTER_vTaskPlaceOnEventListRestricted( pxEventList, xTicksToWait, xWaitIndefinitely )
1995 #endif
1996
1997 #ifndef traceRETURN_vTaskPlaceOnEventListRestricted
1998     #define traceRETURN_vTaskPlaceOnEventListRestricted()
1999 #endif
2000
2001 #ifndef traceENTER_xTaskRemoveFromEventList
2002     #define traceENTER_xTaskRemoveFromEventList( pxEventList )
2003 #endif
2004
2005 #ifndef traceRETURN_xTaskRemoveFromEventList
2006     #define traceRETURN_xTaskRemoveFromEventList( xReturn )
2007 #endif
2008
2009 #ifndef traceENTER_vTaskRemoveFromUnorderedEventList
2010     #define traceENTER_vTaskRemoveFromUnorderedEventList( pxEventListItem, xItemValue )
2011 #endif
2012
2013 #ifndef traceRETURN_vTaskRemoveFromUnorderedEventList
2014     #define traceRETURN_vTaskRemoveFromUnorderedEventList()
2015 #endif
2016
2017 #ifndef traceENTER_vTaskSetTimeOutState
2018     #define traceENTER_vTaskSetTimeOutState( pxTimeOut )
2019 #endif
2020
2021 #ifndef traceRETURN_vTaskSetTimeOutState
2022     #define traceRETURN_vTaskSetTimeOutState()
2023 #endif
2024
2025 #ifndef traceENTER_vTaskInternalSetTimeOutState
2026     #define traceENTER_vTaskInternalSetTimeOutState( pxTimeOut )
2027 #endif
2028
2029 #ifndef traceRETURN_vTaskInternalSetTimeOutState
2030     #define traceRETURN_vTaskInternalSetTimeOutState()
2031 #endif
2032
2033 #ifndef traceENTER_xTaskCheckForTimeOut
2034     #define traceENTER_xTaskCheckForTimeOut( pxTimeOut, pxTicksToWait )
2035 #endif
2036
2037 #ifndef traceRETURN_xTaskCheckForTimeOut
2038     #define traceRETURN_xTaskCheckForTimeOut( xReturn )
2039 #endif
2040
2041 #ifndef traceENTER_vTaskMissedYield
2042     #define traceENTER_vTaskMissedYield()
2043 #endif
2044
2045 #ifndef traceRETURN_vTaskMissedYield
2046     #define traceRETURN_vTaskMissedYield()
2047 #endif
2048
2049 #ifndef traceENTER_uxTaskGetTaskNumber
2050     #define traceENTER_uxTaskGetTaskNumber( xTask )
2051 #endif
2052
2053 #ifndef traceRETURN_uxTaskGetTaskNumber
2054     #define traceRETURN_uxTaskGetTaskNumber( uxReturn )
2055 #endif
2056
2057 #ifndef traceENTER_vTaskSetTaskNumber
2058     #define traceENTER_vTaskSetTaskNumber( xTask, uxHandle )
2059 #endif
2060
2061 #ifndef traceRETURN_vTaskSetTaskNumber
2062     #define traceRETURN_vTaskSetTaskNumber()
2063 #endif
2064
2065 #ifndef traceENTER_eTaskConfirmSleepModeStatus
2066     #define traceENTER_eTaskConfirmSleepModeStatus()
2067 #endif
2068
2069 #ifndef traceRETURN_eTaskConfirmSleepModeStatus
2070     #define traceRETURN_eTaskConfirmSleepModeStatus( eReturn )
2071 #endif
2072
2073 #ifndef traceENTER_vTaskSetThreadLocalStoragePointer
2074     #define traceENTER_vTaskSetThreadLocalStoragePointer( xTaskToSet, xIndex, pvValue )
2075 #endif
2076
2077 #ifndef traceRETURN_vTaskSetThreadLocalStoragePointer
2078     #define traceRETURN_vTaskSetThreadLocalStoragePointer()
2079 #endif
2080
2081 #ifndef traceENTER_pvTaskGetThreadLocalStoragePointer
2082     #define traceENTER_pvTaskGetThreadLocalStoragePointer( xTaskToQuery, xIndex )
2083 #endif
2084
2085 #ifndef traceRETURN_pvTaskGetThreadLocalStoragePointer
2086     #define traceRETURN_pvTaskGetThreadLocalStoragePointer( pvReturn )
2087 #endif
2088
2089 #ifndef traceENTER_vTaskAllocateMPURegions
2090     #define traceENTER_vTaskAllocateMPURegions( xTaskToModify, pxRegions )
2091 #endif
2092
2093 #ifndef traceRETURN_vTaskAllocateMPURegions
2094     #define traceRETURN_vTaskAllocateMPURegions()
2095 #endif
2096
2097 #ifndef traceENTER_vTaskGetInfo
2098     #define traceENTER_vTaskGetInfo( xTask, pxTaskStatus, xGetFreeStackSpace, eState )
2099 #endif
2100
2101 #ifndef traceRETURN_vTaskGetInfo
2102     #define traceRETURN_vTaskGetInfo()
2103 #endif
2104
2105 #ifndef traceENTER_uxTaskGetStackHighWaterMark2
2106     #define traceENTER_uxTaskGetStackHighWaterMark2( xTask )
2107 #endif
2108
2109 #ifndef traceRETURN_uxTaskGetStackHighWaterMark2
2110     #define traceRETURN_uxTaskGetStackHighWaterMark2( uxReturn )
2111 #endif
2112
2113 #ifndef traceENTER_uxTaskGetStackHighWaterMark
2114     #define traceENTER_uxTaskGetStackHighWaterMark( xTask )
2115 #endif
2116
2117 #ifndef traceRETURN_uxTaskGetStackHighWaterMark
2118     #define traceRETURN_uxTaskGetStackHighWaterMark( uxReturn )
2119 #endif
2120
2121 #ifndef traceENTER_xTaskGetCurrentTaskHandle
2122     #define traceENTER_xTaskGetCurrentTaskHandle()
2123 #endif
2124
2125 #ifndef traceRETURN_xTaskGetCurrentTaskHandle
2126     #define traceRETURN_xTaskGetCurrentTaskHandle( xReturn )
2127 #endif
2128
2129 #ifndef traceENTER_xTaskGetCurrentTaskHandleForCore
2130     #define traceENTER_xTaskGetCurrentTaskHandleForCore( xCoreID )
2131 #endif
2132
2133 #ifndef traceRETURN_xTaskGetCurrentTaskHandleForCore
2134     #define traceRETURN_xTaskGetCurrentTaskHandleForCore( xReturn )
2135 #endif
2136
2137 #ifndef traceENTER_xTaskGetSchedulerState
2138     #define traceENTER_xTaskGetSchedulerState()
2139 #endif
2140
2141 #ifndef traceRETURN_xTaskGetSchedulerState
2142     #define traceRETURN_xTaskGetSchedulerState( xReturn )
2143 #endif
2144
2145 #ifndef traceENTER_xTaskPriorityInherit
2146     #define traceENTER_xTaskPriorityInherit( pxMutexHolder )
2147 #endif
2148
2149 #ifndef traceRETURN_xTaskPriorityInherit
2150     #define traceRETURN_xTaskPriorityInherit( xReturn )
2151 #endif
2152
2153 #ifndef traceENTER_xTaskPriorityDisinherit
2154     #define traceENTER_xTaskPriorityDisinherit( pxMutexHolder )
2155 #endif
2156
2157 #ifndef traceRETURN_xTaskPriorityDisinherit
2158     #define traceRETURN_xTaskPriorityDisinherit( xReturn )
2159 #endif
2160
2161 #ifndef traceENTER_vTaskPriorityDisinheritAfterTimeout
2162     #define traceENTER_vTaskPriorityDisinheritAfterTimeout( pxMutexHolder, uxHighestPriorityWaitingTask )
2163 #endif
2164
2165 #ifndef traceRETURN_vTaskPriorityDisinheritAfterTimeout
2166     #define traceRETURN_vTaskPriorityDisinheritAfterTimeout()
2167 #endif
2168
2169 #ifndef traceENTER_vTaskYieldWithinAPI
2170     #define traceENTER_vTaskYieldWithinAPI()
2171 #endif
2172
2173 #ifndef traceRETURN_vTaskYieldWithinAPI
2174     #define traceRETURN_vTaskYieldWithinAPI()
2175 #endif
2176
2177 #ifndef traceENTER_vTaskEnterCritical
2178     #define traceENTER_vTaskEnterCritical()
2179 #endif
2180
2181 #ifndef traceRETURN_vTaskEnterCritical
2182     #define traceRETURN_vTaskEnterCritical()
2183 #endif
2184
2185 #ifndef traceENTER_vTaskEnterCriticalFromISR
2186     #define traceENTER_vTaskEnterCriticalFromISR()
2187 #endif
2188
2189 #ifndef traceRETURN_vTaskEnterCriticalFromISR
2190     #define traceRETURN_vTaskEnterCriticalFromISR( uxSavedInterruptStatus )
2191 #endif
2192
2193 #ifndef traceENTER_vTaskExitCritical
2194     #define traceENTER_vTaskExitCritical()
2195 #endif
2196
2197 #ifndef traceRETURN_vTaskExitCritical
2198     #define traceRETURN_vTaskExitCritical()
2199 #endif
2200
2201 #ifndef traceENTER_vTaskExitCriticalFromISR
2202     #define traceENTER_vTaskExitCriticalFromISR( uxSavedInterruptStatus )
2203 #endif
2204
2205 #ifndef traceRETURN_vTaskExitCriticalFromISR
2206     #define traceRETURN_vTaskExitCriticalFromISR()
2207 #endif
2208
2209 #ifndef traceENTER_vTaskListTasks
2210     #define traceENTER_vTaskListTasks( pcWriteBuffer, uxBufferLength )
2211 #endif
2212
2213 #ifndef traceRETURN_vTaskListTasks
2214     #define traceRETURN_vTaskListTasks()
2215 #endif
2216
2217 #ifndef traceENTER_vTaskGetRunTimeStatistics
2218     #define traceENTER_vTaskGetRunTimeStatistics( pcWriteBuffer, uxBufferLength )
2219 #endif
2220
2221 #ifndef traceRETURN_vTaskGetRunTimeStatistics
2222     #define traceRETURN_vTaskGetRunTimeStatistics()
2223 #endif
2224
2225 #ifndef traceENTER_uxTaskResetEventItemValue
2226     #define traceENTER_uxTaskResetEventItemValue()
2227 #endif
2228
2229 #ifndef traceRETURN_uxTaskResetEventItemValue
2230     #define traceRETURN_uxTaskResetEventItemValue( uxReturn )
2231 #endif
2232
2233 #ifndef traceENTER_pvTaskIncrementMutexHeldCount
2234     #define traceENTER_pvTaskIncrementMutexHeldCount()
2235 #endif
2236
2237 #ifndef traceRETURN_pvTaskIncrementMutexHeldCount
2238     #define traceRETURN_pvTaskIncrementMutexHeldCount( pxTCB )
2239 #endif
2240
2241 #ifndef traceENTER_ulTaskGenericNotifyTake
2242     #define traceENTER_ulTaskGenericNotifyTake( uxIndexToWaitOn, xClearCountOnExit, xTicksToWait )
2243 #endif
2244
2245 #ifndef traceRETURN_ulTaskGenericNotifyTake
2246     #define traceRETURN_ulTaskGenericNotifyTake( ulReturn )
2247 #endif
2248
2249 #ifndef traceENTER_xTaskGenericNotifyWait
2250     #define traceENTER_xTaskGenericNotifyWait( uxIndexToWaitOn, ulBitsToClearOnEntry, ulBitsToClearOnExit, pulNotificationValue, xTicksToWait )
2251 #endif
2252
2253 #ifndef traceRETURN_xTaskGenericNotifyWait
2254     #define traceRETURN_xTaskGenericNotifyWait( xReturn )
2255 #endif
2256
2257 #ifndef traceENTER_xTaskGenericNotify
2258     #define traceENTER_xTaskGenericNotify( xTaskToNotify, uxIndexToNotify, ulValue, eAction, pulPreviousNotificationValue )
2259 #endif
2260
2261 #ifndef traceRETURN_xTaskGenericNotify
2262     #define traceRETURN_xTaskGenericNotify( xReturn )
2263 #endif
2264
2265 #ifndef traceENTER_xTaskGenericNotifyFromISR
2266     #define traceENTER_xTaskGenericNotifyFromISR( xTaskToNotify, uxIndexToNotify, ulValue, eAction, pulPreviousNotificationValue, pxHigherPriorityTaskWoken )
2267 #endif
2268
2269 #ifndef traceRETURN_xTaskGenericNotifyFromISR
2270     #define traceRETURN_xTaskGenericNotifyFromISR( xReturn )
2271 #endif
2272
2273 #ifndef traceENTER_vTaskGenericNotifyGiveFromISR
2274     #define traceENTER_vTaskGenericNotifyGiveFromISR( xTaskToNotify, uxIndexToNotify, pxHigherPriorityTaskWoken )
2275 #endif
2276
2277 #ifndef traceRETURN_vTaskGenericNotifyGiveFromISR
2278     #define traceRETURN_vTaskGenericNotifyGiveFromISR()
2279 #endif
2280
2281 #ifndef traceENTER_xTaskGenericNotifyStateClear
2282     #define traceENTER_xTaskGenericNotifyStateClear( xTask, uxIndexToClear )
2283 #endif
2284
2285 #ifndef traceRETURN_xTaskGenericNotifyStateClear
2286     #define traceRETURN_xTaskGenericNotifyStateClear( xReturn )
2287 #endif
2288
2289 #ifndef traceENTER_ulTaskGenericNotifyValueClear
2290     #define traceENTER_ulTaskGenericNotifyValueClear( xTask, uxIndexToClear, ulBitsToClear )
2291 #endif
2292
2293 #ifndef traceRETURN_ulTaskGenericNotifyValueClear
2294     #define traceRETURN_ulTaskGenericNotifyValueClear( ulReturn )
2295 #endif
2296
2297 #ifndef traceENTER_ulTaskGetRunTimeCounter
2298     #define traceENTER_ulTaskGetRunTimeCounter( xTask )
2299 #endif
2300
2301 #ifndef traceRETURN_ulTaskGetRunTimeCounter
2302     #define traceRETURN_ulTaskGetRunTimeCounter( ulRunTimeCounter )
2303 #endif
2304
2305 #ifndef traceENTER_ulTaskGetRunTimePercent
2306     #define traceENTER_ulTaskGetRunTimePercent( xTask )
2307 #endif
2308
2309 #ifndef traceRETURN_ulTaskGetRunTimePercent
2310     #define traceRETURN_ulTaskGetRunTimePercent( ulReturn )
2311 #endif
2312
2313 #ifndef traceENTER_ulTaskGetIdleRunTimeCounter
2314     #define traceENTER_ulTaskGetIdleRunTimeCounter()
2315 #endif
2316
2317 #ifndef traceRETURN_ulTaskGetIdleRunTimeCounter
2318     #define traceRETURN_ulTaskGetIdleRunTimeCounter( ulReturn )
2319 #endif
2320
2321 #ifndef traceENTER_ulTaskGetIdleRunTimePercent
2322     #define traceENTER_ulTaskGetIdleRunTimePercent()
2323 #endif
2324
2325 #ifndef traceRETURN_ulTaskGetIdleRunTimePercent
2326     #define traceRETURN_ulTaskGetIdleRunTimePercent( ulReturn )
2327 #endif
2328
2329 #ifndef traceENTER_xTaskGetMPUSettings
2330     #define traceENTER_xTaskGetMPUSettings( xTask )
2331 #endif
2332
2333 #ifndef traceRETURN_xTaskGetMPUSettings
2334     #define traceRETURN_xTaskGetMPUSettings( xMPUSettings )
2335 #endif
2336
2337 #ifndef traceENTER_xStreamBufferGenericCreate
2338     #define traceENTER_xStreamBufferGenericCreate( xBufferSizeBytes, xTriggerLevelBytes, xIsMessageBuffer, pxSendCompletedCallback, pxReceiveCompletedCallback )
2339 #endif
2340
2341 #ifndef traceRETURN_xStreamBufferGenericCreate
2342     #define traceRETURN_xStreamBufferGenericCreate( pvAllocatedMemory )
2343 #endif
2344
2345 #ifndef traceENTER_xStreamBufferGenericCreateStatic
2346     #define traceENTER_xStreamBufferGenericCreateStatic( xBufferSizeBytes, xTriggerLevelBytes, xIsMessageBuffer, pucStreamBufferStorageArea, pxStaticStreamBuffer, pxSendCompletedCallback, pxReceiveCompletedCallback )
2347 #endif
2348
2349 #ifndef traceRETURN_xStreamBufferGenericCreateStatic
2350     #define traceRETURN_xStreamBufferGenericCreateStatic( xReturn )
2351 #endif
2352
2353 #ifndef traceENTER_xStreamBufferGetStaticBuffers
2354     #define traceENTER_xStreamBufferGetStaticBuffers( xStreamBuffer, ppucStreamBufferStorageArea, ppxStaticStreamBuffer )
2355 #endif
2356
2357 #ifndef traceRETURN_xStreamBufferGetStaticBuffers
2358     #define traceRETURN_xStreamBufferGetStaticBuffers( xReturn )
2359 #endif
2360
2361 #ifndef traceENTER_vStreamBufferDelete
2362     #define traceENTER_vStreamBufferDelete( xStreamBuffer )
2363 #endif
2364
2365 #ifndef traceRETURN_vStreamBufferDelete
2366     #define traceRETURN_vStreamBufferDelete()
2367 #endif
2368
2369 #ifndef traceENTER_xStreamBufferReset
2370     #define traceENTER_xStreamBufferReset( xStreamBuffer )
2371 #endif
2372
2373 #ifndef traceRETURN_xStreamBufferReset
2374     #define traceRETURN_xStreamBufferReset( xReturn )
2375 #endif
2376
2377 #ifndef traceENTER_xStreamBufferSetTriggerLevel
2378     #define traceENTER_xStreamBufferSetTriggerLevel( xStreamBuffer, xTriggerLevel )
2379 #endif
2380
2381 #ifndef traceRETURN_xStreamBufferSetTriggerLevel
2382     #define traceRETURN_xStreamBufferSetTriggerLevel( xReturn )
2383 #endif
2384
2385 #ifndef traceENTER_xStreamBufferSpacesAvailable
2386     #define traceENTER_xStreamBufferSpacesAvailable( xStreamBuffer )
2387 #endif
2388
2389 #ifndef traceRETURN_xStreamBufferSpacesAvailable
2390     #define traceRETURN_xStreamBufferSpacesAvailable( xSpace )
2391 #endif
2392
2393 #ifndef traceENTER_xStreamBufferBytesAvailable
2394     #define traceENTER_xStreamBufferBytesAvailable( xStreamBuffer )
2395 #endif
2396
2397 #ifndef traceRETURN_xStreamBufferBytesAvailable
2398     #define traceRETURN_xStreamBufferBytesAvailable( xReturn )
2399 #endif
2400
2401 #ifndef traceENTER_xStreamBufferSend
2402     #define traceENTER_xStreamBufferSend( xStreamBuffer, pvTxData, xDataLengthBytes, xTicksToWait )
2403 #endif
2404
2405 #ifndef traceRETURN_xStreamBufferSend
2406     #define traceRETURN_xStreamBufferSend( xReturn )
2407 #endif
2408
2409 #ifndef traceENTER_xStreamBufferSendFromISR
2410     #define traceENTER_xStreamBufferSendFromISR( xStreamBuffer, pvTxData, xDataLengthBytes, pxHigherPriorityTaskWoken )
2411 #endif
2412
2413 #ifndef traceRETURN_xStreamBufferSendFromISR
2414     #define traceRETURN_xStreamBufferSendFromISR( xReturn )
2415 #endif
2416
2417 #ifndef traceENTER_xStreamBufferReceive
2418     #define traceENTER_xStreamBufferReceive( xStreamBuffer, pvRxData, xBufferLengthBytes, xTicksToWait )
2419 #endif
2420
2421 #ifndef traceRETURN_xStreamBufferReceive
2422     #define traceRETURN_xStreamBufferReceive( xReceivedLength )
2423 #endif
2424
2425 #ifndef traceENTER_xStreamBufferNextMessageLengthBytes
2426     #define traceENTER_xStreamBufferNextMessageLengthBytes( xStreamBuffer )
2427 #endif
2428
2429 #ifndef traceRETURN_xStreamBufferNextMessageLengthBytes
2430     #define traceRETURN_xStreamBufferNextMessageLengthBytes( xReturn )
2431 #endif
2432
2433 #ifndef traceENTER_xStreamBufferReceiveFromISR
2434     #define traceENTER_xStreamBufferReceiveFromISR( xStreamBuffer, pvRxData, xBufferLengthBytes, pxHigherPriorityTaskWoken )
2435 #endif
2436
2437 #ifndef traceRETURN_xStreamBufferReceiveFromISR
2438     #define traceRETURN_xStreamBufferReceiveFromISR( xReceivedLength )
2439 #endif
2440
2441 #ifndef traceENTER_xStreamBufferIsEmpty
2442     #define traceENTER_xStreamBufferIsEmpty( xStreamBuffer )
2443 #endif
2444
2445 #ifndef traceRETURN_xStreamBufferIsEmpty
2446     #define traceRETURN_xStreamBufferIsEmpty( xReturn )
2447 #endif
2448
2449 #ifndef traceENTER_xStreamBufferIsFull
2450     #define traceENTER_xStreamBufferIsFull( xStreamBuffer )
2451 #endif
2452
2453 #ifndef traceRETURN_xStreamBufferIsFull
2454     #define traceRETURN_xStreamBufferIsFull( xReturn )
2455 #endif
2456
2457 #ifndef traceENTER_xStreamBufferSendCompletedFromISR
2458     #define traceENTER_xStreamBufferSendCompletedFromISR( xStreamBuffer, pxHigherPriorityTaskWoken )
2459 #endif
2460
2461 #ifndef traceRETURN_xStreamBufferSendCompletedFromISR
2462     #define traceRETURN_xStreamBufferSendCompletedFromISR( xReturn )
2463 #endif
2464
2465 #ifndef traceENTER_xStreamBufferReceiveCompletedFromISR
2466     #define traceENTER_xStreamBufferReceiveCompletedFromISR( xStreamBuffer, pxHigherPriorityTaskWoken )
2467 #endif
2468
2469 #ifndef traceRETURN_xStreamBufferReceiveCompletedFromISR
2470     #define traceRETURN_xStreamBufferReceiveCompletedFromISR( xReturn )
2471 #endif
2472
2473 #ifndef traceENTER_uxStreamBufferGetStreamBufferNumber
2474     #define traceENTER_uxStreamBufferGetStreamBufferNumber( xStreamBuffer )
2475 #endif
2476
2477 #ifndef traceRETURN_uxStreamBufferGetStreamBufferNumber
2478     #define traceRETURN_uxStreamBufferGetStreamBufferNumber( uxStreamBufferNumber )
2479 #endif
2480
2481 #ifndef traceENTER_vStreamBufferSetStreamBufferNumber
2482     #define traceENTER_vStreamBufferSetStreamBufferNumber( xStreamBuffer, uxStreamBufferNumber )
2483 #endif
2484
2485 #ifndef traceRETURN_vStreamBufferSetStreamBufferNumber
2486     #define traceRETURN_vStreamBufferSetStreamBufferNumber()
2487 #endif
2488
2489 #ifndef traceENTER_ucStreamBufferGetStreamBufferType
2490     #define traceENTER_ucStreamBufferGetStreamBufferType( xStreamBuffer )
2491 #endif
2492
2493 #ifndef traceRETURN_ucStreamBufferGetStreamBufferType
2494     #define traceRETURN_ucStreamBufferGetStreamBufferType( ucStreamBufferType )
2495 #endif
2496
2497 #ifndef traceENTER_vListInitialise
2498     #define traceENTER_vListInitialise( pxList )
2499 #endif
2500
2501 #ifndef traceRETURN_vListInitialise
2502     #define traceRETURN_vListInitialise()
2503 #endif
2504
2505 #ifndef traceENTER_vListInitialiseItem
2506     #define traceENTER_vListInitialiseItem( pxItem )
2507 #endif
2508
2509 #ifndef traceRETURN_vListInitialiseItem
2510     #define traceRETURN_vListInitialiseItem()
2511 #endif
2512
2513 #ifndef traceENTER_vListInsertEnd
2514     #define traceENTER_vListInsertEnd( pxList, pxNewListItem )
2515 #endif
2516
2517 #ifndef traceRETURN_vListInsertEnd
2518     #define traceRETURN_vListInsertEnd()
2519 #endif
2520
2521 #ifndef traceENTER_vListInsert
2522     #define traceENTER_vListInsert( pxList, pxNewListItem )
2523 #endif
2524
2525 #ifndef traceRETURN_vListInsert
2526     #define traceRETURN_vListInsert()
2527 #endif
2528
2529 #ifndef traceENTER_uxListRemove
2530     #define traceENTER_uxListRemove( pxItemToRemove )
2531 #endif
2532
2533 #ifndef traceRETURN_uxListRemove
2534     #define traceRETURN_uxListRemove( uxNumberOfItems )
2535 #endif
2536
2537 #ifndef traceENTER_xCoRoutineCreate
2538     #define traceENTER_xCoRoutineCreate( pxCoRoutineCode, uxPriority, uxIndex )
2539 #endif
2540
2541 #ifndef traceRETURN_xCoRoutineCreate
2542     #define traceRETURN_xCoRoutineCreate( xReturn )
2543 #endif
2544
2545 #ifndef traceENTER_vCoRoutineAddToDelayedList
2546     #define traceENTER_vCoRoutineAddToDelayedList( xTicksToDelay, pxEventList )
2547 #endif
2548
2549 #ifndef traceRETURN_vCoRoutineAddToDelayedList
2550     #define traceRETURN_vCoRoutineAddToDelayedList()
2551 #endif
2552
2553 #ifndef traceENTER_vCoRoutineSchedule
2554     #define traceENTER_vCoRoutineSchedule()
2555 #endif
2556
2557 #ifndef traceRETURN_vCoRoutineSchedule
2558     #define traceRETURN_vCoRoutineSchedule()
2559 #endif
2560
2561 #ifndef traceENTER_xCoRoutineRemoveFromEventList
2562     #define traceENTER_xCoRoutineRemoveFromEventList( pxEventList )
2563 #endif
2564
2565 #ifndef traceRETURN_xCoRoutineRemoveFromEventList
2566     #define traceRETURN_xCoRoutineRemoveFromEventList( xReturn )
2567 #endif
2568
2569 #ifndef configGENERATE_RUN_TIME_STATS
2570     #define configGENERATE_RUN_TIME_STATS    0
2571 #endif
2572
2573 #if ( configGENERATE_RUN_TIME_STATS == 1 )
2574
2575     #ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS
2576         #error If configGENERATE_RUN_TIME_STATS is defined then portCONFIGURE_TIMER_FOR_RUN_TIME_STATS must also be defined.  portCONFIGURE_TIMER_FOR_RUN_TIME_STATS should call a port layer function to setup a peripheral timer/counter that can then be used as the run time counter time base.
2577     #endif /* portCONFIGURE_TIMER_FOR_RUN_TIME_STATS */
2578
2579     #ifndef portGET_RUN_TIME_COUNTER_VALUE
2580         #ifndef portALT_GET_RUN_TIME_COUNTER_VALUE
2581             #error If configGENERATE_RUN_TIME_STATS is defined then either portGET_RUN_TIME_COUNTER_VALUE or portALT_GET_RUN_TIME_COUNTER_VALUE must also be defined.  See the examples provided and the FreeRTOS web site for more information.
2582         #endif /* portALT_GET_RUN_TIME_COUNTER_VALUE */
2583     #endif /* portGET_RUN_TIME_COUNTER_VALUE */
2584
2585 #endif /* configGENERATE_RUN_TIME_STATS */
2586
2587 #ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS
2588     #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()
2589 #endif
2590
2591 #ifndef configUSE_MALLOC_FAILED_HOOK
2592     #define configUSE_MALLOC_FAILED_HOOK    0
2593 #endif
2594
2595 #ifndef portPRIVILEGE_BIT
2596     #define portPRIVILEGE_BIT    ( ( UBaseType_t ) 0x00 )
2597 #endif
2598
2599 #ifndef portYIELD_WITHIN_API
2600     #define portYIELD_WITHIN_API    portYIELD
2601 #endif
2602
2603 #ifndef portSUPPRESS_TICKS_AND_SLEEP
2604     #define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime )
2605 #endif
2606
2607 #ifndef configEXPECTED_IDLE_TIME_BEFORE_SLEEP
2608     #define configEXPECTED_IDLE_TIME_BEFORE_SLEEP    2
2609 #endif
2610
2611 #if configEXPECTED_IDLE_TIME_BEFORE_SLEEP < 2
2612     #error configEXPECTED_IDLE_TIME_BEFORE_SLEEP must not be less than 2
2613 #endif
2614
2615 #ifndef configUSE_TICKLESS_IDLE
2616     #define configUSE_TICKLESS_IDLE    0
2617 #endif
2618
2619 #ifndef configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING
2620     #define configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING( x )
2621 #endif
2622
2623 #ifndef configPRE_SLEEP_PROCESSING
2624     #define configPRE_SLEEP_PROCESSING( x )
2625 #endif
2626
2627 #ifndef configPOST_SLEEP_PROCESSING
2628     #define configPOST_SLEEP_PROCESSING( x )
2629 #endif
2630
2631 #ifndef configUSE_QUEUE_SETS
2632     #define configUSE_QUEUE_SETS    0
2633 #endif
2634
2635 #ifndef portTASK_USES_FLOATING_POINT
2636     #define portTASK_USES_FLOATING_POINT()
2637 #endif
2638
2639 #ifndef portALLOCATE_SECURE_CONTEXT
2640     #define portALLOCATE_SECURE_CONTEXT( ulSecureStackSize )
2641 #endif
2642
2643 #ifndef portDONT_DISCARD
2644     #define portDONT_DISCARD
2645 #endif
2646
2647 #ifndef configUSE_TIME_SLICING
2648     #define configUSE_TIME_SLICING    1
2649 #endif
2650
2651 #ifndef configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS
2652     #define configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS    0
2653 #endif
2654
2655 #ifndef configUSE_STATS_FORMATTING_FUNCTIONS
2656     #define configUSE_STATS_FORMATTING_FUNCTIONS    0
2657 #endif
2658
2659 #ifndef portASSERT_IF_INTERRUPT_PRIORITY_INVALID
2660     #define portASSERT_IF_INTERRUPT_PRIORITY_INVALID()
2661 #endif
2662
2663 #ifndef configUSE_TRACE_FACILITY
2664     #define configUSE_TRACE_FACILITY    0
2665 #endif
2666
2667 #ifndef mtCOVERAGE_TEST_MARKER
2668     #define mtCOVERAGE_TEST_MARKER()
2669 #endif
2670
2671 #ifndef mtCOVERAGE_TEST_DELAY
2672     #define mtCOVERAGE_TEST_DELAY()
2673 #endif
2674
2675 #ifndef portASSERT_IF_IN_ISR
2676     #define portASSERT_IF_IN_ISR()
2677 #endif
2678
2679 #ifndef configUSE_PORT_OPTIMISED_TASK_SELECTION
2680     #define configUSE_PORT_OPTIMISED_TASK_SELECTION    0
2681 #endif
2682
2683 #ifndef configAPPLICATION_ALLOCATED_HEAP
2684     #define configAPPLICATION_ALLOCATED_HEAP    0
2685 #endif
2686
2687 #ifndef configENABLE_HEAP_PROTECTOR
2688     #define configENABLE_HEAP_PROTECTOR    0
2689 #endif
2690
2691 #ifndef configUSE_TASK_NOTIFICATIONS
2692     #define configUSE_TASK_NOTIFICATIONS    1
2693 #endif
2694
2695 #ifndef configTASK_NOTIFICATION_ARRAY_ENTRIES
2696     #define configTASK_NOTIFICATION_ARRAY_ENTRIES    1
2697 #endif
2698
2699 #if configTASK_NOTIFICATION_ARRAY_ENTRIES < 1
2700     #error configTASK_NOTIFICATION_ARRAY_ENTRIES must be at least 1
2701 #endif
2702
2703 #ifndef configUSE_POSIX_ERRNO
2704     #define configUSE_POSIX_ERRNO    0
2705 #endif
2706
2707 #ifndef configUSE_SB_COMPLETED_CALLBACK
2708
2709 /* By default per-instance callbacks are not enabled for stream buffer or message buffer. */
2710     #define configUSE_SB_COMPLETED_CALLBACK    0
2711 #endif
2712
2713 #ifndef portTICK_TYPE_IS_ATOMIC
2714     #define portTICK_TYPE_IS_ATOMIC    0
2715 #endif
2716
2717 #ifndef configSUPPORT_STATIC_ALLOCATION
2718     /* Defaults to 0 for backward compatibility. */
2719     #define configSUPPORT_STATIC_ALLOCATION    0
2720 #endif
2721
2722 #ifndef configKERNEL_PROVIDED_STATIC_MEMORY
2723     #define configKERNEL_PROVIDED_STATIC_MEMORY    0
2724 #endif
2725
2726 #ifndef configSUPPORT_DYNAMIC_ALLOCATION
2727     /* Defaults to 1 for backward compatibility. */
2728     #define configSUPPORT_DYNAMIC_ALLOCATION    1
2729 #endif
2730
2731 #if ( ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION != 1 ) )
2732     #error configUSE_STATS_FORMATTING_FUNCTIONS cannot be used without dynamic allocation, but configSUPPORT_DYNAMIC_ALLOCATION is not set to 1.
2733 #endif
2734
2735 #if ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 )
2736     #if ( ( configUSE_TRACE_FACILITY != 1 ) && ( configGENERATE_RUN_TIME_STATS != 1 ) )
2737         #error configUSE_STATS_FORMATTING_FUNCTIONS is 1 but the functions it enables are not used because neither configUSE_TRACE_FACILITY or configGENERATE_RUN_TIME_STATS are 1.  Set configUSE_STATS_FORMATTING_FUNCTIONS to 0 in FreeRTOSConfig.h.
2738     #endif
2739 #endif
2740
2741 #ifndef configSTATS_BUFFER_MAX_LENGTH
2742     #define configSTATS_BUFFER_MAX_LENGTH    0xFFFF
2743 #endif
2744
2745 #ifndef configSTACK_DEPTH_TYPE
2746
2747 /* Defaults to uint16_t for backward compatibility, but can be overridden
2748  * in FreeRTOSConfig.h if uint16_t is too restrictive. */
2749     #define configSTACK_DEPTH_TYPE    uint16_t
2750 #endif
2751
2752 #ifndef configRUN_TIME_COUNTER_TYPE
2753
2754 /* Defaults to uint32_t for backward compatibility, but can be overridden in
2755  * FreeRTOSConfig.h if uint32_t is too restrictive. */
2756
2757     #define configRUN_TIME_COUNTER_TYPE    uint32_t
2758 #endif
2759
2760 #ifndef configMESSAGE_BUFFER_LENGTH_TYPE
2761
2762 /* Defaults to size_t for backward compatibility, but can be overridden
2763  * in FreeRTOSConfig.h if lengths will always be less than the number of bytes
2764  * in a size_t. */
2765     #define configMESSAGE_BUFFER_LENGTH_TYPE    size_t
2766 #endif
2767
2768 /* Sanity check the configuration. */
2769 #if ( ( configSUPPORT_STATIC_ALLOCATION == 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 0 ) )
2770     #error configSUPPORT_STATIC_ALLOCATION and configSUPPORT_DYNAMIC_ALLOCATION cannot both be 0, but can both be 1.
2771 #endif
2772
2773 #if ( ( configUSE_RECURSIVE_MUTEXES == 1 ) && ( configUSE_MUTEXES != 1 ) )
2774     #error configUSE_MUTEXES must be set to 1 to use recursive mutexes
2775 #endif
2776
2777 #if ( ( configRUN_MULTIPLE_PRIORITIES == 0 ) && ( configUSE_TASK_PREEMPTION_DISABLE != 0 ) )
2778     #error configRUN_MULTIPLE_PRIORITIES must be set to 1 to use task preemption disable
2779 #endif
2780
2781 #if ( ( configUSE_PREEMPTION == 0 ) && ( configUSE_TASK_PREEMPTION_DISABLE != 0 ) )
2782     #error configUSE_PREEMPTION must be set to 1 to use task preemption disable
2783 #endif
2784
2785 #if ( ( configNUMBER_OF_CORES == 1 ) && ( configUSE_TASK_PREEMPTION_DISABLE != 0 ) )
2786     #error configUSE_TASK_PREEMPTION_DISABLE is not supported in single core FreeRTOS
2787 #endif
2788
2789 #if ( ( configNUMBER_OF_CORES == 1 ) && ( configUSE_CORE_AFFINITY != 0 ) )
2790     #error configUSE_CORE_AFFINITY is not supported in single core FreeRTOS
2791 #endif
2792
2793 #if ( ( configNUMBER_OF_CORES > 1 ) && ( configUSE_PORT_OPTIMISED_TASK_SELECTION != 0 ) )
2794     #error configUSE_PORT_OPTIMISED_TASK_SELECTION is not supported in SMP FreeRTOS
2795 #endif
2796
2797 #ifndef configINITIAL_TICK_COUNT
2798     #define configINITIAL_TICK_COUNT    0
2799 #endif
2800
2801 #if ( portTICK_TYPE_IS_ATOMIC == 0 )
2802
2803 /* Either variables of tick type cannot be read atomically, or
2804  * portTICK_TYPE_IS_ATOMIC was not set - map the critical sections used when
2805  * the tick count is returned to the standard critical section macros. */
2806     #define portTICK_TYPE_ENTER_CRITICAL()                      portENTER_CRITICAL()
2807     #define portTICK_TYPE_EXIT_CRITICAL()                       portEXIT_CRITICAL()
2808     #define portTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR()         portSET_INTERRUPT_MASK_FROM_ISR()
2809     #define portTICK_TYPE_CLEAR_INTERRUPT_MASK_FROM_ISR( x )    portCLEAR_INTERRUPT_MASK_FROM_ISR( ( x ) )
2810 #else
2811
2812 /* The tick type can be read atomically, so critical sections used when the
2813  * tick count is returned can be defined away. */
2814     #define portTICK_TYPE_ENTER_CRITICAL()
2815     #define portTICK_TYPE_EXIT_CRITICAL()
2816     #define portTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR()         0
2817     #define portTICK_TYPE_CLEAR_INTERRUPT_MASK_FROM_ISR( x )    ( void ) ( x )
2818 #endif /* if ( portTICK_TYPE_IS_ATOMIC == 0 ) */
2819
2820 /* Definitions to allow backward compatibility with FreeRTOS versions prior to
2821  * V8 if desired. */
2822 #ifndef configENABLE_BACKWARD_COMPATIBILITY
2823     #define configENABLE_BACKWARD_COMPATIBILITY    1
2824 #endif
2825
2826 #ifndef configPRINTF
2827
2828 /* configPRINTF() was not defined, so define it away to nothing.  To use
2829  * configPRINTF() then define it as follows (where MyPrintFunction() is
2830  * provided by the application writer):
2831  *
2832  * void MyPrintFunction(const char *pcFormat, ... );
2833  #define configPRINTF( X )   MyPrintFunction X
2834  *
2835  * Then call like a standard printf() function, but placing brackets around
2836  * all parameters so they are passed as a single parameter.  For example:
2837  * configPRINTF( ("Value = %d", MyVariable) ); */
2838     #define configPRINTF( X )
2839 #endif
2840
2841 #ifndef configMAX
2842
2843 /* The application writer has not provided their own MAX macro, so define
2844  * the following generic implementation. */
2845     #define configMAX( a, b )    ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) )
2846 #endif
2847
2848 #ifndef configMIN
2849
2850 /* The application writer has not provided their own MIN macro, so define
2851  * the following generic implementation. */
2852     #define configMIN( a, b )    ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) )
2853 #endif
2854
2855 #if configENABLE_BACKWARD_COMPATIBILITY == 1
2856     #define eTaskStateGet                 eTaskGetState
2857     #define portTickType                  TickType_t
2858     #define xTaskHandle                   TaskHandle_t
2859     #define xQueueHandle                  QueueHandle_t
2860     #define xSemaphoreHandle              SemaphoreHandle_t
2861     #define xQueueSetHandle               QueueSetHandle_t
2862     #define xQueueSetMemberHandle         QueueSetMemberHandle_t
2863     #define xTimeOutType                  TimeOut_t
2864     #define xMemoryRegion                 MemoryRegion_t
2865     #define xTaskParameters               TaskParameters_t
2866     #define xTaskStatusType               TaskStatus_t
2867     #define xTimerHandle                  TimerHandle_t
2868     #define xCoRoutineHandle              CoRoutineHandle_t
2869     #define pdTASK_HOOK_CODE              TaskHookFunction_t
2870     #define portTICK_RATE_MS              portTICK_PERIOD_MS
2871     #define pcTaskGetTaskName             pcTaskGetName
2872     #define pcTimerGetTimerName           pcTimerGetName
2873     #define pcQueueGetQueueName           pcQueueGetName
2874     #define vTaskGetTaskInfo              vTaskGetInfo
2875     #define xTaskGetIdleRunTimeCounter    ulTaskGetIdleRunTimeCounter
2876
2877 /* Backward compatibility within the scheduler code only - these definitions
2878  * are not really required but are included for completeness. */
2879     #define tmrTIMER_CALLBACK             TimerCallbackFunction_t
2880     #define pdTASK_CODE                   TaskFunction_t
2881     #define xListItem                     ListItem_t
2882     #define xList                         List_t
2883
2884 /* For libraries that break the list data hiding, and access list structure
2885  * members directly (which is not supposed to be done). */
2886     #define pxContainer                   pvContainer
2887 #endif /* configENABLE_BACKWARD_COMPATIBILITY */
2888
2889 #if ( configUSE_ALTERNATIVE_API != 0 )
2890     #error The alternative API was deprecated some time ago, and was removed in FreeRTOS V9.0 0
2891 #endif
2892
2893 /* Set configUSE_TASK_FPU_SUPPORT to 0 to omit floating point support even
2894  * if floating point hardware is otherwise supported by the FreeRTOS port in use.
2895  * This constant is not supported by all FreeRTOS ports that include floating
2896  * point support. */
2897 #ifndef configUSE_TASK_FPU_SUPPORT
2898     #define configUSE_TASK_FPU_SUPPORT    1
2899 #endif
2900
2901 /* Set configENABLE_MPU to 1 to enable MPU support and 0 to disable it. This is
2902  * currently used in ARMv8M ports. */
2903 #ifndef configENABLE_MPU
2904     #define configENABLE_MPU    0
2905 #endif
2906
2907 /* Set configENABLE_FPU to 1 to enable FPU support and 0 to disable it. This is
2908  * currently used in ARMv8M ports. */
2909 #ifndef configENABLE_FPU
2910     #define configENABLE_FPU    1
2911 #endif
2912
2913 /* Set configENABLE_MVE to 1 to enable MVE support and 0 to disable it. This is
2914  * currently used in ARMv8M ports. */
2915 #ifndef configENABLE_MVE
2916     #define configENABLE_MVE    0
2917 #endif
2918
2919 /* Set configENABLE_TRUSTZONE to 1 enable TrustZone support and 0 to disable it.
2920  * This is currently used in ARMv8M ports. */
2921 #ifndef configENABLE_TRUSTZONE
2922     #define configENABLE_TRUSTZONE    1
2923 #endif
2924
2925 /* Set configRUN_FREERTOS_SECURE_ONLY to 1 to run the FreeRTOS ARMv8M port on
2926  * the Secure Side only. */
2927 #ifndef configRUN_FREERTOS_SECURE_ONLY
2928     #define configRUN_FREERTOS_SECURE_ONLY    0
2929 #endif
2930
2931 #ifndef configRUN_ADDITIONAL_TESTS
2932     #define configRUN_ADDITIONAL_TESTS    0
2933 #endif
2934
2935 /* The following config allows infinite loop control. For example, control the
2936  * infinite loop in idle task function when performing unit tests. */
2937 #ifndef configCONTROL_INFINITE_LOOP
2938     #define configCONTROL_INFINITE_LOOP()
2939 #endif
2940
2941 /* Sometimes the FreeRTOSConfig.h settings only allow a task to be created using
2942  * dynamically allocated RAM, in which case when any task is deleted it is known
2943  * that both the task's stack and TCB need to be freed.  Sometimes the
2944  * FreeRTOSConfig.h settings only allow a task to be created using statically
2945  * allocated RAM, in which case when any task is deleted it is known that neither
2946  * the task's stack or TCB should be freed.  Sometimes the FreeRTOSConfig.h
2947  * settings allow a task to be created using either statically or dynamically
2948  * allocated RAM, in which case a member of the TCB is used to record whether the
2949  * stack and/or TCB were allocated statically or dynamically, so when a task is
2950  * deleted the RAM that was allocated dynamically is freed again and no attempt is
2951  * made to free the RAM that was allocated statically.
2952  * tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE is only true if it is possible for a
2953  * task to be created using either statically or dynamically allocated RAM.  Note
2954  * that if portUSING_MPU_WRAPPERS is 1 then a protected task can be created with
2955  * a statically allocated stack and a dynamically allocated TCB.
2956  *
2957  * The following table lists various combinations of portUSING_MPU_WRAPPERS,
2958  * configSUPPORT_DYNAMIC_ALLOCATION and configSUPPORT_STATIC_ALLOCATION and
2959  * when it is possible to have both static and dynamic allocation:
2960  *  +-----+---------+--------+-----------------------------+-----------------------------------+------------------+-----------+
2961  * | MPU | Dynamic | Static |     Available Functions     |       Possible Allocations        | Both Dynamic and | Need Free |
2962  * |     |         |        |                             |                                   | Static Possible  |           |
2963  * +-----+---------+--------+-----------------------------+-----------------------------------+------------------+-----------+
2964  * | 0   | 0       | 1      | xTaskCreateStatic           | TCB - Static, Stack - Static      | No               | No        |
2965  * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------|
2966  * | 0   | 1       | 0      | xTaskCreate                 | TCB - Dynamic, Stack - Dynamic    | No               | Yes       |
2967  * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------|
2968  * | 0   | 1       | 1      | xTaskCreate,                | 1. TCB - Dynamic, Stack - Dynamic | Yes              | Yes       |
2969  * |     |         |        | xTaskCreateStatic           | 2. TCB - Static, Stack - Static   |                  |           |
2970  * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------|
2971  * | 1   | 0       | 1      | xTaskCreateStatic,          | TCB - Static, Stack - Static      | No               | No        |
2972  * |     |         |        | xTaskCreateRestrictedStatic |                                   |                  |           |
2973  * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------|
2974  * | 1   | 1       | 0      | xTaskCreate,                | 1. TCB - Dynamic, Stack - Dynamic | Yes              | Yes       |
2975  * |     |         |        | xTaskCreateRestricted       | 2. TCB - Dynamic, Stack - Static  |                  |           |
2976  * +-----|---------|--------|-----------------------------|-----------------------------------|------------------|-----------|
2977  * | 1   | 1       | 1      | xTaskCreate,                | 1. TCB - Dynamic, Stack - Dynamic | Yes              | Yes       |
2978  * |     |         |        | xTaskCreateStatic,          | 2. TCB - Dynamic, Stack - Static  |                  |           |
2979  * |     |         |        | xTaskCreateRestricted,      | 3. TCB - Static, Stack - Static   |                  |           |
2980  * |     |         |        | xTaskCreateRestrictedStatic |                                   |                  |           |
2981  * +-----+---------+--------+-----------------------------+-----------------------------------+------------------+-----------+
2982  */
2983 #define tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE                                                                                     \
2984     ( ( ( portUSING_MPU_WRAPPERS == 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) || \
2985       ( ( portUSING_MPU_WRAPPERS == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) )
2986
2987 /*
2988  * In line with software engineering best practice, FreeRTOS implements a strict
2989  * data hiding policy, so the real structures used by FreeRTOS to maintain the
2990  * state of tasks, queues, semaphores, etc. are not accessible to the application
2991  * code.  However, if the application writer wants to statically allocate such
2992  * an object then the size of the object needs to be known.  Dummy structures
2993  * that are guaranteed to have the same size and alignment requirements of the
2994  * real objects are used for this purpose.  The dummy list and list item
2995  * structures below are used for inclusion in such a dummy structure.
2996  */
2997 struct xSTATIC_LIST_ITEM
2998 {
2999     #if ( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
3000         TickType_t xDummy1;
3001     #endif
3002     TickType_t xDummy2;
3003     void * pvDummy3[ 4 ];
3004     #if ( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
3005         TickType_t xDummy4;
3006     #endif
3007 };
3008 typedef struct xSTATIC_LIST_ITEM StaticListItem_t;
3009
3010 #if ( configUSE_MINI_LIST_ITEM == 1 )
3011     /* See the comments above the struct xSTATIC_LIST_ITEM definition. */
3012     struct xSTATIC_MINI_LIST_ITEM
3013     {
3014         #if ( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
3015             TickType_t xDummy1;
3016         #endif
3017         TickType_t xDummy2;
3018         void * pvDummy3[ 2 ];
3019     };
3020     typedef struct xSTATIC_MINI_LIST_ITEM StaticMiniListItem_t;
3021 #else /* if ( configUSE_MINI_LIST_ITEM == 1 ) */
3022     typedef struct xSTATIC_LIST_ITEM      StaticMiniListItem_t;
3023 #endif /* if ( configUSE_MINI_LIST_ITEM == 1 ) */
3024
3025 /* See the comments above the struct xSTATIC_LIST_ITEM definition. */
3026 typedef struct xSTATIC_LIST
3027 {
3028     #if ( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
3029         TickType_t xDummy1;
3030     #endif
3031     UBaseType_t uxDummy2;
3032     void * pvDummy3;
3033     StaticMiniListItem_t xDummy4;
3034     #if ( configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES == 1 )
3035         TickType_t xDummy5;
3036     #endif
3037 } StaticList_t;
3038
3039 /*
3040  * In line with software engineering best practice, especially when supplying a
3041  * library that is likely to change in future versions, FreeRTOS implements a
3042  * strict data hiding policy.  This means the Task structure used internally by
3043  * FreeRTOS is not accessible to application code.  However, if the application
3044  * writer wants to statically allocate the memory required to create a task then
3045  * the size of the task object needs to be known.  The StaticTask_t structure
3046  * below is provided for this purpose.  Its sizes and alignment requirements are
3047  * guaranteed to match those of the genuine structure, no matter which
3048  * architecture is being used, and no matter how the values in FreeRTOSConfig.h
3049  * are set.  Its contents are somewhat obfuscated in the hope users will
3050  * recognise that it would be unwise to make direct use of the structure members.
3051  */
3052 typedef struct xSTATIC_TCB
3053 {
3054     void * pxDummy1;
3055     #if ( portUSING_MPU_WRAPPERS == 1 )
3056         xMPU_SETTINGS xDummy2;
3057     #endif
3058     #if ( configUSE_CORE_AFFINITY == 1 ) && ( configNUMBER_OF_CORES > 1 )
3059         UBaseType_t uxDummy26;
3060     #endif
3061     StaticListItem_t xDummy3[ 2 ];
3062     UBaseType_t uxDummy5;
3063     void * pxDummy6;
3064     #if ( configNUMBER_OF_CORES > 1 )
3065         BaseType_t xDummy23;
3066         UBaseType_t uxDummy24;
3067     #endif
3068     uint8_t ucDummy7[ configMAX_TASK_NAME_LEN ];
3069     #if ( configUSE_TASK_PREEMPTION_DISABLE == 1 )
3070         BaseType_t xDummy25;
3071     #endif
3072     #if ( ( portSTACK_GROWTH > 0 ) || ( configRECORD_STACK_HIGH_ADDRESS == 1 ) )
3073         void * pxDummy8;
3074     #endif
3075     #if ( portCRITICAL_NESTING_IN_TCB == 1 )
3076         UBaseType_t uxDummy9;
3077     #endif
3078     #if ( configUSE_TRACE_FACILITY == 1 )
3079         UBaseType_t uxDummy10[ 2 ];
3080     #endif
3081     #if ( configUSE_MUTEXES == 1 )
3082         UBaseType_t uxDummy12[ 2 ];
3083     #endif
3084     #if ( configUSE_APPLICATION_TASK_TAG == 1 )
3085         void * pxDummy14;
3086     #endif
3087     #if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS > 0 )
3088         void * pvDummy15[ configNUM_THREAD_LOCAL_STORAGE_POINTERS ];
3089     #endif
3090     #if ( configGENERATE_RUN_TIME_STATS == 1 )
3091         configRUN_TIME_COUNTER_TYPE ulDummy16;
3092     #endif
3093     #if ( configUSE_C_RUNTIME_TLS_SUPPORT == 1 )
3094         configTLS_BLOCK_TYPE xDummy17;
3095     #endif
3096     #if ( configUSE_TASK_NOTIFICATIONS == 1 )
3097         uint32_t ulDummy18[ configTASK_NOTIFICATION_ARRAY_ENTRIES ];
3098         uint8_t ucDummy19[ configTASK_NOTIFICATION_ARRAY_ENTRIES ];
3099     #endif
3100     #if ( tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE != 0 )
3101         uint8_t uxDummy20;
3102     #endif
3103
3104     #if ( INCLUDE_xTaskAbortDelay == 1 )
3105         uint8_t ucDummy21;
3106     #endif
3107     #if ( configUSE_POSIX_ERRNO == 1 )
3108         int iDummy22;
3109     #endif
3110 } StaticTask_t;
3111
3112 /*
3113  * In line with software engineering best practice, especially when supplying a
3114  * library that is likely to change in future versions, FreeRTOS implements a
3115  * strict data hiding policy.  This means the Queue structure used internally by
3116  * FreeRTOS is not accessible to application code.  However, if the application
3117  * writer wants to statically allocate the memory required to create a queue
3118  * then the size of the queue object needs to be known.  The StaticQueue_t
3119  * structure below is provided for this purpose.  Its sizes and alignment
3120  * requirements are guaranteed to match those of the genuine structure, no
3121  * matter which architecture is being used, and no matter how the values in
3122  * FreeRTOSConfig.h are set.  Its contents are somewhat obfuscated in the hope
3123  * users will recognise that it would be unwise to make direct use of the
3124  * structure members.
3125  */
3126 typedef struct xSTATIC_QUEUE
3127 {
3128     void * pvDummy1[ 3 ];
3129
3130     union
3131     {
3132         void * pvDummy2;
3133         UBaseType_t uxDummy2;
3134     } u;
3135
3136     StaticList_t xDummy3[ 2 ];
3137     UBaseType_t uxDummy4[ 3 ];
3138     uint8_t ucDummy5[ 2 ];
3139
3140     #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
3141         uint8_t ucDummy6;
3142     #endif
3143
3144     #if ( configUSE_QUEUE_SETS == 1 )
3145         void * pvDummy7;
3146     #endif
3147
3148     #if ( configUSE_TRACE_FACILITY == 1 )
3149         UBaseType_t uxDummy8;
3150         uint8_t ucDummy9;
3151     #endif
3152 } StaticQueue_t;
3153 typedef StaticQueue_t StaticSemaphore_t;
3154
3155 /*
3156  * In line with software engineering best practice, especially when supplying a
3157  * library that is likely to change in future versions, FreeRTOS implements a
3158  * strict data hiding policy.  This means the event group structure used
3159  * internally by FreeRTOS is not accessible to application code.  However, if
3160  * the application writer wants to statically allocate the memory required to
3161  * create an event group then the size of the event group object needs to be
3162  * know.  The StaticEventGroup_t structure below is provided for this purpose.
3163  * Its sizes and alignment requirements are guaranteed to match those of the
3164  * genuine structure, no matter which architecture is being used, and no matter
3165  * how the values in FreeRTOSConfig.h are set.  Its contents are somewhat
3166  * obfuscated in the hope users will recognise that it would be unwise to make
3167  * direct use of the structure members.
3168  */
3169 typedef struct xSTATIC_EVENT_GROUP
3170 {
3171     TickType_t xDummy1;
3172     StaticList_t xDummy2;
3173
3174     #if ( configUSE_TRACE_FACILITY == 1 )
3175         UBaseType_t uxDummy3;
3176     #endif
3177
3178     #if ( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
3179         uint8_t ucDummy4;
3180     #endif
3181 } StaticEventGroup_t;
3182
3183 /*
3184  * In line with software engineering best practice, especially when supplying a
3185  * library that is likely to change in future versions, FreeRTOS implements a
3186  * strict data hiding policy.  This means the software timer structure used
3187  * internally by FreeRTOS is not accessible to application code.  However, if
3188  * the application writer wants to statically allocate the memory required to
3189  * create a software timer then the size of the queue object needs to be known.
3190  * The StaticTimer_t structure below is provided for this purpose.  Its sizes
3191  * and alignment requirements are guaranteed to match those of the genuine
3192  * structure, no matter which architecture is being used, and no matter how the
3193  * values in FreeRTOSConfig.h are set.  Its contents are somewhat obfuscated in
3194  * the hope users will recognise that it would be unwise to make direct use of
3195  * the structure members.
3196  */
3197 typedef struct xSTATIC_TIMER
3198 {
3199     void * pvDummy1;
3200     StaticListItem_t xDummy2;
3201     TickType_t xDummy3;
3202     void * pvDummy5;
3203     TaskFunction_t pvDummy6;
3204     #if ( configUSE_TRACE_FACILITY == 1 )
3205         UBaseType_t uxDummy7;
3206     #endif
3207     uint8_t ucDummy8;
3208 } StaticTimer_t;
3209
3210 /*
3211  * In line with software engineering best practice, especially when supplying a
3212  * library that is likely to change in future versions, FreeRTOS implements a
3213  * strict data hiding policy.  This means the stream buffer structure used
3214  * internally by FreeRTOS is not accessible to application code.  However, if
3215  * the application writer wants to statically allocate the memory required to
3216  * create a stream buffer then the size of the stream buffer object needs to be
3217  * known.  The StaticStreamBuffer_t structure below is provided for this
3218  * purpose.  Its size and alignment requirements are guaranteed to match those
3219  * of the genuine structure, no matter which architecture is being used, and
3220  * no matter how the values in FreeRTOSConfig.h are set.  Its contents are
3221  * somewhat obfuscated in the hope users will recognise that it would be unwise
3222  * to make direct use of the structure members.
3223  */
3224 typedef struct xSTATIC_STREAM_BUFFER
3225 {
3226     size_t uxDummy1[ 4 ];
3227     void * pvDummy2[ 3 ];
3228     uint8_t ucDummy3;
3229     #if ( configUSE_TRACE_FACILITY == 1 )
3230         UBaseType_t uxDummy4;
3231     #endif
3232     #if ( configUSE_SB_COMPLETED_CALLBACK == 1 )
3233         void * pvDummy5[ 2 ];
3234     #endif
3235 } StaticStreamBuffer_t;
3236
3237 /* Message buffers are built on stream buffers. */
3238 typedef StaticStreamBuffer_t StaticMessageBuffer_t;
3239
3240 /* *INDENT-OFF* */
3241 #ifdef __cplusplus
3242     }
3243 #endif
3244 /* *INDENT-ON* */
3245
3246 #endif /* INC_FREERTOS_H */