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