]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Source/include/mpu_wrappers.h
Added xTaskAbortDelayFromISR() and ulTaskNotifyValueClear() API functions.
[freertos] / FreeRTOS / Source / include / mpu_wrappers.h
index 11e1cc019761e73be9ac2aa8b734c5cbab16d52d..6ac0a3e9264178f4300c90248c7bd46684815770 100644 (file)
@@ -1,71 +1,29 @@
 /*\r
-    FreeRTOS V9.0.0 - 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
-\r
-    This file is part of the FreeRTOS distribution.\r
-\r
-    FreeRTOS is free software; you can redistribute it and/or modify it under\r
-    the terms of the GNU General Public License (version 2) as published by the\r
-    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
-    ***************************************************************************\r
-    >>!   NOTE: The modification to the GPL is included to allow you to     !<<\r
-    >>!   distribute a combined work that includes FreeRTOS without being   !<<\r
-    >>!   obliged to provide the source code for proprietary components     !<<\r
-    >>!   outside of the FreeRTOS kernel.                                   !<<\r
-    ***************************************************************************\r
-\r
-    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
-    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
-    FOR A PARTICULAR PURPOSE.  Full license text is available on the following\r
-    link: http://www.freertos.org/a00114.html\r
-\r
-    ***************************************************************************\r
-     *                                                                       *\r
-     *    FreeRTOS provides completely free yet professionally developed,    *\r
-     *    robust, strictly quality controlled, supported, and cross          *\r
-     *    platform software that is more than just the market leader, it     *\r
-     *    is the industry's de facto standard.                               *\r
-     *                                                                       *\r
-     *    Help yourself get started quickly while simultaneously helping     *\r
-     *    to support the FreeRTOS project by purchasing a FreeRTOS           *\r
-     *    tutorial book, reference manual, or both:                          *\r
-     *    http://www.FreeRTOS.org/Documentation                              *\r
-     *                                                                       *\r
-    ***************************************************************************\r
-\r
-    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading\r
-    the FAQ page "My application does not run, what could be wrong?".  Have you\r
-    defined configASSERT()?\r
-\r
-    http://www.FreeRTOS.org/support - In return for receiving this top quality\r
-    embedded software for free we request you assist our global community by\r
-    participating in the support forum.\r
-\r
-    http://www.FreeRTOS.org/training - Investing in training allows your team to\r
-    be as productive as possible as early as possible.  Now you can receive\r
-    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
-    Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
-    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
-    including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
-    compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
-    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
-    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
-    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
-    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS\r
-    licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
-    http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
-    engineered and independently SIL3 certified version for use in safety and\r
-    mission critical applications that require provable dependability.\r
-\r
-    1 tab == 4 spaces!\r
-*/\r
+ * FreeRTOS Kernel V10.2.1\r
+ * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\r
+ *\r
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of\r
+ * this software and associated documentation files (the "Software"), to deal in\r
+ * the Software without restriction, including without limitation the rights to\r
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r
+ * the Software, and to permit persons to whom the Software is furnished to do so,\r
+ * subject to the following conditions:\r
+ *\r
+ * The above copyright notice and this permission notice shall be included in all\r
+ * copies or substantial portions of the Software.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
+ *\r
+ * http://www.FreeRTOS.org\r
+ * http://aws.amazon.com/freertos\r
+ *\r
+ * 1 tab == 4 spaces!\r
+ */\r
 \r
 #ifndef MPU_WRAPPERS_H\r
 #define MPU_WRAPPERS_H\r
@@ -109,6 +67,7 @@ only for ports that are using the MPU. */
                #define pcTaskGetName                                                   MPU_pcTaskGetName\r
                #define xTaskGetHandle                                                  MPU_xTaskGetHandle\r
                #define uxTaskGetStackHighWaterMark                             MPU_uxTaskGetStackHighWaterMark\r
+               #define uxTaskGetStackHighWaterMark2                    MPU_uxTaskGetStackHighWaterMark2\r
                #define vTaskSetApplicationTaskTag                              MPU_vTaskSetApplicationTaskTag\r
                #define xTaskGetApplicationTaskTag                              MPU_xTaskGetApplicationTaskTag\r
                #define vTaskSetThreadLocalStoragePointer               MPU_vTaskSetThreadLocalStoragePointer\r
@@ -118,10 +77,13 @@ only for ports that are using the MPU. */
                #define uxTaskGetSystemState                                    MPU_uxTaskGetSystemState\r
                #define vTaskList                                                               MPU_vTaskList\r
                #define vTaskGetRunTimeStats                                    MPU_vTaskGetRunTimeStats\r
