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