]> begriffs open source - freertos/blob - include/mpu_prototypes.h
Recently vTaskDelayUntil() was updated to xTaskDelayUntil() because the function...
[freertos] / include / mpu_prototypes.h
1 /*\r
2  * FreeRTOS Kernel V10.4.1\r
3  * Copyright (C) 2020 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\r
4  *\r
5  * Permission is hereby granted, free of charge, to any person obtaining a copy of\r
6  * this software and associated documentation files (the "Software"), to deal in\r
7  * the Software without restriction, including without limitation the rights to\r
8  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r
9  * the Software, and to permit persons to whom the Software is furnished to do so,\r
10  * subject to the following conditions:\r
11  *\r
12  * The above copyright notice and this permission notice shall be included in all\r
13  * copies or substantial portions of the Software.\r
14  *\r
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r
17  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r
18  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
19  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
20  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
21  *\r
22  * https://www.FreeRTOS.org\r
23  * https://github.com/FreeRTOS\r
24  *\r
25  */\r
26 \r
27 /*\r
28  * When the MPU is used the standard (non MPU) API functions are mapped to\r
29  * equivalents that start "MPU_", the prototypes for which are defined in this\r
30  * header files.  This will cause the application code to call the MPU_ version\r
31  * which wraps the non-MPU version with privilege promoting then demoting code,\r
32  * so the kernel code always runs will full privileges.\r
33  */\r
34 \r
35 \r
36 #ifndef MPU_PROTOTYPES_H\r
37 #define MPU_PROTOTYPES_H\r
38 \r
39 /* MPU versions of tasks.h API functions. */\r
40 BaseType_t MPU_xTaskCreate( TaskFunction_t pxTaskCode,\r
41                             const char * const pcName,\r
42                             const uint16_t usStackDepth,\r
43                             void * const pvParameters,\r
44                             UBaseType_t uxPriority,\r
45                             TaskHandle_t * const pxCreatedTask ) FREERTOS_SYSTEM_CALL;\r
46 TaskHandle_t MPU_xTaskCreateStatic( TaskFunction_t pxTaskCode,\r
47                                     const char * const pcName,\r
48                                     const uint32_t ulStackDepth,\r
49                                     void * const pvParameters,\r
50                                     UBaseType_t uxPriority,\r
51                                     StackType_t * const puxStackBuffer,\r
52                                     StaticTask_t * const pxTaskBuffer ) FREERTOS_SYSTEM_CALL;\r
53 BaseType_t MPU_xTaskCreateRestricted( const TaskParameters_t * const pxTaskDefinition,\r
54                                       TaskHandle_t * pxCreatedTask ) FREERTOS_SYSTEM_CALL;\r
55 BaseType_t MPU_xTaskCreateRestrictedStatic( const TaskParameters_t * const pxTaskDefinition,\r
56                                             TaskHandle_t * pxCreatedTask ) FREERTOS_SYSTEM_CALL;\r
57 void MPU_vTaskAllocateMPURegions( TaskHandle_t xTask,\r
58                                   const MemoryRegion_t * const pxRegions ) FREERTOS_SYSTEM_CALL;\r
59 void MPU_vTaskDelete( TaskHandle_t xTaskToDelete ) FREERTOS_SYSTEM_CALL;\r
60 void MPU_vTaskDelay( const TickType_t xTicksToDelay ) FREERTOS_SYSTEM_CALL;\r
61 BaseType_t MPU_xTaskDelayUntil( TickType_t * const pxPreviousWakeTime,\r
62                           const TickType_t xTimeIncrement ) FREERTOS_SYSTEM_CALL;\r
63 BaseType_t MPU_xTaskAbortDelay( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;\r
64 UBaseType_t MPU_uxTaskPriorityGet( const TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;\r
65 eTaskState MPU_eTaskGetState( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;\r
66 void MPU_vTaskGetInfo( TaskHandle_t xTask,\r
67                        TaskStatus_t * pxTaskStatus,\r
68                        BaseType_t xGetFreeStackSpace,\r
69                        eTaskState eState ) FREERTOS_SYSTEM_CALL;\r
70 void MPU_vTaskPrioritySet( TaskHandle_t xTask,\r
71                            UBaseType_t uxNewPriority ) FREERTOS_SYSTEM_CALL;\r
72 void MPU_vTaskSuspend( TaskHandle_t xTaskToSuspend ) FREERTOS_SYSTEM_CALL;\r
73 void MPU_vTaskResume( TaskHandle_t xTaskToResume ) FREERTOS_SYSTEM_CALL;\r
74 void MPU_vTaskStartScheduler( void ) FREERTOS_SYSTEM_CALL;\r
75 void MPU_vTaskSuspendAll( void ) FREERTOS_SYSTEM_CALL;\r
76 BaseType_t MPU_xTaskResumeAll( void ) FREERTOS_SYSTEM_CALL;\r
77 TickType_t MPU_xTaskGetTickCount( void ) FREERTOS_SYSTEM_CALL;\r
78 UBaseType_t MPU_uxTaskGetNumberOfTasks( void ) FREERTOS_SYSTEM_CALL;\r
79 char * MPU_pcTaskGetName( TaskHandle_t xTaskToQuery ) FREERTOS_SYSTEM_CALL;\r
80 TaskHandle_t MPU_xTaskGetHandle( const char * pcNameToQuery ) FREERTOS_SYSTEM_CALL;\r
81 UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;\r
82 configSTACK_DEPTH_TYPE MPU_uxTaskGetStackHighWaterMark2( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;\r
83 void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask,\r
84                                      TaskHookFunction_t pxHookFunction ) FREERTOS_SYSTEM_CALL;\r
85 TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;\r
86 void MPU_vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet,\r
87                                             BaseType_t xIndex,\r
88                                             void * pvValue ) FREERTOS_SYSTEM_CALL;\r
89 void * MPU_pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery,\r
90                                                BaseType_t xIndex ) FREERTOS_SYSTEM_CALL;\r
91 BaseType_t MPU_xTaskCallApplicationTaskHook( TaskHandle_t xTask,\r
92                                              void * pvParameter ) FREERTOS_SYSTEM_CALL;\r
93 TaskHandle_t MPU_xTaskGetIdleTaskHandle( void ) FREERTOS_SYSTEM_CALL;\r
94 UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t * const pxTaskStatusArray,\r
95                                       const UBaseType_t uxArraySize,\r
96                                       uint32_t * const pulTotalRunTime ) FREERTOS_SYSTEM_CALL;\r
97 uint32_t MPU_ulTaskGetIdleRunTimeCounter( void ) FREERTOS_SYSTEM_CALL;\r
98 void MPU_vTaskList( char * pcWriteBuffer ) FREERTOS_SYSTEM_CALL;\r
99 void MPU_vTaskGetRunTimeStats( char * pcWriteBuffer ) FREERTOS_SYSTEM_CALL;\r
100 BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,\r
101                                    UBaseType_t uxIndexToNotify,\r
102                                    uint32_t ulValue,\r
103                                    eNotifyAction eAction,\r
104                                    uint32_t * pulPreviousNotificationValue ) FREERTOS_SYSTEM_CALL;\r
105 BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn,\r
106                                        uint32_t ulBitsToClearOnEntry,\r
107                                        uint32_t ulBitsToClearOnExit,\r
108                                        uint32_t * pulNotificationValue,\r
109                                        TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
110 uint32_t MPU_ulTaskGenericNotifyTake( UBaseType_t uxIndexToWaitOn,\r
111                                       BaseType_t xClearCountOnExit,\r
112                                       TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
113 BaseType_t MPU_xTaskGenericNotifyStateClear( TaskHandle_t xTask,\r
114                                              UBaseType_t uxIndexToClear ) FREERTOS_SYSTEM_CALL;\r
115 uint32_t MPU_ulTaskGenericNotifyValueClear( TaskHandle_t xTask,\r
116                                             UBaseType_t uxIndexToClear,\r
117                                             uint32_t ulBitsToClear ) FREERTOS_SYSTEM_CALL;\r
118 BaseType_t MPU_xTaskIncrementTick( void ) FREERTOS_SYSTEM_CALL;\r
119 TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void ) FREERTOS_SYSTEM_CALL;\r
120 void MPU_vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) FREERTOS_SYSTEM_CALL;\r
121 BaseType_t MPU_xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut,\r
122                                      TickType_t * const pxTicksToWait ) FREERTOS_SYSTEM_CALL;\r
123 void MPU_vTaskMissedYield( void ) FREERTOS_SYSTEM_CALL;\r
124 BaseType_t MPU_xTaskGetSchedulerState( void ) FREERTOS_SYSTEM_CALL;\r
125 BaseType_t MPU_xTaskCatchUpTicks( TickType_t xTicksToCatchUp ) FREERTOS_SYSTEM_CALL;\r
126 \r
127 /* MPU versions of queue.h API functions. */\r
128 BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue,\r
129                                   const void * const pvItemToQueue,\r
130                                   TickType_t xTicksToWait,\r
131                                   const BaseType_t xCopyPosition ) FREERTOS_SYSTEM_CALL;\r
132 BaseType_t MPU_xQueueReceive( QueueHandle_t xQueue,\r
133                               void * const pvBuffer,\r
134                               TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
135 BaseType_t MPU_xQueuePeek( QueueHandle_t xQueue,\r
136                            void * const pvBuffer,\r
137                            TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
138 BaseType_t MPU_xQueueSemaphoreTake( QueueHandle_t xQueue,\r
139                                     TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
140 UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;\r
141 UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;\r
142 void MPU_vQueueDelete( QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;\r
143 QueueHandle_t MPU_xQueueCreateMutex( const uint8_t ucQueueType ) FREERTOS_SYSTEM_CALL;\r
144 QueueHandle_t MPU_xQueueCreateMutexStatic( const uint8_t ucQueueType,\r
145                                            StaticQueue_t * pxStaticQueue ) FREERTOS_SYSTEM_CALL;\r
146 QueueHandle_t MPU_xQueueCreateCountingSemaphore( const UBaseType_t uxMaxCount,\r
147                                                  const UBaseType_t uxInitialCount ) FREERTOS_SYSTEM_CALL;\r
148 QueueHandle_t MPU_xQueueCreateCountingSemaphoreStatic( const UBaseType_t uxMaxCount,\r
149                                                        const UBaseType_t uxInitialCount,\r
150                                                        StaticQueue_t * pxStaticQueue ) FREERTOS_SYSTEM_CALL;\r
151 TaskHandle_t MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore ) FREERTOS_SYSTEM_CALL;\r
152 BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex,\r
153                                          TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
154 BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t pxMutex ) FREERTOS_SYSTEM_CALL;\r
155 void MPU_vQueueAddToRegistry( QueueHandle_t xQueue,\r
156                               const char * pcName ) FREERTOS_SYSTEM_CALL;\r
157 void MPU_vQueueUnregisterQueue( QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;\r
158 const char * MPU_pcQueueGetName( QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;\r
159 QueueHandle_t MPU_xQueueGenericCreate( const UBaseType_t uxQueueLength,\r
160                                        const UBaseType_t uxItemSize,\r
161                                        const uint8_t ucQueueType ) FREERTOS_SYSTEM_CALL;\r
162 QueueHandle_t MPU_xQueueGenericCreateStatic( const UBaseType_t uxQueueLength,\r
163                                              const UBaseType_t uxItemSize,\r
164                                              uint8_t * pucQueueStorage,\r
165                                              StaticQueue_t * pxStaticQueue,\r
166                                              const uint8_t ucQueueType ) FREERTOS_SYSTEM_CALL;\r
167 QueueSetHandle_t MPU_xQueueCreateSet( const UBaseType_t uxEventQueueLength ) FREERTOS_SYSTEM_CALL;\r
168 BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore,\r
169                                QueueSetHandle_t xQueueSet ) FREERTOS_SYSTEM_CALL;\r
170 BaseType_t MPU_xQueueRemoveFromSet( QueueSetMemberHandle_t xQueueOrSemaphore,\r
171                                     QueueSetHandle_t xQueueSet ) FREERTOS_SYSTEM_CALL;\r
172 QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet,\r
173                                                 const TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
174 BaseType_t MPU_xQueueGenericReset( QueueHandle_t xQueue,\r
175                                    BaseType_t xNewQueue ) FREERTOS_SYSTEM_CALL;\r
176 void MPU_vQueueSetQueueNumber( QueueHandle_t xQueue,\r
177                                UBaseType_t uxQueueNumber ) FREERTOS_SYSTEM_CALL;\r
178 UBaseType_t MPU_uxQueueGetQueueNumber( QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;\r
179 uint8_t MPU_ucQueueGetQueueType( QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;\r
180 \r
181 /* MPU versions of timers.h API functions. */\r
182 TimerHandle_t MPU_xTimerCreate( const char * const pcTimerName,\r
183                                 const TickType_t xTimerPeriodInTicks,\r
184                                 const UBaseType_t uxAutoReload,\r
185                                 void * const pvTimerID,\r
186                                 TimerCallbackFunction_t pxCallbackFunction ) FREERTOS_SYSTEM_CALL;\r
187 TimerHandle_t MPU_xTimerCreateStatic( const char * const pcTimerName,\r
188                                       const TickType_t xTimerPeriodInTicks,\r
189                                       const UBaseType_t uxAutoReload,\r
190                                       void * const pvTimerID,\r
191                                       TimerCallbackFunction_t pxCallbackFunction,\r
192                                       StaticTimer_t * pxTimerBuffer ) FREERTOS_SYSTEM_CALL;\r
193 void * MPU_pvTimerGetTimerID( const TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;\r
194 void MPU_vTimerSetTimerID( TimerHandle_t xTimer,\r
195                            void * pvNewID ) FREERTOS_SYSTEM_CALL;\r
196 BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;\r
197 TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) FREERTOS_SYSTEM_CALL;\r
198 BaseType_t MPU_xTimerPendFunctionCall( PendedFunction_t xFunctionToPend,\r
199                                        void * pvParameter1,\r
200                                        uint32_t ulParameter2,\r
201                                        TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
202 const char * MPU_pcTimerGetName( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;\r
203 void MPU_vTimerSetReloadMode( TimerHandle_t xTimer,\r
204                               const UBaseType_t uxAutoReload ) FREERTOS_SYSTEM_CALL;\r
205 UBaseType_t MPU_uxTimerGetReloadMode( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;\r
206 TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;\r
207 TickType_t MPU_xTimerGetExpiryTime( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;\r
208 BaseType_t MPU_xTimerCreateTimerTask( void ) FREERTOS_SYSTEM_CALL;\r
209 BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,\r
210                                      const BaseType_t xCommandID,\r
211                                      const TickType_t xOptionalValue,\r
212                                      BaseType_t * const pxHigherPriorityTaskWoken,\r
213                                      const TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
214 \r
215 /* MPU versions of event_group.h API functions. */\r
216 EventGroupHandle_t MPU_xEventGroupCreate( void ) FREERTOS_SYSTEM_CALL;\r
217 EventGroupHandle_t MPU_xEventGroupCreateStatic( StaticEventGroup_t * pxEventGroupBuffer ) FREERTOS_SYSTEM_CALL;\r
218 EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,\r
219                                      const EventBits_t uxBitsToWaitFor,\r
220                                      const BaseType_t xClearOnExit,\r
221                                      const BaseType_t xWaitForAllBits,\r
222                                      TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
223 EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup,\r
224                                       const EventBits_t uxBitsToClear ) FREERTOS_SYSTEM_CALL;\r
225 EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup,\r
226                                     const EventBits_t uxBitsToSet ) FREERTOS_SYSTEM_CALL;\r
227 EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup,\r
228                                  const EventBits_t uxBitsToSet,\r
229                                  const EventBits_t uxBitsToWaitFor,\r
230                                  TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
231 void MPU_vEventGroupDelete( EventGroupHandle_t xEventGroup ) FREERTOS_SYSTEM_CALL;\r
232 UBaseType_t MPU_uxEventGroupGetNumber( void * xEventGroup ) FREERTOS_SYSTEM_CALL;\r
233 \r
234 /* MPU versions of message/stream_buffer.h API functions. */\r
235 size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer,\r
236                               const void * pvTxData,\r
237                               size_t xDataLengthBytes,\r
238                               TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
239 size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer,\r
240                                  void * pvRxData,\r
241                                  size_t xBufferLengthBytes,\r
242                                  TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
243 size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;\r
244 void MPU_vStreamBufferDelete( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;\r
245 BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;\r
246 BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;\r
247 BaseType_t MPU_xStreamBufferReset( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;\r
248 size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;\r
249 size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;\r
250 BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer,\r
251                                              size_t xTriggerLevel ) FREERTOS_SYSTEM_CALL;\r
252 StreamBufferHandle_t MPU_xStreamBufferGenericCreate( size_t xBufferSizeBytes,\r
253                                                      size_t xTriggerLevelBytes,\r
254                                                      BaseType_t xIsMessageBuffer ) FREERTOS_SYSTEM_CALL;\r
255 StreamBufferHandle_t MPU_xStreamBufferGenericCreateStatic( size_t xBufferSizeBytes,\r
256                                                            size_t xTriggerLevelBytes,\r
257                                                            BaseType_t xIsMessageBuffer,\r
258                                                            uint8_t * const pucStreamBufferStorageArea,\r
259                                                            StaticStreamBuffer_t * const pxStaticStreamBuffer ) FREERTOS_SYSTEM_CALL;\r
260 \r
261 \r
262 \r
263 #endif /* MPU_PROTOTYPES_H */\r