+               #define ulTaskGetIdleRunTimeCounter                             MPU_ulTaskGetIdleRunTimeCounter\r
                #define xTaskGenericNotify                                              MPU_xTaskGenericNotify\r
                #define xTaskNotifyWait                                                 MPU_xTaskNotifyWait\r
                #define ulTaskNotifyTake                                                MPU_ulTaskNotifyTake\r
                #define xTaskNotifyStateClear                                   MPU_xTaskNotifyStateClear\r
+               #define ulTaskNotifyValueClear                                  MPU_ulTaskNotifyValueClear\r
+               #define xTaskCatchUpTicks                                               MPU_xTaskCatchUpTicks\r
 \r
                #define xTaskGetCurrentTaskHandle                               MPU_xTaskGetCurrentTaskHandle\r
                #define vTaskSetTimeOutState                                    MPU_vTaskSetTimeOutState\r
@@ -166,6 +128,7 @@ only for ports that are using the MPU. */
                #define xTimerGetTimerDaemonTaskHandle                  MPU_xTimerGetTimerDaemonTaskHandle\r
                #define xTimerPendFunctionCall                                  MPU_xTimerPendFunctionCall\r
                #define pcTimerGetName                                                  MPU_pcTimerGetName\r
+               #define vTimerSetReloadMode                                             MPU_vTimerSetReloadMode\r
                #define xTimerGetPeriod                                                 MPU_xTimerGetPeriod\r
                #define xTimerGetExpiryTime                                             MPU_xTimerGetExpiryTime\r
                #define xTimerGenericCommand                                    MPU_xTimerGenericCommand\r
@@ -179,17 +142,35 @@ only for ports that are using the MPU. */
                #define xEventGroupSync                                                 MPU_xEventGroupSync\r
                #define vEventGroupDelete                                               MPU_vEventGroupDelete\r
 \r
+               /* Map standard message/stream_buffer.h API functions to the MPU\r
+               equivalents. */\r
+               #define xStreamBufferSend                                               MPU_xStreamBufferSend\r
+               #define xStreamBufferReceive                                    MPU_xStreamBufferReceive\r
+               #define xStreamBufferNextMessageLengthBytes             MPU_xStreamBufferNextMessageLengthBytes\r
+               #define vStreamBufferDelete                                             MPU_vStreamBufferDelete\r
+               #define xStreamBufferIsFull                                             MPU_xStreamBufferIsFull\r
+               #define xStreamBufferIsEmpty                                    MPU_xStreamBufferIsEmpty\r
+               #define xStreamBufferReset                                              MPU_xStreamBufferReset\r
+               #define xStreamBufferSpacesAvailable                    MPU_xStreamBufferSpacesAvailable\r
+               #define xStreamBufferBytesAvailable                             MPU_xStreamBufferBytesAvailable\r
+               #define xStreamBufferSetTriggerLevel                    MPU_xStreamBufferSetTriggerLevel\r
+               #define xStreamBufferGenericCreate                              MPU_xStreamBufferGenericCreate\r
+               #define xStreamBufferGenericCreateStatic                MPU_xStreamBufferGenericCreateStatic\r
+\r
+\r
                /* Remove the privileged function macro, but keep the PRIVILEGED_DATA\r
                macro so applications can place data in privileged access sections\r
                (useful when using statically allocated objects). */\r
                #define PRIVILEGED_FUNCTION\r
                #define PRIVILEGED_DATA __attribute__((section("privileged_data")))\r
+               #define FREERTOS_SYSTEM_CALL\r
 \r
        #else /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */\r
 \r
                /* Ensure API functions go in the privileged execution section. */\r
                #define PRIVILEGED_FUNCTION __attribute__((section("privileged_functions")))\r
                #define PRIVILEGED_DATA __attribute__((section("privileged_data")))\r
+               #define FREERTOS_SYSTEM_CALL __attribute__((section( "freertos_system_calls")))\r
 \r
        #endif /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */\r
 \r
@@ -197,6 +178,7 @@ only for ports that are using the MPU. */
 \r
        #define PRIVILEGED_FUNCTION\r
        #define PRIVILEGED_DATA\r
+       #define FREERTOS_SYSTEM_CALL\r
        #define portUSING_MPU_WRAPPERS 0\r
 \r
 #endif /* portUSING_MPU_WRAPPERS */\r