| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 | /* * FreeRTOS Kernel V10.4.3 * Copyright (C) 2020 Amazon.com, Inc. or its affiliates.  All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of * the Software, and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * https://www.FreeRTOS.org * https://github.com/FreeRTOS * */#ifndef MPU_WRAPPERS_H#define MPU_WRAPPERS_H/* This file redefines API functions to be called through a wrapper macro, but * only for ports that are using the MPU. */#ifdef portUSING_MPU_WRAPPERS/* MPU_WRAPPERS_INCLUDED_FROM_API_FILE will be defined when this file is * included from queue.c or task.c to prevent it from having an effect within * those files. */    #ifndef MPU_WRAPPERS_INCLUDED_FROM_API_FILE/* * Map standard (non MPU) API functions to equivalents that start * "MPU_".  This will cause the application code to call the MPU_ * version, which wraps the non-MPU version with privilege promoting * then demoting code, so the kernel code always runs will full * privileges. *//* Map standard tasks.h API functions to the MPU equivalents. */        #define xTaskCreate                            MPU_xTaskCreate        #define xTaskCreateStatic                      MPU_xTaskCreateStatic        #define vTaskDelete                            MPU_vTaskDelete        #define vTaskDelay                             MPU_vTaskDelay        #define xTaskDelayUntil                        MPU_xTaskDelayUntil        #define xTaskAbortDelay                        MPU_xTaskAbortDelay        #define uxTaskPriorityGet                      MPU_uxTaskPriorityGet        #define eTaskGetState                          MPU_eTaskGetState        #define vTaskGetInfo                           MPU_vTaskGetInfo        #define vTaskPrioritySet                       MPU_vTaskPrioritySet        #define vTaskSuspend                           MPU_vTaskSuspend        #define vTaskResume                            MPU_vTaskResume        #define vTaskSuspendAll                        MPU_vTaskSuspendAll        #define xTaskResumeAll                         MPU_xTaskResumeAll        #define xTaskGetTickCount                      MPU_xTaskGetTickCount        #define uxTaskGetNumberOfTasks                 MPU_uxTaskGetNumberOfTasks        #define pcTaskGetName                          MPU_pcTaskGetName        #define xTaskGetHandle                         MPU_xTaskGetHandle        #define uxTaskGetStackHighWaterMark            MPU_uxTaskGetStackHighWaterMark        #define uxTaskGetStackHighWaterMark2           MPU_uxTaskGetStackHighWaterMark2        #define vTaskSetApplicationTaskTag             MPU_vTaskSetApplicationTaskTag        #define xTaskGetApplicationTaskTag             MPU_xTaskGetApplicationTaskTag        #define vTaskSetThreadLocalStoragePointer      MPU_vTaskSetThreadLocalStoragePointer        #define pvTaskGetThreadLocalStoragePointer     MPU_pvTaskGetThreadLocalStoragePointer        #define xTaskCallApplicationTaskHook           MPU_xTaskCallApplicationTaskHook        #define xTaskGetIdleTaskHandle                 MPU_xTaskGetIdleTaskHandle        #define uxTaskGetSystemState                   MPU_uxTaskGetSystemState        #define vTaskList                              MPU_vTaskList        #define vTaskGetRunTimeStats                   MPU_vTaskGetRunTimeStats        #define ulTaskGetIdleRunTimeCounter            MPU_ulTaskGetIdleRunTimeCounter        #define xTaskGenericNotify                     MPU_xTaskGenericNotify        #define xTaskGenericNotifyWait                 MPU_xTaskGenericNotifyWait        #define ulTaskGenericNotifyTake                MPU_ulTaskGenericNotifyTake        #define xTaskGenericNotifyStateClear           MPU_xTaskGenericNotifyStateClear        #define ulTaskGenericNotifyValueClear          MPU_ulTaskGenericNotifyValueClear        #define xTaskCatchUpTicks                      MPU_xTaskCatchUpTicks        #define xTaskGetCurrentTaskHandle              MPU_xTaskGetCurrentTaskHandle        #define vTaskSetTimeOutState                   MPU_vTaskSetTimeOutState        #define xTaskCheckForTimeOut                   MPU_xTaskCheckForTimeOut        #define xTaskGetSchedulerState                 MPU_xTaskGetSchedulerState/* Map standard queue.h API functions to the MPU equivalents. */        #define xQueueGenericSend                      MPU_xQueueGenericSend        #define xQueueReceive                          MPU_xQueueReceive        #define xQueuePeek                             MPU_xQueuePeek        #define xQueueSemaphoreTake                    MPU_xQueueSemaphoreTake        #define uxQueueMessagesWaiting                 MPU_uxQueueMessagesWaiting        #define uxQueueSpacesAvailable                 MPU_uxQueueSpacesAvailable        #define vQueueDelete                           MPU_vQueueDelete        #define xQueueCreateMutex                      MPU_xQueueCreateMutex        #define xQueueCreateMutexStatic                MPU_xQueueCreateMutexStatic        #define xQueueCreateCountingSemaphore          MPU_xQueueCreateCountingSemaphore        #define xQueueCreateCountingSemaphoreStatic    MPU_xQueueCreateCountingSemaphoreStatic        #define xQueueGetMutexHolder                   MPU_xQueueGetMutexHolder        #define xQueueTakeMutexRecursive               MPU_xQueueTakeMutexRecursive        #define xQueueGiveMutexRecursive               MPU_xQueueGiveMutexRecursive        #define xQueueGenericCreate                    MPU_xQueueGenericCreate        #define xQueueGenericCreateStatic              MPU_xQueueGenericCreateStatic        #define xQueueCreateSet                        MPU_xQueueCreateSet        #define xQueueAddToSet                         MPU_xQueueAddToSet        #define xQueueRemoveFromSet                    MPU_xQueueRemoveFromSet        #define xQueueSelectFromSet                    MPU_xQueueSelectFromSet        #define xQueueGenericReset                     MPU_xQueueGenericReset        #if ( configQUEUE_REGISTRY_SIZE > 0 )            #define vQueueAddToRegistry                MPU_vQueueAddToRegistry            #define vQueueUnregisterQueue              MPU_vQueueUnregisterQueue            #define pcQueueGetName                     MPU_pcQueueGetName        #endif/* Map standard timer.h API functions to the MPU equivalents. */        #define xTimerCreate                           MPU_xTimerCreate        #define xTimerCreateStatic                     MPU_xTimerCreateStatic        #define pvTimerGetTimerID                      MPU_pvTimerGetTimerID        #define vTimerSetTimerID                       MPU_vTimerSetTimerID        #define xTimerIsTimerActive                    MPU_xTimerIsTimerActive        #define xTimerGetTimerDaemonTaskHandle         MPU_xTimerGetTimerDaemonTaskHandle        #define xTimerPendFunctionCall                 MPU_xTimerPendFunctionCall        #define pcTimerGetName                         MPU_pcTimerGetName        #define vTimerSetReloadMode                    MPU_vTimerSetReloadMode        #define uxTimerGetReloadMode                   MPU_uxTimerGetReloadMode        #define xTimerGetPeriod                        MPU_xTimerGetPeriod        #define xTimerGetExpiryTime                    MPU_xTimerGetExpiryTime        #define xTimerGenericCommand                   MPU_xTimerGenericCommand/* Map standard event_group.h API functions to the MPU equivalents. */        #define xEventGroupCreate                      MPU_xEventGroupCreate        #define xEventGroupCreateStatic                MPU_xEventGroupCreateStatic        #define xEventGroupWaitBits                    MPU_xEventGroupWaitBits        #define xEventGroupClearBits                   MPU_xEventGroupClearBits        #define xEventGroupSetBits                     MPU_xEventGroupSetBits        #define xEventGroupSync                        MPU_xEventGroupSync        #define vEventGroupDelete                      MPU_vEventGroupDelete/* Map standard message/stream_buffer.h API functions to the MPU * equivalents. */        #define xStreamBufferSend                      MPU_xStreamBufferSend        #define xStreamBufferReceive                   MPU_xStreamBufferReceive        #define xStreamBufferNextMessageLengthBytes    MPU_xStreamBufferNextMessageLengthBytes        #define vStreamBufferDelete                    MPU_vStreamBufferDelete        #define xStreamBufferIsFull                    MPU_xStreamBufferIsFull        #define xStreamBufferIsEmpty                   MPU_xStreamBufferIsEmpty        #define xStreamBufferReset                     MPU_xStreamBufferReset        #define xStreamBufferSpacesAvailable           MPU_xStreamBufferSpacesAvailable        #define xStreamBufferBytesAvailable            MPU_xStreamBufferBytesAvailable        #define xStreamBufferSetTriggerLevel           MPU_xStreamBufferSetTriggerLevel        #define xStreamBufferGenericCreate             MPU_xStreamBufferGenericCreate        #define xStreamBufferGenericCreateStatic       MPU_xStreamBufferGenericCreateStatic/* Remove the privileged function macro, but keep the PRIVILEGED_DATA * macro so applications can place data in privileged access sections * (useful when using statically allocated objects). */        #define PRIVILEGED_FUNCTION        #define PRIVILEGED_DATA    __attribute__( ( section( "privileged_data" ) ) )        #define FREERTOS_SYSTEM_CALL    #else /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE *//* Ensure API functions go in the privileged execution section. */        #define PRIVILEGED_FUNCTION     __attribute__( ( section( "privileged_functions" ) ) )        #define PRIVILEGED_DATA         __attribute__( ( section( "privileged_data" ) ) )        #define FREERTOS_SYSTEM_CALL    __attribute__( ( section( "freertos_system_calls" ) ) )    #endif /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */#else /* portUSING_MPU_WRAPPERS */    #define PRIVILEGED_FUNCTION    #define PRIVILEGED_DATA    #define FREERTOS_SYSTEM_CALL    #define portUSING_MPU_WRAPPERS    0#endif /* portUSING_MPU_WRAPPERS */#endif /* MPU_WRAPPERS_H */
 |