]> begriffs open source - freertos/blob - include/mpu_prototypes.h
[AUTO][RELEASE]: Bump task.h version macros to "10.4.3 LTS Patch 1"
[freertos] / include / mpu_prototypes.h
1 /*\r
2  * FreeRTOS Kernel V10.4.3\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 void MPU_vTaskDelete( TaskHandle_t xTaskToDelete ) FREERTOS_SYSTEM_CALL;\r
54 void MPU_vTaskDelay( const TickType_t xTicksToDelay ) FREERTOS_SYSTEM_CALL;\r
55 BaseType_t MPU_xTaskDelayUntil( TickType_t * const pxPreviousWakeTime,\r
56                           const TickType_t xTimeIncrement ) FREERTOS_SYSTEM_CALL;\r
57 BaseType_t MPU_xTaskAbortDelay( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;\r
58 UBaseType_t MPU_uxTaskPriorityGet( const TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;\r
59 eTaskState MPU_eTaskGetState( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;\r
60 void MPU_vTaskGetInfo( TaskHandle_t xTask,\r
61                        TaskStatus_t * pxTaskStatus,\r
62                        BaseType_t xGetFreeStackSpace,\r
63                        eTaskState eState ) FREERTOS_SYSTEM_CALL;\r
64 void MPU_vTaskPrioritySet( TaskHandle_t xTask,\r
65                            UBaseType_t uxNewPriority ) FREERTOS_SYSTEM_CALL;\r
66 void MPU_vTaskSuspend( TaskHandle_t xTaskToSuspend ) FREERTOS_SYSTEM_CALL;\r
67 void MPU_vTaskResume( TaskHandle_t xTaskToResume ) FREERTOS_SYSTEM_CALL;\r
68 void MPU_vTaskStartScheduler( void ) FREERTOS_SYSTEM_CALL;\r
69 void MPU_vTaskSuspendAll( void ) FREERTOS_SYSTEM_CALL;\r
70 BaseType_t MPU_xTaskResumeAll( void ) FREERTOS_SYSTEM_CALL;\r
71 TickType_t MPU_xTaskGetTickCount( void ) FREERTOS_SYSTEM_CALL;\r
72 UBaseType_t MPU_uxTaskGetNumberOfTasks( void ) FREERTOS_SYSTEM_CALL;\r
73 char * MPU_pcTaskGetName( TaskHandle_t xTaskToQuery ) FREERTOS_SYSTEM_CALL;\r
74 TaskHandle_t MPU_xTaskGetHandle( const char * pcNameToQuery ) FREERTOS_SYSTEM_CALL;\r
75 UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;\r
76 configSTACK_DEPTH_TYPE MPU_uxTaskGetStackHighWaterMark2( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;\r
77 void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask,\r
78                                      TaskHookFunction_t pxHookFunction ) FREERTOS_SYSTEM_CALL;\r
79 TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;\r
80 void MPU_vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet,\r
81                                             BaseType_t xIndex,\r
82                                             void * pvValue ) FREERTOS_SYSTEM_CALL;\r
83 void * MPU_pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery,\r
84                                                BaseType_t xIndex ) FREERTOS_SYSTEM_CALL;\r
85 BaseType_t MPU_xTaskCallApplicationTaskHook( TaskHandle_t xTask,\r
86                                              void * pvParameter ) FREERTOS_SYSTEM_CALL;\r
87 TaskHandle_t MPU_xTaskGetIdleTaskHandle( void ) FREERTOS_SYSTEM_CALL;\r
88 UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t * const pxTaskStatusArray,\r
89                                       const UBaseType_t uxArraySize,\r
90                                       uint32_t * const pulTotalRunTime ) FREERTOS_SYSTEM_CALL;\r
91 uint32_t MPU_ulTaskGetIdleRunTimeCounter( void ) FREERTOS_SYSTEM_CALL;\r
92 void MPU_vTaskList( char * pcWriteBuffer ) FREERTOS_SYSTEM_CALL;\r
93 void MPU_vTaskGetRunTimeStats( char * pcWriteBuffer ) FREERTOS_SYSTEM_CALL;\r
94 BaseType_t MPU_xTaskGenericNotify( TaskHandle_t xTaskToNotify,\r
95                                    UBaseType_t uxIndexToNotify,\r
96                                    uint32_t ulValue,\r
97                                    eNotifyAction eAction,\r
98                                    uint32_t * pulPreviousNotificationValue ) FREERTOS_SYSTEM_CALL;\r
99 BaseType_t MPU_xTaskGenericNotifyWait( UBaseType_t uxIndexToWaitOn,\r
100                                        uint32_t ulBitsToClearOnEntry,\r
101                                        uint32_t ulBitsToClearOnExit,\r
102                                        uint32_t * pulNotificationValue,\r
103                                        TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
104 uint32_t MPU_ulTaskGenericNotifyTake( UBaseType_t uxIndexToWaitOn,\r
105                                       BaseType_t xClearCountOnExit,\r
106                                       TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
107 BaseType_t MPU_xTaskGenericNotifyStateClear( TaskHandle_t xTask,\r
108                                              UBaseType_t uxIndexToClear ) FREERTOS_SYSTEM_CALL;\r
109 uint32_t MPU_ulTaskGenericNotifyValueClear( TaskHandle_t xTask,\r
110                                             UBaseType_t uxIndexToClear,\r
111                                             uint32_t ulBitsToClear ) FREERTOS_SYSTEM_CALL;\r
112 BaseType_t MPU_xTaskIncrementTick( void ) FREERTOS_SYSTEM_CALL;\r
113 TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void ) FREERTOS_SYSTEM_CALL;\r
114 void MPU_vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) FREERTOS_SYSTEM_CALL;\r
115 BaseType_t MPU_xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut,\r
116                                      TickType_t * const pxTicksToWait ) FREERTOS_SYSTEM_CALL;\r
117 void MPU_vTaskMissedYield( void ) FREERTOS_SYSTEM_CALL;\r
118 BaseType_t MPU_xTaskGetSchedulerState( void ) FREERTOS_SYSTEM_CALL;\r
119 BaseType_t MPU_xTaskCatchUpTicks( TickType_t xTicksToCatchUp ) FREERTOS_SYSTEM_CALL;\r
120 \r
121 /* MPU versions of queue.h API functions. */\r
122 BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue,\r
123                                   const void * const pvItemToQueue,\r
124                                   TickType_t xTicksToWait,\r
125                                   const BaseType_t xCopyPosition ) FREERTOS_SYSTEM_CALL;\r
126 BaseType_t MPU_xQueueReceive( QueueHandle_t xQueue,\r
127                               void * const pvBuffer,\r
128                               TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
129 BaseType_t MPU_xQueuePeek( QueueHandle_t xQueue,\r
130                            void * const pvBuffer,\r
131                            TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
132 BaseType_t MPU_xQueueSemaphoreTake( QueueHandle_t xQueue,\r
133                                     TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
134 UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;\r
135 UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;\r
136 void MPU_vQueueDelete( QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;\r
137 QueueHandle_t MPU_xQueueCreateMutex( const uint8_t ucQueueType ) FREERTOS_SYSTEM_CALL;\r
138 QueueHandle_t MPU_xQueueCreateMutexStatic( const uint8_t ucQueueType,\r
139                                            StaticQueue_t * pxStaticQueue ) FREERTOS_SYSTEM_CALL;\r
140 QueueHandle_t MPU_xQueueCreateCountingSemaphore( const UBaseType_t uxMaxCount,\r
141                                                  const UBaseType_t uxInitialCount ) FREERTOS_SYSTEM_CALL;\r
142 QueueHandle_t MPU_xQueueCreateCountingSemaphoreStatic( const UBaseType_t uxMaxCount,\r
143                                                        const UBaseType_t uxInitialCount,\r
144                                                        StaticQueue_t * pxStaticQueue ) FREERTOS_SYSTEM_CALL;\r
145 TaskHandle_t MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore ) FREERTOS_SYSTEM_CALL;\r
146 BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex,\r
147                                          TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
148 BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t pxMutex ) FREERTOS_SYSTEM_CALL;\r
149 void MPU_vQueueAddToRegistry( QueueHandle_t xQueue,\r
150                               const char * pcName ) FREERTOS_SYSTEM_CALL;\r
151 void MPU_vQueueUnregisterQueue( QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;\r
152 const char * MPU_pcQueueGetName( QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;\r
153 QueueHandle_t MPU_xQueueGenericCreate( const UBaseType_t uxQueueLength,\r
154                                        const UBaseType_t uxItemSize,\r
155                                        const uint8_t ucQueueType ) FREERTOS_SYSTEM_CALL;\r
156 QueueHandle_t MPU_xQueueGenericCreateStatic( const UBaseType_t uxQueueLength,\r
157                                              const UBaseType_t uxItemSize,\r
158                                              uint8_t * pucQueueStorage,\r
159                                              StaticQueue_t * pxStaticQueue,\r
160                                              const uint8_t ucQueueType ) FREERTOS_SYSTEM_CALL;\r
161 QueueSetHandle_t MPU_xQueueCreateSet( const UBaseType_t uxEventQueueLength ) FREERTOS_SYSTEM_CALL;\r
162 BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore,\r
163                                QueueSetHandle_t xQueueSet ) FREERTOS_SYSTEM_CALL;\r
164 BaseType_t MPU_xQueueRemoveFromSet( QueueSetMemberHandle_t xQueueOrSemaphore,\r
165                                     QueueSetHandle_t xQueueSet ) FREERTOS_SYSTEM_CALL;\r
166 QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet,\r
167                                                 const TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
168 BaseType_t MPU_xQueueGenericReset( QueueHandle_t xQueue,\r
169                                    BaseType_t xNewQueue ) FREERTOS_SYSTEM_CALL;\r
170 void MPU_vQueueSetQueueNumber( QueueHandle_t xQueue,\r
171                                UBaseType_t uxQueueNumber ) FREERTOS_SYSTEM_CALL;\r
172 UBaseType_t MPU_uxQueueGetQueueNumber( QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;\r
173 uint8_t MPU_ucQueueGetQueueType( QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;\r
174 \r
175 /* MPU versions of timers.h API functions. */\r
176 TimerHandle_t MPU_xTimerCreate( const char * const pcTimerName,\r
177                                 const TickType_t xTimerPeriodInTicks,\r
178                                 const UBaseType_t uxAutoReload,\r
179                                 void * const pvTimerID,\r
180                                 TimerCallbackFunction_t pxCallbackFunction ) FREERTOS_SYSTEM_CALL;\r
181 TimerHandle_t MPU_xTimerCreateStatic( const char * const pcTimerName,\r
182                                       const TickType_t xTimerPeriodInTicks,\r
183                                       const UBaseType_t uxAutoReload,\r
184                                       void * const pvTimerID,\r
185                                       TimerCallbackFunction_t pxCallbackFunction,\r
186                                       StaticTimer_t * pxTimerBuffer ) FREERTOS_SYSTEM_CALL;\r
187 void * MPU_pvTimerGetTimerID( const TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;\r
188 void MPU_vTimerSetTimerID( TimerHandle_t xTimer,\r
189                            void * pvNewID ) FREERTOS_SYSTEM_CALL;\r
190 BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;\r
191 TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) FREERTOS_SYSTEM_CALL;\r
192 BaseType_t MPU_xTimerPendFunctionCall( PendedFunction_t xFunctionToPend,\r
193                                        void * pvParameter1,\r
194                                        uint32_t ulParameter2,\r
195                                        TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
196 const char * MPU_pcTimerGetName( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;\r
197 void MPU_vTimerSetReloadMode( TimerHandle_t xTimer,\r
198                               const UBaseType_t uxAutoReload ) FREERTOS_SYSTEM_CALL;\r
199 UBaseType_t MPU_uxTimerGetReloadMode( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;\r
200 TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;\r
201 TickType_t MPU_xTimerGetExpiryTime( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;\r
202 BaseType_t MPU_xTimerCreateTimerTask( void ) FREERTOS_SYSTEM_CALL;\r
203 BaseType_t MPU_xTimerGenericCommand( TimerHandle_t xTimer,\r
204                                      const BaseType_t xCommandID,\r
205                                      const TickType_t xOptionalValue,\r
206                                      BaseType_t * const pxHigherPriorityTaskWoken,\r
207                                      const TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
208 \r
209 /* MPU versions of event_group.h API functions. */\r
210 EventGroupHandle_t MPU_xEventGroupCreate( void ) FREERTOS_SYSTEM_CALL;\r
211 EventGroupHandle_t MPU_xEventGroupCreateStatic( StaticEventGroup_t * pxEventGroupBuffer ) FREERTOS_SYSTEM_CALL;\r
212 EventBits_t MPU_xEventGroupWaitBits( EventGroupHandle_t xEventGroup,\r
213                                      const EventBits_t uxBitsToWaitFor,\r
214                                      const BaseType_t xClearOnExit,\r
215                                      const BaseType_t xWaitForAllBits,\r
216                                      TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
217 EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup,\r
218                                       const EventBits_t uxBitsToClear ) FREERTOS_SYSTEM_CALL;\r
219 EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup,\r
220                                     const EventBits_t uxBitsToSet ) FREERTOS_SYSTEM_CALL;\r
221 EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup,\r
222                                  const EventBits_t uxBitsToSet,\r
223                                  const EventBits_t uxBitsToWaitFor,\r
224                                  TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
225 void MPU_vEventGroupDelete( EventGroupHandle_t xEventGroup ) FREERTOS_SYSTEM_CALL;\r
226 UBaseType_t MPU_uxEventGroupGetNumber( void * xEventGroup ) FREERTOS_SYSTEM_CALL;\r
227 \r
228 /* MPU versions of message/stream_buffer.h API functions. */\r
229 size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer,\r
230                               const void * pvTxData,\r
231                               size_t xDataLengthBytes,\r
232                               TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
233 size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer,\r
234                                  void * pvRxData,\r
235                                  size_t xBufferLengthBytes,\r
236                                  TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;\r
237 size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;\r
238 void MPU_vStreamBufferDelete( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;\r
239 BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;\r
240 BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;\r
241 BaseType_t MPU_xStreamBufferReset( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;\r
242 size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;\r
243 size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;\r
244 BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer,\r
245                                              size_t xTriggerLevel ) FREERTOS_SYSTEM_CALL;\r
246 StreamBufferHandle_t MPU_xStreamBufferGenericCreate( size_t xBufferSizeBytes,\r
247                                                      size_t xTriggerLevelBytes,\r
248                                                      BaseType_t xIsMessageBuffer ) FREERTOS_SYSTEM_CALL;\r
249 StreamBufferHandle_t MPU_xStreamBufferGenericCreateStatic( size_t xBufferSizeBytes,\r
250                                                            size_t xTriggerLevelBytes,\r
251                                                            BaseType_t xIsMessageBuffer,\r
252                                                            uint8_t * const pucStreamBufferStorageArea,\r
253                                                            StaticStreamBuffer_t * const pxStaticStreamBuffer ) FREERTOS_SYSTEM_CALL;\r
254 \r
255 \r
256 \r
257 #endif /* MPU_PROTOTYPES_H */\r