2 FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd.
\r
5 VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
\r
7 This file is part of the FreeRTOS distribution.
\r
9 FreeRTOS is free software; you can redistribute it and/or modify it under
\r
10 the terms of the GNU General Public License (version 2) as published by the
\r
11 Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.
\r
13 ***************************************************************************
\r
14 >>! NOTE: The modification to the GPL is included to allow you to !<<
\r
15 >>! distribute a combined work that includes FreeRTOS without being !<<
\r
16 >>! obliged to provide the source code for proprietary components !<<
\r
17 >>! outside of the FreeRTOS kernel. !<<
\r
18 ***************************************************************************
\r
20 FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
\r
21 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
\r
22 FOR A PARTICULAR PURPOSE. Full license text is available on the following
\r
23 link: http://www.freertos.org/a00114.html
\r
25 ***************************************************************************
\r
27 * FreeRTOS provides completely free yet professionally developed, *
\r
28 * robust, strictly quality controlled, supported, and cross *
\r
29 * platform software that is more than just the market leader, it *
\r
30 * is the industry's de facto standard. *
\r
32 * Help yourself get started quickly while simultaneously helping *
\r
33 * to support the FreeRTOS project by purchasing a FreeRTOS *
\r
34 * tutorial book, reference manual, or both: *
\r
35 * http://www.FreeRTOS.org/Documentation *
\r
37 ***************************************************************************
\r
39 http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading
\r
40 the FAQ page "My application does not run, what could be wrong?". Have you
\r
41 defined configASSERT()?
\r
43 http://www.FreeRTOS.org/support - In return for receiving this top quality
\r
44 embedded software for free we request you assist our global community by
\r
45 participating in the support forum.
\r
47 http://www.FreeRTOS.org/training - Investing in training allows your team to
\r
48 be as productive as possible as early as possible. Now you can receive
\r
49 FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers
\r
50 Ltd, and the world's leading authority on the world's leading RTOS.
\r
52 http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
\r
53 including FreeRTOS+Trace - an indispensable productivity tool, a DOS
\r
54 compatible FAT file system, and our tiny thread aware UDP/IP stack.
\r
56 http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.
\r
57 Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.
\r
59 http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High
\r
60 Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS
\r
61 licenses offer ticketed support, indemnification and commercial middleware.
\r
63 http://www.SafeRTOS.com - High Integrity Systems also provide a safety
\r
64 engineered and independently SIL3 certified version for use in safety and
\r
65 mission critical applications that require provable dependability.
\r
71 * Implementation of the wrapper functions used to raise the processor privilege
\r
72 * before calling a standard FreeRTOS API function.
\r
75 /* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining
\r
76 all the API functions to use the MPU wrappers. That should only be done when
\r
77 task.h is included from an application file. */
\r
78 #define MPU_WRAPPERS_INCLUDED_FROM_API_FILE
\r
80 /* Scheduler includes. */
\r
81 #include "FreeRTOS.h"
\r
85 #include "event_groups.h"
\r
86 #include "mpu_prototypes.h"
\r
88 #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
\r
91 * Checks to see if being called from the context of an unprivileged task, and
\r
92 * if so raises the privilege level and returns false - otherwise does nothing
\r
93 * other than return true.
\r
95 extern BaseType_t xPortRaisePrivilege( void );
\r
97 /*-----------------------------------------------------------*/
\r
99 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
100 BaseType_t MPU_xTaskCreateRestricted( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask )
\r
102 BaseType_t xReturn;
\r
103 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
105 xReturn = xTaskCreateRestricted( pxTaskDefinition, pxCreatedTask );
\r
106 vPortResetPrivilege( xRunningPrivileged );
\r
109 #endif /* conifgSUPPORT_DYNAMIC_ALLOCATION */
\r
110 /*-----------------------------------------------------------*/
\r
112 #if( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
113 BaseType_t MPU_xTaskCreateRestrictedStatic( const TaskParameters_t * const pxTaskDefinition, TaskHandle_t *pxCreatedTask )
\r
115 BaseType_t xReturn;
\r
116 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
118 xReturn = xTaskCreateRestrictedStatic( pxTaskDefinition, pxCreatedTask );
\r
119 vPortResetPrivilege( xRunningPrivileged );
\r
122 #endif /* conifgSUPPORT_DYNAMIC_ALLOCATION */
\r
123 /*-----------------------------------------------------------*/
\r
125 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
126 BaseType_t MPU_xTaskCreate( TaskFunction_t pvTaskCode, const char * const pcName, uint16_t usStackDepth, void *pvParameters, UBaseType_t uxPriority, TaskHandle_t *pxCreatedTask )
\r
128 BaseType_t xReturn;
\r
129 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
131 xReturn = xTaskCreate( pvTaskCode, pcName, usStackDepth, pvParameters, uxPriority, pxCreatedTask );
\r
132 vPortResetPrivilege( xRunningPrivileged );
\r
135 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
136 /*-----------------------------------------------------------*/
\r
138 #if( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
139 TaskHandle_t MPU_xTaskCreateStatic( TaskFunction_t pxTaskCode, const char * const pcName, const uint32_t ulStackDepth, void * const pvParameters, UBaseType_t uxPriority, StackType_t * const puxStackBuffer, StaticTask_t * const pxTaskBuffer )
\r
141 TaskHandle_t xReturn;
\r
142 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
144 xReturn = xTaskCreateStatic( pxTaskCode, pcName, ulStackDepth, pvParameters, uxPriority, puxStackBuffer, pxTaskBuffer );
\r
145 vPortResetPrivilege( xRunningPrivileged );
\r
148 #endif /* configSUPPORT_STATIC_ALLOCATION */
\r
149 /*-----------------------------------------------------------*/
\r
151 void MPU_vTaskAllocateMPURegions( TaskHandle_t xTask, const MemoryRegion_t * const xRegions )
\r
153 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
155 vTaskAllocateMPURegions( xTask, xRegions );
\r
156 vPortResetPrivilege( xRunningPrivileged );
\r
158 /*-----------------------------------------------------------*/
\r
160 #if ( INCLUDE_vTaskDelete == 1 )
\r
161 void MPU_vTaskDelete( TaskHandle_t pxTaskToDelete )
\r
163 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
165 vTaskDelete( pxTaskToDelete );
\r
166 vPortResetPrivilege( xRunningPrivileged );
\r
169 /*-----------------------------------------------------------*/
\r
171 #if ( INCLUDE_vTaskDelayUntil == 1 )
\r
172 void MPU_vTaskDelayUntil( TickType_t * const pxPreviousWakeTime, TickType_t xTimeIncrement )
\r
174 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
176 vTaskDelayUntil( pxPreviousWakeTime, xTimeIncrement );
\r
177 vPortResetPrivilege( xRunningPrivileged );
\r
180 /*-----------------------------------------------------------*/
\r
182 #if ( INCLUDE_xTaskAbortDelay == 1 )
\r
183 BaseType_t MPU_xTaskAbortDelay( TaskHandle_t xTask )
\r
185 BaseType_t xReturn;
\r
186 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
188 xReturn = xTaskAbortDelay( xTask );
\r
189 vPortResetPrivilege( xRunningPrivileged );
\r
193 /*-----------------------------------------------------------*/
\r
195 #if ( INCLUDE_vTaskDelay == 1 )
\r
196 void MPU_vTaskDelay( TickType_t xTicksToDelay )
\r
198 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
200 vTaskDelay( xTicksToDelay );
\r
201 vPortResetPrivilege( xRunningPrivileged );
\r
204 /*-----------------------------------------------------------*/
\r
206 #if ( INCLUDE_uxTaskPriorityGet == 1 )
\r
207 UBaseType_t MPU_uxTaskPriorityGet( TaskHandle_t pxTask )
\r
209 UBaseType_t uxReturn;
\r
210 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
212 uxReturn = uxTaskPriorityGet( pxTask );
\r
213 vPortResetPrivilege( xRunningPrivileged );
\r
217 /*-----------------------------------------------------------*/
\r
219 #if ( INCLUDE_vTaskPrioritySet == 1 )
\r
220 void MPU_vTaskPrioritySet( TaskHandle_t pxTask, UBaseType_t uxNewPriority )
\r
222 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
224 vTaskPrioritySet( pxTask, uxNewPriority );
\r
225 vPortResetPrivilege( xRunningPrivileged );
\r
228 /*-----------------------------------------------------------*/
\r
230 #if ( INCLUDE_eTaskGetState == 1 )
\r
231 eTaskState MPU_eTaskGetState( TaskHandle_t pxTask )
\r
233 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
234 eTaskState eReturn;
\r
236 eReturn = eTaskGetState( pxTask );
\r
237 vPortResetPrivilege( xRunningPrivileged );
\r
241 /*-----------------------------------------------------------*/
\r
243 #if( configUSE_TRACE_FACILITY == 1 )
\r
244 void MPU_vTaskGetInfo( TaskHandle_t xTask, TaskStatus_t *pxTaskStatus, BaseType_t xGetFreeStackSpace, eTaskState eState )
\r
246 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
248 vTaskGetInfo( xTask, pxTaskStatus, xGetFreeStackSpace, eState );
\r
249 vPortResetPrivilege( xRunningPrivileged );
\r
252 /*-----------------------------------------------------------*/
\r
254 #if ( INCLUDE_xTaskGetIdleTaskHandle == 1 )
\r
255 TaskHandle_t MPU_xTaskGetIdleTaskHandle( void )
\r
257 TaskHandle_t xReturn;
\r
258 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
260 xReturn = xTaskGetIdleTaskHandle();
\r
261 vPortResetPrivilege( xRunningPrivileged );
\r
265 /*-----------------------------------------------------------*/
\r
267 #if ( INCLUDE_vTaskSuspend == 1 )
\r
268 void MPU_vTaskSuspend( TaskHandle_t pxTaskToSuspend )
\r
270 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
272 vTaskSuspend( pxTaskToSuspend );
\r
273 vPortResetPrivilege( xRunningPrivileged );
\r
276 /*-----------------------------------------------------------*/
\r
278 #if ( INCLUDE_vTaskSuspend == 1 )
\r
279 void MPU_vTaskResume( TaskHandle_t pxTaskToResume )
\r
281 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
283 vTaskResume( pxTaskToResume );
\r
284 vPortResetPrivilege( xRunningPrivileged );
\r
287 /*-----------------------------------------------------------*/
\r
289 void MPU_vTaskSuspendAll( void )
\r
291 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
294 vPortResetPrivilege( xRunningPrivileged );
\r
296 /*-----------------------------------------------------------*/
\r
298 BaseType_t MPU_xTaskResumeAll( void )
\r
300 BaseType_t xReturn;
\r
301 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
303 xReturn = xTaskResumeAll();
\r
304 vPortResetPrivilege( xRunningPrivileged );
\r
307 /*-----------------------------------------------------------*/
\r
309 TickType_t MPU_xTaskGetTickCount( void )
\r
311 TickType_t xReturn;
\r
312 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
314 xReturn = xTaskGetTickCount();
\r
315 vPortResetPrivilege( xRunningPrivileged );
\r
318 /*-----------------------------------------------------------*/
\r
320 UBaseType_t MPU_uxTaskGetNumberOfTasks( void )
\r
322 UBaseType_t uxReturn;
\r
323 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
325 uxReturn = uxTaskGetNumberOfTasks();
\r
326 vPortResetPrivilege( xRunningPrivileged );
\r
329 /*-----------------------------------------------------------*/
\r
331 char * MPU_pcTaskGetName( TaskHandle_t xTaskToQuery )
\r
334 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
336 pcReturn = pcTaskGetName( xTaskToQuery );
\r
337 vPortResetPrivilege( xRunningPrivileged );
\r
340 /*-----------------------------------------------------------*/
\r
342 #if ( INCLUDE_xTaskGetHandle == 1 )
\r
343 TaskHandle_t MPU_xTaskGetHandle( const char *pcNameToQuery )
\r
345 TaskHandle_t xReturn;
\r
346 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
348 xReturn = xTaskGetHandle( pcNameToQuery );
\r
349 vPortResetPrivilege( xRunningPrivileged );
\r
353 /*-----------------------------------------------------------*/
\r
355 #if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
356 void MPU_vTaskList( char *pcWriteBuffer )
\r
358 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
360 vTaskList( pcWriteBuffer );
\r
361 vPortResetPrivilege( xRunningPrivileged );
\r
364 /*-----------------------------------------------------------*/
\r
366 #if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
367 void MPU_vTaskGetRunTimeStats( char *pcWriteBuffer )
\r
369 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
371 vTaskGetRunTimeStats( pcWriteBuffer );
\r
372 vPortResetPrivilege( xRunningPrivileged );
\r
375 /*-----------------------------------------------------------*/
\r
377 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
\r
378 void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask, TaskHookFunction_t pxTagValue )
\r
380 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
382 vTaskSetApplicationTaskTag( xTask, pxTagValue );
\r
383 vPortResetPrivilege( xRunningPrivileged );
\r
386 /*-----------------------------------------------------------*/
\r
388 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
\r
389 TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask )
\r
391 TaskHookFunction_t xReturn;
\r
392 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
394 xReturn = xTaskGetApplicationTaskTag( xTask );
\r
395 vPortResetPrivilege( xRunningPrivileged );
\r
399 /*-----------------------------------------------------------*/
\r
401 #if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 )
\r
402 void MPU_vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet, BaseType_t xIndex, void *pvValue )
\r
404 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
406 vTaskSetThreadLocalStoragePointer( xTaskToSet, xIndex, pvValue );
\r
407 vPortResetPrivilege( xRunningPrivileged );
\r
410 /*-----------------------------------------------------------*/
\r
412 #if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 )
\r
413 void *MPU_pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery, BaseType_t xIndex )
\r
416 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
418 pvReturn = pvTaskGetThreadLocalStoragePointer( xTaskToQuery, xIndex );
\r
419 vPortResetPrivilege( xRunningPrivileged );
\r
423 /*-----------------------------------------------------------*/
\r
425 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
\r
426 BaseType_t MPU_xTaskCallApplicationTaskHook( TaskHandle_t xTask, void *pvParameter )
\r
428 BaseType_t xReturn;
\r
429 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
431 xReturn = xTaskCallApplicationTaskHook( xTask, pvParameter );
\r
432 vPortResetPrivilege( xRunningPrivileged );
\r
436 /*-----------------------------------------------------------*/
\r
438 #if ( configUSE_TRACE_FACILITY == 1 )
\r
439 UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t *pxTaskStatusArray, UBaseType_t uxArraySize, uint32_t *pulTotalRunTime )
\r
441 UBaseType_t uxReturn;
\r
442 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
444 uxReturn = uxTaskGetSystemState( pxTaskStatusArray, uxArraySize, pulTotalRunTime );
\r
445 vPortResetPrivilege( xRunningPrivileged );
\r
449 /*-----------------------------------------------------------*/
\r
451 #if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 )
\r
452 UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask )
\r
454 UBaseType_t uxReturn;
\r
455 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
457 uxReturn = uxTaskGetStackHighWaterMark( xTask );
\r
458 vPortResetPrivilege( xRunningPrivileged );
\r
462 /*-----------------------------------------------------------*/
\r
464 #if ( INCLUDE_xTaskGetCurrentTaskHandle == 1 )
\r
465 TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void )
\r
467 TaskHandle_t xReturn;
\r
468 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
470 xReturn = xTaskGetCurrentTaskHandle();
\r
471 vPortResetPrivilege( xRunningPrivileged );
\r
475 /*-----------------------------------------------------------*/
\r
477 #if ( INCLUDE_xTaskGetSchedulerState == 1 )
\r
478 BaseType_t MPU_xTaskGetSchedulerState( void )
\r
480 BaseType_t xReturn;
\r
481 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
483 xReturn = xTaskGetSchedulerState();
\r
484 vPortResetPrivilege( xRunningPrivileged );
\r
488 /*-----------------------------------------------------------*/
\r
490 void MPU_vTaskSetTimeOutState( TimeOut_t * const pxTimeOut )
\r
492 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
494 vTaskSetTimeOutState( pxTimeOut );
\r
495 vPortResetPrivilege( xRunningPrivileged );
\r
497 /*-----------------------------------------------------------*/
\r
499 BaseType_t MPU_xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut, TickType_t * const pxTicksToWait )
\r
501 BaseType_t xReturn;
\r
502 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
504 xReturn = xTaskCheckForTimeOut( pxTimeOut, pxTicksToWait );
\r
505 vPortResetPrivilege( xRunningPrivileged );
\r
508 /*-----------------------------------------------------------*/
\r
510 #if( configUSE_TASK_NOTIFICATIONS == 1 )
\r
511 BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t *pulPreviousNotificationValue )
\r
513 BaseType_t xReturn;
\r
514 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
516 xReturn = xTaskGenericNotify( xTaskToNotify, ulValue, eAction, pulPreviousNotificationValue );
\r
517 vPortResetPrivilege( xRunningPrivileged );
\r
521 /*-----------------------------------------------------------*/
\r
523 #if( configUSE_TASK_NOTIFICATIONS == 1 )
\r
524 BaseType_t MPU_xTaskNotifyWait( uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t *pulNotificationValue, TickType_t xTicksToWait )
\r
526 BaseType_t xReturn;
\r
527 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
529 xReturn = xTaskNotifyWait( ulBitsToClearOnEntry, ulBitsToClearOnExit, pulNotificationValue, xTicksToWait );
\r
530 vPortResetPrivilege( xRunningPrivileged );
\r
534 /*-----------------------------------------------------------*/
\r
536 #if( configUSE_TASK_NOTIFICATIONS == 1 )
\r
537 uint32_t MPU_ulTaskNotifyTake( BaseType_t xClearCountOnExit, TickType_t xTicksToWait )
\r
540 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
542 ulReturn = ulTaskNotifyTake( xClearCountOnExit, xTicksToWait );
\r
543 vPortResetPrivilege( xRunningPrivileged );
\r
547 /*-----------------------------------------------------------*/
\r
549 #if( configUSE_TASK_NOTIFICATIONS == 1 )
\r
550 BaseType_t MPU_xTaskNotifyStateClear( TaskHandle_t xTask )
\r
552 BaseType_t xReturn;
\r
553 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
555 xReturn = xTaskNotifyStateClear( xTask );
\r
556 vPortResetPrivilege( xRunningPrivileged );
\r
560 /*-----------------------------------------------------------*/
\r
562 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
563 QueueHandle_t MPU_xQueueGenericCreate( UBaseType_t uxQueueLength, UBaseType_t uxItemSize, uint8_t ucQueueType )
\r
565 QueueHandle_t xReturn;
\r
566 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
568 xReturn = xQueueGenericCreate( uxQueueLength, uxItemSize, ucQueueType );
\r
569 vPortResetPrivilege( xRunningPrivileged );
\r
573 /*-----------------------------------------------------------*/
\r
575 #if( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
576 QueueHandle_t MPU_xQueueGenericCreateStatic( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, uint8_t *pucQueueStorage, StaticQueue_t *pxStaticQueue, const uint8_t ucQueueType )
\r
578 QueueHandle_t xReturn;
\r
579 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
581 xReturn = xQueueGenericCreateStatic( uxQueueLength, uxItemSize, pucQueueStorage, pxStaticQueue, ucQueueType );
\r
582 vPortResetPrivilege( xRunningPrivileged );
\r
586 /*-----------------------------------------------------------*/
\r
588 BaseType_t MPU_xQueueGenericReset( QueueHandle_t pxQueue, BaseType_t xNewQueue )
\r
590 BaseType_t xReturn;
\r
591 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
593 xReturn = xQueueGenericReset( pxQueue, xNewQueue );
\r
594 vPortResetPrivilege( xRunningPrivileged );
\r
597 /*-----------------------------------------------------------*/
\r
599 BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, BaseType_t xCopyPosition )
\r
601 BaseType_t xReturn;
\r
602 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
604 xReturn = xQueueGenericSend( xQueue, pvItemToQueue, xTicksToWait, xCopyPosition );
\r
605 vPortResetPrivilege( xRunningPrivileged );
\r
608 /*-----------------------------------------------------------*/
\r
610 UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t pxQueue )
\r
612 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
613 UBaseType_t uxReturn;
\r
615 uxReturn = uxQueueMessagesWaiting( pxQueue );
\r
616 vPortResetPrivilege( xRunningPrivileged );
\r
619 /*-----------------------------------------------------------*/
\r
621 UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue )
\r
623 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
624 UBaseType_t uxReturn;
\r
626 uxReturn = uxQueueSpacesAvailable( xQueue );
\r
627 vPortResetPrivilege( xRunningPrivileged );
\r
630 /*-----------------------------------------------------------*/
\r
632 BaseType_t MPU_xQueueReceive( QueueHandle_t pxQueue, void * const pvBuffer, TickType_t xTicksToWait )
\r
634 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
635 BaseType_t xReturn;
\r
637 xReturn = xQueueReceive( pxQueue, pvBuffer, xTicksToWait );
\r
638 vPortResetPrivilege( xRunningPrivileged );
\r
641 /*-----------------------------------------------------------*/
\r
643 BaseType_t MPU_xQueuePeek( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait )
\r
645 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
646 BaseType_t xReturn;
\r
648 xReturn = xQueuePeek( xQueue, pvBuffer, xTicksToWait );
\r
649 vPortResetPrivilege( xRunningPrivileged );
\r
652 /*-----------------------------------------------------------*/
\r
654 BaseType_t MPU_xQueueSemaphoreTake( QueueHandle_t xQueue, TickType_t xTicksToWait )
\r
656 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
657 BaseType_t xReturn;
\r
659 xReturn = xQueueSemaphoreTake( xQueue, xTicksToWait );
\r
660 vPortResetPrivilege( xRunningPrivileged );
\r
663 /*-----------------------------------------------------------*/
\r
665 BaseType_t MPU_xQueuePeekFromISR( QueueHandle_t pxQueue, void * const pvBuffer )
\r
667 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
668 BaseType_t xReturn;
\r
670 xReturn = xQueuePeekFromISR( pxQueue, pvBuffer );
\r
671 vPortResetPrivilege( xRunningPrivileged );
\r
674 /*-----------------------------------------------------------*/
\r
676 void* MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore )
\r
678 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
681 xReturn = ( void * ) xQueueGetMutexHolder( xSemaphore );
\r
682 vPortResetPrivilege( xRunningPrivileged );
\r
685 /*-----------------------------------------------------------*/
\r
687 #if( ( configUSE_MUTEXES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
688 QueueHandle_t MPU_xQueueCreateMutex( const uint8_t ucQueueType )
\r
690 QueueHandle_t xReturn;
\r
691 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
693 xReturn = xQueueCreateMutex( ucQueueType );
\r
694 vPortResetPrivilege( xRunningPrivileged );
\r
698 /*-----------------------------------------------------------*/
\r
700 #if( ( configUSE_MUTEXES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) )
\r
701 QueueHandle_t MPU_xQueueCreateMutexStatic( const uint8_t ucQueueType, StaticQueue_t *pxStaticQueue )
\r
703 QueueHandle_t xReturn;
\r
704 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
706 xReturn = xQueueCreateMutexStatic( ucQueueType, pxStaticQueue );
\r
707 vPortResetPrivilege( xRunningPrivileged );
\r
711 /*-----------------------------------------------------------*/
\r
713 #if( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
714 QueueHandle_t MPU_xQueueCreateCountingSemaphore( UBaseType_t uxCountValue, UBaseType_t uxInitialCount )
\r
716 QueueHandle_t xReturn;
\r
717 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
719 xReturn = xQueueCreateCountingSemaphore( uxCountValue, uxInitialCount );
\r
720 vPortResetPrivilege( xRunningPrivileged );
\r
724 /*-----------------------------------------------------------*/
\r
726 #if( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) )
\r
728 QueueHandle_t MPU_xQueueCreateCountingSemaphoreStatic( const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount, StaticQueue_t *pxStaticQueue )
\r
730 QueueHandle_t xReturn;
\r
731 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
733 xReturn = xQueueCreateCountingSemaphoreStatic( uxMaxCount, uxInitialCount, pxStaticQueue );
\r
734 vPortResetPrivilege( xRunningPrivileged );
\r
738 /*-----------------------------------------------------------*/
\r
740 #if ( configUSE_MUTEXES == 1 )
\r
741 BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex, TickType_t xBlockTime )
\r
743 BaseType_t xReturn;
\r
744 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
746 xReturn = xQueueTakeMutexRecursive( xMutex, xBlockTime );
\r
747 vPortResetPrivilege( xRunningPrivileged );
\r
751 /*-----------------------------------------------------------*/
\r
753 #if ( configUSE_MUTEXES == 1 )
\r
754 BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t xMutex )
\r
756 BaseType_t xReturn;
\r
757 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
759 xReturn = xQueueGiveMutexRecursive( xMutex );
\r
760 vPortResetPrivilege( xRunningPrivileged );
\r
764 /*-----------------------------------------------------------*/
\r
766 #if( ( configUSE_QUEUE_SETS == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
\r
767 QueueSetHandle_t MPU_xQueueCreateSet( UBaseType_t uxEventQueueLength )
\r
769 QueueSetHandle_t xReturn;
\r
770 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
772 xReturn = xQueueCreateSet( uxEventQueueLength );
\r
773 vPortResetPrivilege( xRunningPrivileged );
\r
777 /*-----------------------------------------------------------*/
\r
779 #if ( configUSE_QUEUE_SETS == 1 )
\r
780 QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet, TickType_t xBlockTimeTicks )
\r
782 QueueSetMemberHandle_t xReturn;
\r
783 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
785 xReturn = xQueueSelectFromSet( xQueueSet, xBlockTimeTicks );
\r
786 vPortResetPrivilege( xRunningPrivileged );
\r
790 /*-----------------------------------------------------------*/
\r
792 #if ( configUSE_QUEUE_SETS == 1 )
\r
793 BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet )
\r
795 BaseType_t xReturn;
\r
796 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
798 xReturn = xQueueAddToSet( xQueueOrSemaphore, xQueueSet );
\r
799 vPortResetPrivilege( xRunningPrivileged );
\r
803 /*-----------------------------------------------------------*/
\r
805 #if ( configUSE_QUEUE_SETS == 1 )
\r
806 BaseType_t MPU_xQueueRemoveFromSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet )
\r
808 BaseType_t xReturn;
\r
809 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
811 xReturn = xQueueRemoveFromSet( xQueueOrSemaphore, xQueueSet );
\r
812 vPortResetPrivilege( xRunningPrivileged );
\r
816 /*-----------------------------------------------------------*/
\r
818 #if configQUEUE_REGISTRY_SIZE > 0
\r
819 void MPU_vQueueAddToRegistry( QueueHandle_t xQueue, const char *pcName )
\r
821 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
823 vQueueAddToRegistry( xQueue, pcName );
\r
825 vPortResetPrivilege( xRunningPrivileged );
\r
828 /*-----------------------------------------------------------*/
\r
830 #if configQUEUE_REGISTRY_SIZE > 0
\r
831 void MPU_vQueueUnregisterQueue( QueueHandle_t xQueue )
\r
833 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
835 vQueueUnregisterQueue( xQueue );
\r
837 vPortResetPrivilege( xRunningPrivileged );
\r
840 /*-----------------------------------------------------------*/
\r
842 #if configQUEUE_REGISTRY_SIZE > 0
\r
843 const char *MPU_pcQueueGetName( QueueHandle_t xQueue )
\r
845 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
846 const char *pcReturn;
\r
848 pcReturn = pcQueueGetName( xQueue );
\r
850 vPortResetPrivilege( xRunningPrivileged );
\r
854 /*-----------------------------------------------------------*/
\r
856 void MPU_vQueueDelete( QueueHandle_t xQueue )
\r
858 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
860 vQueueDelete( xQueue );
\r
862 vPortResetPrivilege( xRunningPrivileged );
\r
864 /*-----------------------------------------------------------*/
\r
866 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
867 void *MPU_pvPortMalloc( size_t xSize )
\r
870 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
872 pvReturn = pvPortMalloc( xSize );
\r
874 vPortResetPrivilege( xRunningPrivileged );
\r
878 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
879 /*-----------------------------------------------------------*/
\r
881 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
882 void MPU_vPortFree( void *pv )
\r
884 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
888 vPortResetPrivilege( xRunningPrivileged );
\r
890 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
891 /*-----------------------------------------------------------*/
\r
893 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
894 void MPU_vPortInitialiseBlocks( void )
\r
896 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
898 vPortInitialiseBlocks();
\r
900 vPortResetPrivilege( xRunningPrivileged );
\r
902 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
903 /*-----------------------------------------------------------*/
\r
905 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
906 size_t MPU_xPortGetFreeHeapSize( void )
\r
909 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
911 xReturn = xPortGetFreeHeapSize();
\r
913 vPortResetPrivilege( xRunningPrivileged );
\r
917 #endif /* configSUPPORT_DYNAMIC_ALLOCATION */
\r
918 /*-----------------------------------------------------------*/
\r
920 #if( ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) )
\r
921 TimerHandle_t MPU_xTimerCreate( const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, TimerCallbackFunction_t pxCallbackFunction )
\r
923 TimerHandle_t xReturn;
\r
924 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
926 xReturn = xTimerCreate( pcTimerName, xTimerPeriodInTicks, uxAutoReload, pvTimerID, pxCallbackFunction );
\r
927 vPortResetPrivilege( xRunningPrivileged );
\r
932 /*-----------------------------------------------------------*/
\r
934 #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configUSE_TIMERS == 1 ) )
\r
935 TimerHandle_t MPU_xTimerCreateStatic( const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, TimerCallbackFunction_t pxCallbackFunction, StaticTimer_t *pxTimerBuffer )
\r
937 TimerHandle_t xReturn;
\r
938 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
940 xReturn = xTimerCreateStatic( pcTimerName, xTimerPeriodInTicks, uxAutoReload, pvTimerID, pxCallbackFunction, pxTimerBuffer );
\r
941 vPortResetPrivilege( xRunningPrivileged );
\r
946 /*-----------------------------------------------------------*/
\r
948 #if( configUSE_TIMERS == 1 )
\r
949 void *MPU_pvTimerGetTimerID( const TimerHandle_t xTimer )
\r
952 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
954 pvReturn = pvTimerGetTimerID( xTimer );
\r
955 vPortResetPrivilege( xRunningPrivileged );
\r
960 /*-----------------------------------------------------------*/
\r
962 #if( configUSE_TIMERS == 1 )
\r
963 void MPU_vTimerSetTimerID( TimerHandle_t xTimer, void *pvNewID )
\r
965 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
967 vTimerSetTimerID( xTimer, pvNewID );
\r
968 vPortResetPrivilege( xRunningPrivileged );
\r
971 /*-----------------------------------------------------------*/
\r
973 #if( configUSE_TIMERS == 1 )
\r
974 BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer )
\r
976 BaseType_t xReturn;
\r
977 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
979 xReturn = xTimerIsTimerActive( xTimer );
\r
980 vPortResetPrivilege( xRunningPrivileged );
\r
985 /*-----------------------------------------------------------*/
\r
987 #if( configUSE_TIMERS == 1 )
\r
988 TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void )
\r
990 TaskHandle_t xReturn;
\r
991 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
993 xReturn = xTimerGetTimerDaemonTaskHandle();
\r
994 vPortResetPrivilege( xRunningPrivileged );
\r
999 /*-----------------------------------------------------------*/
\r
1001 #if( ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) )
\r
1002 BaseType_t MPU_xTimerPendFunctionCall( PendedFunction_t xFunctionToPend, void *pvParameter1, uint32_t ulParameter2, TickType_t xTicksToWait )
\r
1004 BaseType_t xReturn;
\r
1005 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1007 xReturn = xTimerPendFunctionCall( xFunctionToPend, pvParameter1, ulParameter2, xTicksToWait );
\r
1008 vPortResetPrivilege( xRunningPrivileged );
\r
1013 /*-----------------------------------------------------------*/
\r
1015 #if( configUSE_TIMERS == 1 )
\r
1016 const char * MPU_pcTimerGetName( TimerHandle_t xTimer )
\r
1018 const char * pcReturn;
\r
1019 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1021 pcReturn = pcTimerGetName( xTimer );
\r
1022 vPortResetPrivilege( xRunningPrivileged );
\r
1027 /*-----------------------------------------------------------*/
\r
1029 #if( configUSE_TIMERS == 1 )
\r
1030 TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer )
\r
1032 TickType_t xReturn;
\r
1033 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1035 xReturn = xTimerGetPeriod( xTimer );
\r
1036 vPortResetPrivilege( xRunningPrivileged );
\r
1041 /*-----------------------------------------------------------*/
\r
1043 #if( configUSE_TIMERS == 1 )
\r
1044 TickType_t MPU_xTimerGetExpiryTime( TimerHandle_t xTimer )
\r
1046 TickType_t xReturn;
\r
1047 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1049 xReturn = xTimerGetExpiryTime( xTimer );
\r
1050 vPortResetPrivilege( xRunningPrivileged );
\r
1055 /*-----------------------------------------------------------*/
\r
1057 #if( configUSE_TIMERS == 1 )
\r
1058 BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer, const BaseType_t xCommandID, const TickType_t xOptionalValue, BaseType_t * const pxHigherPriorityTaskWoken, const TickType_t xTicksToWait )
\r
1060 BaseType_t xReturn;
\r
1061 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1063 xReturn = xTimerGenericCommand( xTimer, xCommandID, xOptionalValue, pxHigherPriorityTaskWoken, xTicksToWait );
\r
1064 vPortResetPrivilege( xRunningPrivileged );
\r
1069 /*-----------------------------------------------------------*/
\r
1071 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 )
\r
1072 EventGroupHandle_t MPU_xEventGroupCreate( void )
\r
1074 EventGroupHandle_t xReturn;
\r
1075 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1077 xReturn = xEventGroupCreate();
\r
1078 vPortResetPrivilege( xRunningPrivileged );
\r
1083 /*-----------------------------------------------------------*/
\r
1085 #if( configSUPPORT_STATIC_ALLOCATION == 1 )
\r
1086 EventGroupHandle_t MPU_xEventGroupCreateStatic( StaticEventGroup_t *pxEventGroupBuffer )
\r
1088 EventGroupHandle_t xReturn;
\r
1089 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1091 xReturn = xEventGroupCreateStatic( pxEventGroupBuffer );
\r
1092 vPortResetPrivilege( xRunningPrivileged );
\r
1097 /*-----------------------------------------------------------*/
\r
1099 EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait )
\r
1101 EventBits_t xReturn;
\r
1102 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1104 xReturn = xEventGroupWaitBits( xEventGroup, uxBitsToWaitFor, xClearOnExit, xWaitForAllBits, xTicksToWait );
\r
1105 vPortResetPrivilege( xRunningPrivileged );
\r
1109 /*-----------------------------------------------------------*/
\r
1111 EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToClear )
\r
1113 EventBits_t xReturn;
\r
1114 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1116 xReturn = xEventGroupClearBits( xEventGroup, uxBitsToClear );
\r
1117 vPortResetPrivilege( xRunningPrivileged );
\r
1121 /*-----------------------------------------------------------*/
\r
1123 EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet )
\r
1125 EventBits_t xReturn;
\r
1126 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1128 xReturn = xEventGroupSetBits( xEventGroup, uxBitsToSet );
\r
1129 vPortResetPrivilege( xRunningPrivileged );
\r
1133 /*-----------------------------------------------------------*/
\r
1135 EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet, const EventBits_t uxBitsToWaitFor, TickType_t xTicksToWait )
\r
1137 EventBits_t xReturn;
\r
1138 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1140 xReturn = xEventGroupSync( xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTicksToWait );
\r
1141 vPortResetPrivilege( xRunningPrivileged );
\r
1145 /*-----------------------------------------------------------*/
\r
1147 void MPU_vEventGroupDelete( EventGroupHandle_t xEventGroup )
\r
1149 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1151 vEventGroupDelete( xEventGroup );
\r
1152 vPortResetPrivilege( xRunningPrivileged );
\r
1154 /*-----------------------------------------------------------*/
\r
1160 /* Functions that the application writer wants to execute in privileged mode
\r
1161 can be defined in application_defined_privileged_functions.h. The functions
\r
1162 must take the same format as those above whereby the privilege state on exit
\r
1163 equals the privilege state on entry. For example:
\r
1165 void MPU_FunctionName( [parameters ] )
\r
1167 BaseType_t xRunningPrivileged = xPortRaisePrivilege();
\r
1169 FunctionName( [parameters ] );
\r
1171 vPortResetPrivilege( xRunningPrivileged );
\r
1175 #if configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS == 1
\r
1176 #include "application_defined_privileged_functions.h"
\r