- #define xTaskGenericCreate MPU_xTaskGenericCreate\r
- #define vTaskAllocateMPURegions MPU_vTaskAllocateMPURegions\r
- #define vTaskDelete MPU_vTaskDelete\r
- #define vTaskDelayUntil MPU_vTaskDelayUntil\r
- #define vTaskDelay MPU_vTaskDelay\r
- #define uxTaskPriorityGet MPU_uxTaskPriorityGet\r
- #define vTaskPrioritySet MPU_vTaskPrioritySet\r
- #define eTaskGetState MPU_eTaskGetState\r
- #define vTaskSuspend MPU_vTaskSuspend\r
- #define vTaskResume MPU_vTaskResume\r
- #define vTaskSuspendAll MPU_vTaskSuspendAll\r
- #define xTaskResumeAll MPU_xTaskResumeAll\r
- #define xTaskGetTickCount MPU_xTaskGetTickCount\r
- #define uxTaskGetNumberOfTasks MPU_uxTaskGetNumberOfTasks\r
- #define vTaskList MPU_vTaskList\r
- #define vTaskGetRunTimeStats MPU_vTaskGetRunTimeStats\r
- #define vTaskSetApplicationTaskTag MPU_vTaskSetApplicationTaskTag\r
- #define xTaskGetApplicationTaskTag MPU_xTaskGetApplicationTaskTag\r
- #define xTaskCallApplicationTaskHook MPU_xTaskCallApplicationTaskHook\r
- #define uxTaskGetStackHighWaterMark MPU_uxTaskGetStackHighWaterMark\r
- #define xTaskGetCurrentTaskHandle MPU_xTaskGetCurrentTaskHandle\r
- #define xTaskGetSchedulerState MPU_xTaskGetSchedulerState\r
- #define xTaskGetIdleTaskHandle MPU_xTaskGetIdleTaskHandle\r
- #define uxTaskGetSystemState MPU_uxTaskGetSystemState\r
-\r
- #define xQueueGenericCreate MPU_xQueueGenericCreate\r
- #define xQueueCreateMutex MPU_xQueueCreateMutex\r
- #define xQueueGiveMutexRecursive MPU_xQueueGiveMutexRecursive\r
- #define xQueueTakeMutexRecursive MPU_xQueueTakeMutexRecursive\r
- #define xQueueCreateCountingSemaphore MPU_xQueueCreateCountingSemaphore\r
- #define xQueueGenericSend MPU_xQueueGenericSend\r
- #define xQueueAltGenericSend MPU_xQueueAltGenericSend\r
- #define xQueueAltGenericReceive MPU_xQueueAltGenericReceive\r
- #define xQueueGenericReceive MPU_xQueueGenericReceive\r
- #define uxQueueMessagesWaiting MPU_uxQueueMessagesWaiting\r
- #define vQueueDelete MPU_vQueueDelete\r
- #define xQueueGenericReset MPU_xQueueGenericReset\r
- #define xQueueCreateSet MPU_xQueueCreateSet\r
- #define xQueueSelectFromSet MPU_xQueueSelectFromSet\r
- #define xQueueAddToSet MPU_xQueueAddToSet\r
- #define xQueueRemoveFromSet MPU_xQueueRemoveFromSet\r
- #define xQueuePeekFromISR MPU_xQueuePeekFromISR\r
- #define xQueueGetMutexHolder MPU_xQueueGetMutexHolder\r
-\r
- #define pvPortMalloc MPU_pvPortMalloc\r
- #define vPortFree MPU_vPortFree\r
- #define xPortGetFreeHeapSize MPU_xPortGetFreeHeapSize\r
- #define vPortInitialiseBlocks MPU_vPortInitialiseBlocks\r
-\r
- #if configQUEUE_REGISTRY_SIZE > 0\r
- #define vQueueAddToRegistry MPU_vQueueAddToRegistry\r
- #define vQueueUnregisterQueue MPU_vQueueUnregisterQueue\r
+ /*\r
+ * Map standard (non MPU) API functions to equivalents that start\r
+ * "MPU_". This will cause the application code to call the MPU_\r
+ * version, which wraps the non-MPU version with privilege promoting\r
+ * then demoting code, so the kernel code always runs will full\r
+ * privileges.\r
+ */\r
+\r
+ /* Map standard tasks.h API functions to the MPU equivalents. */\r
+ #define xTaskCreate MPU_xTaskCreate\r
+ #define xTaskCreateStatic MPU_xTaskCreateStatic\r
+ #define xTaskCreateRestricted MPU_xTaskCreateRestricted\r
+ #define vTaskAllocateMPURegions MPU_vTaskAllocateMPURegions\r
+ #define vTaskDelete MPU_vTaskDelete\r
+ #define vTaskDelay MPU_vTaskDelay\r
+ #define vTaskDelayUntil MPU_vTaskDelayUntil\r
+ #define xTaskAbortDelay MPU_xTaskAbortDelay\r
+ #define uxTaskPriorityGet MPU_uxTaskPriorityGet\r
+ #define eTaskGetState MPU_eTaskGetState\r
+ #define vTaskGetInfo MPU_vTaskGetInfo\r
+ #define vTaskPrioritySet MPU_vTaskPrioritySet\r
+ #define vTaskSuspend MPU_vTaskSuspend\r
+ #define vTaskResume MPU_vTaskResume\r
+ #define vTaskSuspendAll MPU_vTaskSuspendAll\r
+ #define xTaskResumeAll MPU_xTaskResumeAll\r
+ #define xTaskGetTickCount MPU_xTaskGetTickCount\r
+ #define uxTaskGetNumberOfTasks MPU_uxTaskGetNumberOfTasks\r
+ #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
+ #define pvTaskGetThreadLocalStoragePointer MPU_pvTaskGetThreadLocalStoragePointer\r
+ #define xTaskCallApplicationTaskHook MPU_xTaskCallApplicationTaskHook\r
+ #define xTaskGetIdleTaskHandle MPU_xTaskGetIdleTaskHandle\r
+ #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
+ #define xTaskCheckForTimeOut MPU_xTaskCheckForTimeOut\r
+ #define xTaskGetSchedulerState MPU_xTaskGetSchedulerState\r
+\r
+ /* Map standard queue.h API functions to the MPU equivalents. */\r
+ #define xQueueGenericSend MPU_xQueueGenericSend\r
+ #define xQueueReceive MPU_xQueueReceive\r
+ #define xQueuePeek MPU_xQueuePeek\r
+ #define xQueueSemaphoreTake MPU_xQueueSemaphoreTake\r
+ #define uxQueueMessagesWaiting MPU_uxQueueMessagesWaiting\r
+ #define uxQueueSpacesAvailable MPU_uxQueueSpacesAvailable\r
+ #define vQueueDelete MPU_vQueueDelete\r
+ #define xQueueCreateMutex MPU_xQueueCreateMutex\r
+ #define xQueueCreateMutexStatic MPU_xQueueCreateMutexStatic\r
+ #define xQueueCreateCountingSemaphore MPU_xQueueCreateCountingSemaphore\r
+ #define xQueueCreateCountingSemaphoreStatic MPU_xQueueCreateCountingSemaphoreStatic\r
+ #define xQueueGetMutexHolder MPU_xQueueGetMutexHolder\r
+ #define xQueueTakeMutexRecursive MPU_xQueueTakeMutexRecursive\r
+ #define xQueueGiveMutexRecursive MPU_xQueueGiveMutexRecursive\r
+ #define xQueueGenericCreate MPU_xQueueGenericCreate\r
+ #define xQueueGenericCreateStatic MPU_xQueueGenericCreateStatic\r
+ #define xQueueCreateSet MPU_xQueueCreateSet\r
+ #define xQueueAddToSet MPU_xQueueAddToSet\r
+ #define xQueueRemoveFromSet MPU_xQueueRemoveFromSet\r
+ #define xQueueSelectFromSet MPU_xQueueSelectFromSet\r
+ #define xQueueGenericReset MPU_xQueueGenericReset\r
+\r
+ #if( configQUEUE_REGISTRY_SIZE > 0 )\r
+ #define vQueueAddToRegistry MPU_vQueueAddToRegistry\r
+ #define vQueueUnregisterQueue MPU_vQueueUnregisterQueue\r
+ #define pcQueueGetName MPU_pcQueueGetName\r