]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Source/include/FreeRTOS.h
Prepare for V9.0.0 release.
[freertos] / FreeRTOS / Source / include / FreeRTOS.h
index 33a4d79f137cd9785a5e98d36afd710b7de6c068..e87484350930fb0ff46ac182ddffe64e2b5ae62e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd.\r
+    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
     All rights reserved\r
 \r
     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
@@ -103,6 +103,15 @@ extern "C" {
 /* Definitions specific to the port being used. */\r
 #include "portable.h"\r
 \r
+/* Must be defaulted before configUSE_NEWLIB_REENTRANT is used below. */\r
+#ifndef configUSE_NEWLIB_REENTRANT\r
+       #define configUSE_NEWLIB_REENTRANT 0\r
+#endif\r
+\r
+/* Required if struct _reent is used. */\r
+#if ( configUSE_NEWLIB_REENTRANT == 1 )\r
+       #include <reent.h>\r
+#endif\r
 /*\r
  * Check all the required application specific macros have been defined.\r
  * These macros are application specific and (as downloaded) are defined\r
@@ -129,90 +138,102 @@ extern "C" {
        #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.\r
 #endif\r
 \r
+#ifndef configUSE_16_BIT_TICKS\r
+       #error Missing definition:  configUSE_16_BIT_TICKS must be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.\r
+#endif\r
+\r
+#ifndef configMAX_PRIORITIES\r
+       #error configMAX_PRIORITIES must be defined to be greater than or equal to 1.\r
+#endif\r
+\r
+#ifndef configUSE_CO_ROUTINES\r
+       #define configUSE_CO_ROUTINES 0\r
+#endif\r
+\r
 #ifndef INCLUDE_vTaskPrioritySet\r
-       #error Missing definition:  INCLUDE_vTaskPrioritySet must be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.\r
+       #define INCLUDE_vTaskPrioritySet 0\r
 #endif\r
 \r
 #ifndef INCLUDE_uxTaskPriorityGet\r
-       #error Missing definition:  INCLUDE_uxTaskPriorityGet must be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.\r
+       #define INCLUDE_uxTaskPriorityGet 0\r
 #endif\r
 \r
 #ifndef INCLUDE_vTaskDelete\r
-       #error Missing definition:  INCLUDE_vTaskDelete must be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.\r
+       #define INCLUDE_vTaskDelete 0\r
 #endif\r
 \r
 #ifndef INCLUDE_vTaskSuspend\r
-       #error Missing definition:  INCLUDE_vTaskSuspend must be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.\r
+       #define INCLUDE_vTaskSuspend 0\r
 #endif\r
 \r
 #ifndef INCLUDE_vTaskDelayUntil\r
-       #error Missing definition:  INCLUDE_vTaskDelayUntil must be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.\r
+       #define INCLUDE_vTaskDelayUntil 0\r
 #endif\r
 \r
 #ifndef INCLUDE_vTaskDelay\r
-       #error Missing definition:  INCLUDE_vTaskDelay must be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.\r
+       #define INCLUDE_vTaskDelay 0\r
 #endif\r
 \r
-#ifndef configUSE_16_BIT_TICKS\r
-       #error Missing definition:  configUSE_16_BIT_TICKS must be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.\r
+#ifndef INCLUDE_xTaskGetIdleTaskHandle\r
+       #define INCLUDE_xTaskGetIdleTaskHandle 0\r
 #endif\r
 \r
-#ifndef configMAX_PRIORITIES\r
-       #error configMAX_PRIORITIES must be defined to be greater than or equal to 1.\r
+#ifndef INCLUDE_xTaskAbortDelay\r
+       #define INCLUDE_xTaskAbortDelay 0\r
 #endif\r
 \r
-#ifndef configUSE_CO_ROUTINES\r
-       #define configUSE_CO_ROUTINES 0\r
+#ifndef INCLUDE_xQueueGetMutexHolder\r
+       #define INCLUDE_xQueueGetMutexHolder 0\r
 #endif\r
 \r
-#if configUSE_CO_ROUTINES != 0\r
-       #ifndef configMAX_CO_ROUTINE_PRIORITIES\r
-               #error configMAX_CO_ROUTINE_PRIORITIES must be greater than or equal to 1.\r
-       #endif\r
+#ifndef INCLUDE_xSemaphoreGetMutexHolder\r
+       #define INCLUDE_xSemaphoreGetMutexHolder INCLUDE_xQueueGetMutexHolder\r
 #endif\r
 \r
-#ifndef configUSE_DAEMON_TASK_STARTUP_HOOK\r
-       #define configUSE_DAEMON_TASK_STARTUP_HOOK 0\r
+#ifndef INCLUDE_xTaskGetHandle\r
+       #define INCLUDE_xTaskGetHandle 0\r
 #endif\r
 \r
-#ifndef INCLUDE_xTaskGetIdleTaskHandle\r
-       #define INCLUDE_xTaskGetIdleTaskHandle 0\r
+#ifndef INCLUDE_uxTaskGetStackHighWaterMark\r
+       #define INCLUDE_uxTaskGetStackHighWaterMark 0\r
 #endif\r
 \r
-#ifndef INCLUDE_xTimerGetTimerDaemonTaskHandle\r
-       #define INCLUDE_xTimerGetTimerDaemonTaskHandle 0\r
+#ifndef INCLUDE_eTaskGetState\r
+       #define INCLUDE_eTaskGetState 0\r
 #endif\r
 \r
-#ifndef INCLUDE_xQueueGetMutexHolder\r
-       #define INCLUDE_xQueueGetMutexHolder 0\r
+#ifndef INCLUDE_xTaskResumeFromISR\r
+       #define INCLUDE_xTaskResumeFromISR 1\r
 #endif\r
 \r
-#ifndef INCLUDE_xSemaphoreGetMutexHolder\r
-       #define INCLUDE_xSemaphoreGetMutexHolder INCLUDE_xQueueGetMutexHolder\r
+#ifndef INCLUDE_xTimerPendFunctionCall\r
+       #define INCLUDE_xTimerPendFunctionCall 0\r
 #endif\r
 \r
-#ifndef INCLUDE_pcTaskGetTaskName\r
-       #define INCLUDE_pcTaskGetTaskName 0\r
+#ifndef INCLUDE_xTaskGetSchedulerState\r
+       #define INCLUDE_xTaskGetSchedulerState 0\r
 #endif\r
 \r
-#ifndef INCLUDE_xTaskGetTaskHandle\r
-       #define INCLUDE_xTaskGetTaskHandle 0\r
+#ifndef INCLUDE_xTaskGetCurrentTaskHandle\r
+       #define INCLUDE_xTaskGetCurrentTaskHandle 0\r
 #endif\r
 \r
-#ifndef configUSE_APPLICATION_TASK_TAG\r
-       #define configUSE_APPLICATION_TASK_TAG 0\r
+#if configUSE_CO_ROUTINES != 0\r
+       #ifndef configMAX_CO_ROUTINE_PRIORITIES\r
+               #error configMAX_CO_ROUTINE_PRIORITIES must be greater than or equal to 1.\r
+       #endif\r
 #endif\r
 \r
-#ifndef configNUM_THREAD_LOCAL_STORAGE_POINTERS\r
-       #define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0\r
+#ifndef configUSE_DAEMON_TASK_STARTUP_HOOK\r
+       #define configUSE_DAEMON_TASK_STARTUP_HOOK 0\r
 #endif\r
 \r
-#ifndef INCLUDE_uxTaskGetStackHighWaterMark\r
-       #define INCLUDE_uxTaskGetStackHighWaterMark 0\r
+#ifndef configUSE_APPLICATION_TASK_TAG\r
+       #define configUSE_APPLICATION_TASK_TAG 0\r
 #endif\r
 \r
-#ifndef INCLUDE_eTaskGetState\r
-       #define INCLUDE_eTaskGetState 0\r
+#ifndef configNUM_THREAD_LOCAL_STORAGE_POINTERS\r
+       #define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0\r
 #endif\r
 \r
 #ifndef configUSE_RECURSIVE_MUTEXES\r
@@ -251,14 +272,6 @@ extern "C" {
        #error configMAX_TASK_NAME_LEN must be set to a minimum of 1 in FreeRTOSConfig.h\r
 #endif\r
 \r
-#ifndef INCLUDE_xTaskResumeFromISR\r
-       #define INCLUDE_xTaskResumeFromISR 1\r
-#endif\r
-\r
-#ifndef INCLUDE_xTimerPendFunctionCall\r
-       #define INCLUDE_xTimerPendFunctionCall 0\r
-#endif\r
-\r
 #ifndef configASSERT\r
        #define configASSERT( x )\r
        #define configASSERT_DEFINED 0\r
@@ -283,15 +296,6 @@ extern "C" {
 \r
 #endif /* configUSE_TIMERS */\r
 \r
-#ifndef INCLUDE_xTaskGetSchedulerState\r
-       #define INCLUDE_xTaskGetSchedulerState 0\r
-#endif\r
-\r
-#ifndef INCLUDE_xTaskGetCurrentTaskHandle\r
-       #define INCLUDE_xTaskGetCurrentTaskHandle 0\r
-#endif\r
-\r
-\r
 #ifndef portSET_INTERRUPT_MASK_FROM_ISR\r
        #define portSET_INTERRUPT_MASK_FROM_ISR() 0\r
 #endif\r
@@ -319,7 +323,7 @@ extern "C" {
 #if ( configQUEUE_REGISTRY_SIZE < 1 )\r
        #define vQueueAddToRegistry( xQueue, pcName )\r
        #define vQueueUnregisterQueue( xQueue )\r
-       #define pcQueueGetQueueName( xQueue )\r
+       #define pcQueueGetName( xQueue )\r
 #endif\r
 \r
 #ifndef portPOINTER_SIZE_TYPE\r
@@ -515,7 +519,7 @@ extern "C" {
 #endif\r
 \r
 #ifndef traceTASK_DELAY_UNTIL\r
-       #define traceTASK_DELAY_UNTIL()\r
+       #define traceTASK_DELAY_UNTIL( x )\r
 #endif\r
 \r
 #ifndef traceTASK_DELAY\r
@@ -688,14 +692,6 @@ extern "C" {
        #define portYIELD_WITHIN_API portYIELD\r
 #endif\r
 \r
-#ifndef pvPortMallocAligned\r
-       #define pvPortMallocAligned( x, puxPreallocatedBuffer ) ( ( ( puxPreallocatedBuffer ) == NULL ) ? ( pvPortMalloc( ( x ) ) ) : ( puxPreallocatedBuffer ) )\r
-#endif\r
-\r
-#ifndef vPortFreeAligned\r
-       #define vPortFreeAligned( pvBlockToFree ) vPortFree( pvBlockToFree )\r
-#endif\r
-\r
 #ifndef portSUPPRESS_TICKS_AND_SLEEP\r
        #define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime )\r
 #endif\r
@@ -736,10 +732,6 @@ extern "C" {
        #define configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS 0\r
 #endif\r
 \r
-#ifndef configUSE_NEWLIB_REENTRANT\r
-       #define configUSE_NEWLIB_REENTRANT 0\r
-#endif\r
-\r
 #ifndef configUSE_STATS_FORMATTING_FUNCTIONS\r
        #define configUSE_STATS_FORMATTING_FUNCTIONS 0\r
 #endif\r
@@ -781,11 +773,28 @@ extern "C" {
 #endif\r
 \r
 #ifndef configSUPPORT_STATIC_ALLOCATION\r
+       /* Defaults to 0 for backward compatibility. */\r
        #define configSUPPORT_STATIC_ALLOCATION 0\r
 #endif\r
 \r
+#ifndef configSUPPORT_DYNAMIC_ALLOCATION\r
+       /* Defaults to 1 for backward compatibility. */\r
+       #define configSUPPORT_DYNAMIC_ALLOCATION 1\r
+#endif\r
+\r
+/* Sanity check the configuration. */\r
+#if( configUSE_TICKLESS_IDLE != 0 )\r
+       #if( INCLUDE_vTaskSuspend != 1 )\r
+               #error INCLUDE_vTaskSuspend must be set to 1 if configUSE_TICKLESS_IDLE is not set to 0\r
+       #endif /* INCLUDE_vTaskSuspend */\r
+#endif /* configUSE_TICKLESS_IDLE */\r
+\r
+#if( ( configSUPPORT_STATIC_ALLOCATION == 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 0 ) )\r
+       #error configSUPPORT_STATIC_ALLOCATION and configSUPPORT_DYNAMIC_ALLOCATION cannot both be 0, but can both be 1.\r
+#endif\r
+\r
 #if( ( configUSE_RECURSIVE_MUTEXES == 1 ) && ( configUSE_MUTEXES != 1 ) )\r
-    #error configUSE_MUTEXES must be set to 1 to use recursive mutexes\r
+       #error configUSE_MUTEXES must be set to 1 to use recursive mutexes\r
 #endif\r
 \r
 #if( portTICK_TYPE_IS_ATOMIC == 0 )\r
@@ -827,6 +836,10 @@ V8 if desired. */
        #define xCoRoutineHandle CoRoutineHandle_t\r
        #define pdTASK_HOOK_CODE TaskHookFunction_t\r
        #define portTICK_RATE_MS portTICK_PERIOD_MS\r
+       #define pcTaskGetTaskName pcTaskGetName\r
+       #define pcTimerGetTimerName pcTimerGetName\r
+       #define pcQueueGetQueueName pcQueueGetName\r
+       #define vTaskGetTaskInfo vTaskGetInfo\r
 \r
        /* Backward compatibility within the scheduler code only - these definitions\r
        are not really required but are included for completeness. */\r
@@ -836,6 +849,10 @@ V8 if desired. */
        #define xList List_t\r
 #endif /* configENABLE_BACKWARD_COMPATIBILITY */\r
 \r
+#if( configUSE_ALTERNATIVE_API != 0 )\r
+       #error The alternative API was deprecated some time ago, and was removed in FreeRTOS V9.0 0\r
+#endif\r
+\r
 /* Set configUSE_TASK_FPU_SUPPORT to 0 to omit floating point support even\r
 if floating point hardware is otherwise supported by the FreeRTOS port in use.\r
 This constant is not supported by all FreeRTOS ports that include floating\r
@@ -877,12 +894,6 @@ typedef struct xSTATIC_LIST
        StaticMiniListItem_t xDummy3;\r
 } StaticList_t;\r
 \r
-/* For data hiding purposes. */\r
-typedef enum\r
-{\r
-       eNothing = 0\r
-} eDummy;\r
-\r
 /*\r
  * In line with software engineering best practice, especially when supplying a\r
  * library that is likely to change in future versions, FreeRTOS implements a\r
@@ -922,7 +933,7 @@ typedef struct xSTATIC_TCB
                void                    *pxDummy14;\r
        #endif\r
        #if( configNUM_THREAD_LOCAL_STORAGE_POINTERS > 0 )\r
-               void                    pvDummy15[ configNUM_THREAD_LOCAL_STORAGE_POINTERS ];\r
+               void                    *pvDummy15[ configNUM_THREAD_LOCAL_STORAGE_POINTERS ];\r
        #endif\r
        #if ( configGENERATE_RUN_TIME_STATS == 1 )\r
                uint32_t                ulDummy16;\r
@@ -932,9 +943,9 @@ typedef struct xSTATIC_TCB
        #endif\r
        #if ( configUSE_TASK_NOTIFICATIONS == 1 )\r
                uint32_t                ulDummy18;\r
-               eDummy                  eDummy19;\r
+               uint8_t                 ucDummy19;\r
        #endif\r
-       #if ( configSUPPORT_STATIC_ALLOCATION == 1 )\r
+       #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )\r
                uint8_t                 uxDummy20;\r
        #endif\r
 \r
@@ -965,19 +976,20 @@ typedef struct xSTATIC_QUEUE
        } u;\r
 \r
        StaticList_t xDummy3[ 2 ];\r
-       UBaseType_t uxDummy4[ 5 ];\r
+       UBaseType_t uxDummy4[ 3 ];\r
+       uint8_t ucDummy5[ 2 ];\r
+\r
+       #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )\r
+               uint8_t ucDummy6;\r
+       #endif\r
 \r
        #if ( configUSE_QUEUE_SETS == 1 )\r
                void *pvDummy7;\r
        #endif\r
 \r
        #if ( configUSE_TRACE_FACILITY == 1 )\r
-               UBaseType_t uxDummy5;\r
-               uint8_t ucDummy6;\r
-       #endif\r
-\r
-       #if ( configSUPPORT_STATIC_ALLOCATION == 1 )\r
-                       uint8_t ucDummy7;\r
+               UBaseType_t uxDummy8;\r
+               uint8_t ucDummy9;\r
        #endif\r
 \r
 } StaticQueue_t;\r
@@ -1006,8 +1018,8 @@ typedef struct xSTATIC_EVENT_GROUP
                UBaseType_t uxDummy3;\r
        #endif\r
 \r
-       #if( configSUPPORT_STATIC_ALLOCATION == 1 )\r
-                       uint8_t ucStaticallyAllocated;\r
+       #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )\r
+                       uint8_t ucDummy4;\r
        #endif\r
 \r
 } StaticEventGroup_t;\r
@@ -1037,8 +1049,8 @@ typedef struct xSTATIC_TIMER
                UBaseType_t             uxDummy6;\r
        #endif\r
 \r
-       #if( configSUPPORT_STATIC_ALLOCATION == 1 )\r
-               uint8_t                 ucStaticallyAllocated;\r
+       #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )\r
+               uint8_t                 ucDummy7;\r
        #endif\r
 \r
 } StaticTimer_t;\r