1 /*
2  * FreeRTOS Kernel V11.0.1
3  * Copyright (C) 2021 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
4  *
5  * SPDX-License-Identifier: MIT
6  *
7  * Permission is hereby granted, free of charge, to any person obtaining a copy of
8  * this software and associated documentation files (the "Software"), to deal in
9  * the Software without restriction, including without limitation the rights to
10  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
11  * the Software, and to permit persons to whom the Software is furnished to do so,
12  * subject to the following conditions:
13  *
14  * The above copyright notice and this permission notice shall be included in all
15  * copies or substantial portions of the Software.
16  *
17  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
19  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
20  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
21  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23  *
24  * https://www.FreeRTOS.org
25  * https://github.com/FreeRTOS
26  *
27  */
28 
29 /* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining
30  * all the API functions to use the MPU wrappers.  That should only be done when
31  * task.h is included from an application file. */
32 #define MPU_WRAPPERS_INCLUDED_FROM_API_FILE
33 
34 /* Scheduler includes. */
35 #include "FreeRTOS.h"
36 #include "task.h"
37 #include "queue.h"
38 #include "timers.h"
39 #include "event_groups.h"
40 #include "stream_buffer.h"
41 #include "mpu_prototypes.h"
42 #include "mpu_syscall_numbers.h"
43 
44 #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE
45 /*-----------------------------------------------------------*/
46 
47 #if ( configUSE_MPU_WRAPPERS_V1 == 0 )
48 
49 #if ( INCLUDE_xTaskDelayUntil == 1 )
50 
51 BaseType_t MPU_xTaskDelayUntil( TickType_t * const pxPreviousWakeTime,
52                                 const TickType_t xTimeIncrement ) FREERTOS_SYSTEM_CALL;
53 
MPU_xTaskDelayUntil(TickType_t * const pxPreviousWakeTime,const TickType_t xTimeIncrement)54 __asm BaseType_t MPU_xTaskDelayUntil( TickType_t * const pxPreviousWakeTime,
55                                       const TickType_t xTimeIncrement ) /* FREERTOS_SYSTEM_CALL */
56 {
57     PRESERVE8
58     extern MPU_xTaskDelayUntilImpl
59 
60     push {r0}
61     mrs r0, control
62     tst r0, #1
63     bne MPU_xTaskDelayUntil_Unpriv
64 MPU_xTaskDelayUntil_Priv
65         pop {r0}
66         b MPU_xTaskDelayUntilImpl
67 MPU_xTaskDelayUntil_Unpriv
68         pop {r0}
69         svc #SYSTEM_CALL_xTaskDelayUntil
70 }
71 
72 #endif /* if ( INCLUDE_xTaskDelayUntil == 1 ) */
73 /*-----------------------------------------------------------*/
74 
75 #if ( INCLUDE_xTaskAbortDelay == 1 )
76 
77 BaseType_t MPU_xTaskAbortDelay( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;
78 
MPU_xTaskAbortDelay(TaskHandle_t xTask)79 __asm BaseType_t MPU_xTaskAbortDelay( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
80 {
81     PRESERVE8
82     extern MPU_xTaskAbortDelayImpl
83 
84     push {r0}
85     mrs r0, control
86     tst r0, #1
87     bne MPU_xTaskAbortDelay_Unpriv
88 MPU_xTaskAbortDelay_Priv
89         pop {r0}
90         b MPU_xTaskAbortDelayImpl
91 MPU_xTaskAbortDelay_Unpriv
92         pop {r0}
93         svc #SYSTEM_CALL_xTaskAbortDelay
94 }
95 
96 #endif /* if ( INCLUDE_xTaskAbortDelay == 1 ) */
97 /*-----------------------------------------------------------*/
98 
99 #if ( INCLUDE_vTaskDelay == 1 )
100 
101 void MPU_vTaskDelay( const TickType_t xTicksToDelay ) FREERTOS_SYSTEM_CALL;
102 
MPU_vTaskDelay(const TickType_t xTicksToDelay)103 __asm void MPU_vTaskDelay( const TickType_t xTicksToDelay ) /* FREERTOS_SYSTEM_CALL */
104 {
105     PRESERVE8
106     extern MPU_vTaskDelayImpl
107 
108     push {r0}
109     mrs r0, control
110     tst r0, #1
111     bne MPU_vTaskDelay_Unpriv
112 MPU_vTaskDelay_Priv
113         pop {r0}
114         b MPU_vTaskDelayImpl
115 MPU_vTaskDelay_Unpriv
116         pop {r0}
117         svc #SYSTEM_CALL_vTaskDelay
118 }
119 
120 #endif /* if ( INCLUDE_vTaskDelay == 1 ) */
121 /*-----------------------------------------------------------*/
122 
123 #if ( INCLUDE_uxTaskPriorityGet == 1 )
124 
125 UBaseType_t MPU_uxTaskPriorityGet( const TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;
126 
MPU_uxTaskPriorityGet(const TaskHandle_t xTask)127 __asm UBaseType_t MPU_uxTaskPriorityGet( const TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
128 {
129     PRESERVE8
130     extern MPU_uxTaskPriorityGetImpl
131 
132     push {r0}
133     mrs r0, control
134     tst r0, #1
135     bne MPU_uxTaskPriorityGet_Unpriv
136 MPU_uxTaskPriorityGet_Priv
137         pop {r0}
138         b MPU_uxTaskPriorityGetImpl
139 MPU_uxTaskPriorityGet_Unpriv
140         pop {r0}
141         svc #SYSTEM_CALL_uxTaskPriorityGet
142 }
143 
144 #endif /* if ( INCLUDE_uxTaskPriorityGet == 1 ) */
145 /*-----------------------------------------------------------*/
146 
147 #if ( INCLUDE_eTaskGetState == 1 )
148 
149 eTaskState MPU_eTaskGetState( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;
150 
MPU_eTaskGetState(TaskHandle_t xTask)151 __asm eTaskState MPU_eTaskGetState( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
152 {
153     PRESERVE8
154     extern MPU_eTaskGetStateImpl
155 
156     push {r0}
157     mrs r0, control
158     tst r0, #1
159     bne MPU_eTaskGetState_Unpriv
160 MPU_eTaskGetState_Priv
161         pop {r0}
162         b MPU_eTaskGetStateImpl
163 MPU_eTaskGetState_Unpriv
164         pop {r0}
165         svc #SYSTEM_CALL_eTaskGetState
166 }
167 
168 #endif /* if ( INCLUDE_eTaskGetState == 1 ) */
169 /*-----------------------------------------------------------*/
170 
171 #if ( configUSE_TRACE_FACILITY == 1 )
172 
173 void MPU_vTaskGetInfo( TaskHandle_t xTask,
174                        TaskStatus_t * pxTaskStatus,
175                        BaseType_t xGetFreeStackSpace,
176                        eTaskState eState ) FREERTOS_SYSTEM_CALL;
177 
MPU_vTaskGetInfo(TaskHandle_t xTask,TaskStatus_t * pxTaskStatus,BaseType_t xGetFreeStackSpace,eTaskState eState)178 __asm void MPU_vTaskGetInfo( TaskHandle_t xTask,
179                              TaskStatus_t * pxTaskStatus,
180                              BaseType_t xGetFreeStackSpace,
181                              eTaskState eState ) /* FREERTOS_SYSTEM_CALL */
182 {
183     PRESERVE8
184     extern MPU_vTaskGetInfoImpl
185 
186     push {r0}
187     mrs r0, control
188     tst r0, #1
189     bne MPU_vTaskGetInfo_Unpriv
190 MPU_vTaskGetInfo_Priv
191         pop {r0}
192         b MPU_vTaskGetInfoImpl
193 MPU_vTaskGetInfo_Unpriv
194         pop {r0}
195         svc #SYSTEM_CALL_vTaskGetInfo
196 }
197 
198 #endif /* if ( configUSE_TRACE_FACILITY == 1 ) */
199 /*-----------------------------------------------------------*/
200 
201 #if ( INCLUDE_xTaskGetIdleTaskHandle == 1 )
202 
203 TaskHandle_t MPU_xTaskGetIdleTaskHandle( void ) FREERTOS_SYSTEM_CALL;
204 
MPU_xTaskGetIdleTaskHandle(void)205 __asm TaskHandle_t MPU_xTaskGetIdleTaskHandle( void ) /* FREERTOS_SYSTEM_CALL */
206 {
207     PRESERVE8
208     extern MPU_xTaskGetIdleTaskHandleImpl
209 
210     push {r0}
211     mrs r0, control
212     tst r0, #1
213     bne MPU_xTaskGetIdleTaskHandle_Unpriv
214 MPU_xTaskGetIdleTaskHandle_Priv
215         pop {r0}
216         b MPU_xTaskGetIdleTaskHandleImpl
217 MPU_xTaskGetIdleTaskHandle_Unpriv
218         pop {r0}
219         svc #SYSTEM_CALL_xTaskGetIdleTaskHandle
220 }
221 
222 #endif /* if ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) */
223 /*-----------------------------------------------------------*/
224 
225 #if ( INCLUDE_vTaskSuspend == 1 )
226 
227 void MPU_vTaskSuspend( TaskHandle_t xTaskToSuspend ) FREERTOS_SYSTEM_CALL;
228 
MPU_vTaskSuspend(TaskHandle_t xTaskToSuspend)229 __asm void MPU_vTaskSuspend( TaskHandle_t xTaskToSuspend ) /* FREERTOS_SYSTEM_CALL */
230 {
231     PRESERVE8
232     extern MPU_vTaskSuspendImpl
233 
234     push {r0}
235     mrs r0, control
236     tst r0, #1
237     bne MPU_vTaskSuspend_Unpriv
238 MPU_vTaskSuspend_Priv
239         pop {r0}
240         b MPU_vTaskSuspendImpl
241 MPU_vTaskSuspend_Unpriv
242         pop {r0}
243         svc #SYSTEM_CALL_vTaskSuspend
244 }
245 
246 #endif /* if ( INCLUDE_vTaskSuspend == 1 ) */
247 /*-----------------------------------------------------------*/
248 
249 #if ( INCLUDE_vTaskSuspend == 1 )
250 
251 void MPU_vTaskResume( TaskHandle_t xTaskToResume ) FREERTOS_SYSTEM_CALL;
252 
MPU_vTaskResume(TaskHandle_t xTaskToResume)253 __asm void MPU_vTaskResume( TaskHandle_t xTaskToResume ) /* FREERTOS_SYSTEM_CALL */
254 {
255     PRESERVE8
256     extern MPU_vTaskResumeImpl
257 
258     push {r0}
259     mrs r0, control
260     tst r0, #1
261     bne MPU_vTaskResume_Unpriv
262 MPU_vTaskResume_Priv
263         pop {r0}
264         b MPU_vTaskResumeImpl
265 MPU_vTaskResume_Unpriv
266         pop {r0}
267         svc #SYSTEM_CALL_vTaskResume
268 }
269 
270 #endif /* if ( INCLUDE_vTaskSuspend == 1 ) */
271 /*-----------------------------------------------------------*/
272 
273 TickType_t MPU_xTaskGetTickCount( void ) FREERTOS_SYSTEM_CALL;
274 
MPU_xTaskGetTickCount(void)275 __asm TickType_t MPU_xTaskGetTickCount( void ) /* FREERTOS_SYSTEM_CALL */
276 {
277     PRESERVE8
278     extern MPU_xTaskGetTickCountImpl
279 
280     push {r0}
281     mrs r0, control
282     tst r0, #1
283     bne MPU_xTaskGetTickCount_Unpriv
284 MPU_xTaskGetTickCount_Priv
285         pop {r0}
286         b MPU_xTaskGetTickCountImpl
287 MPU_xTaskGetTickCount_Unpriv
288         pop {r0}
289         svc #SYSTEM_CALL_xTaskGetTickCount
290 }
291 /*-----------------------------------------------------------*/
292 
293 UBaseType_t MPU_uxTaskGetNumberOfTasks( void ) FREERTOS_SYSTEM_CALL;
294 
MPU_uxTaskGetNumberOfTasks(void)295 __asm UBaseType_t MPU_uxTaskGetNumberOfTasks( void ) /* FREERTOS_SYSTEM_CALL */
296 {
297     PRESERVE8
298     extern MPU_uxTaskGetNumberOfTasksImpl
299 
300     push {r0}
301     mrs r0, control
302     tst r0, #1
303     bne MPU_uxTaskGetNumberOfTasks_Unpriv
304 MPU_uxTaskGetNumberOfTasks_Priv
305         pop {r0}
306         b MPU_uxTaskGetNumberOfTasksImpl
307 MPU_uxTaskGetNumberOfTasks_Unpriv
308         pop {r0}
309         svc #SYSTEM_CALL_uxTaskGetNumberOfTasks
310 }
311 /*-----------------------------------------------------------*/
312 
313 #if ( configGENERATE_RUN_TIME_STATS == 1 )
314 
315 configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetRunTimeCounter( const TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;
316 
MPU_ulTaskGetRunTimeCounter(const TaskHandle_t xTask)317 __asm configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetRunTimeCounter( const TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
318 {
319     PRESERVE8
320     extern MPU_ulTaskGetRunTimeCounterImpl
321 
322     push {r0}
323     mrs r0, control
324     tst r0, #1
325     bne MPU_ulTaskGetRunTimeCounter_Unpriv
326 MPU_ulTaskGetRunTimeCounter_Priv
327         pop {r0}
328         b MPU_ulTaskGetRunTimeCounterImpl
329 MPU_ulTaskGetRunTimeCounter_Unpriv
330         pop {r0}
331         svc #SYSTEM_CALL_ulTaskGetRunTimeCounter
332 }
333 
334 #endif /* if ( ( configGENERATE_RUN_TIME_STATS == 1 ) */
335 /*-----------------------------------------------------------*/
336 
337 #if ( configGENERATE_RUN_TIME_STATS == 1 )
338 
339 configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetRunTimePercent( const TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;
340 
MPU_ulTaskGetRunTimePercent(const TaskHandle_t xTask)341 __asm configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetRunTimePercent( const TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
342 {
343     PRESERVE8
344     extern MPU_ulTaskGetRunTimePercentImpl
345 
346     push {r0}
347     mrs r0, control
348     tst r0, #1
349     bne MPU_ulTaskGetRunTimePercent_Unpriv
350 MPU_ulTaskGetRunTimePercent_Priv
351         pop {r0}
352         b MPU_ulTaskGetRunTimePercentImpl
353 MPU_ulTaskGetRunTimePercent_Unpriv
354         pop {r0}
355         svc #SYSTEM_CALL_ulTaskGetRunTimePercent
356 }
357 
358 #endif /* if ( ( configGENERATE_RUN_TIME_STATS == 1 ) */
359 /*-----------------------------------------------------------*/
360 
361 #if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) )
362 
363 configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimePercent( void ) FREERTOS_SYSTEM_CALL;
364 
MPU_ulTaskGetIdleRunTimePercent(void)365 __asm configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimePercent( void ) /* FREERTOS_SYSTEM_CALL */
366 {
367     PRESERVE8
368     extern MPU_ulTaskGetIdleRunTimePercentImpl
369 
370     push {r0}
371     mrs r0, control
372     tst r0, #1
373     bne MPU_ulTaskGetIdleRunTimePercent_Unpriv
374 MPU_ulTaskGetIdleRunTimePercent_Priv
375         pop {r0}
376         b MPU_ulTaskGetIdleRunTimePercentImpl
377 MPU_ulTaskGetIdleRunTimePercent_Unpriv
378         pop {r0}
379         svc #SYSTEM_CALL_ulTaskGetIdleRunTimePercent
380 }
381 
382 #endif /* if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) ) */
383 /*-----------------------------------------------------------*/
384 
385 #if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) )
386 
387 configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimeCounter( void ) FREERTOS_SYSTEM_CALL;
388 
MPU_ulTaskGetIdleRunTimeCounter(void)389 __asm configRUN_TIME_COUNTER_TYPE MPU_ulTaskGetIdleRunTimeCounter( void ) /* FREERTOS_SYSTEM_CALL */
390 {
391     PRESERVE8
392     extern MPU_ulTaskGetIdleRunTimeCounterImpl
393 
394     push {r0}
395     mrs r0, control
396     tst r0, #1
397     bne MPU_ulTaskGetIdleRunTimeCounter_Unpriv
398 MPU_ulTaskGetIdleRunTimeCounter_Priv
399         pop {r0}
400         b MPU_ulTaskGetIdleRunTimeCounterImpl
401 MPU_ulTaskGetIdleRunTimeCounter_Unpriv
402         pop {r0}
403         svc #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter
404 }
405 
406 #endif /* if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) ) */
407 /*-----------------------------------------------------------*/
408 
409 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
410 
411 void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask,
412                                      TaskHookFunction_t pxHookFunction ) FREERTOS_SYSTEM_CALL;
413 
MPU_vTaskSetApplicationTaskTag(TaskHandle_t xTask,TaskHookFunction_t pxHookFunction)414 __asm void MPU_vTaskSetApplicationTaskTag( TaskHandle_t xTask,
415                                            TaskHookFunction_t pxHookFunction ) /* FREERTOS_SYSTEM_CALL */
416 {
417     PRESERVE8
418     extern MPU_vTaskSetApplicationTaskTagImpl
419 
420     push {r0}
421     mrs r0, control
422     tst r0, #1
423     bne MPU_vTaskSetApplicationTaskTag_Unpriv
424 MPU_vTaskSetApplicationTaskTag_Priv
425         pop {r0}
426         b MPU_vTaskSetApplicationTaskTagImpl
427 MPU_vTaskSetApplicationTaskTag_Unpriv
428         pop {r0}
429         svc #SYSTEM_CALL_vTaskSetApplicationTaskTag
430 }
431 
432 #endif /* if ( configUSE_APPLICATION_TASK_TAG == 1 ) */
433 /*-----------------------------------------------------------*/
434 
435 #if ( configUSE_APPLICATION_TASK_TAG == 1 )
436 
437 TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;
438 
MPU_xTaskGetApplicationTaskTag(TaskHandle_t xTask)439 __asm TaskHookFunction_t MPU_xTaskGetApplicationTaskTag( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
440 {
441     PRESERVE8
442     extern MPU_xTaskGetApplicationTaskTagImpl
443 
444     push {r0}
445     mrs r0, control
446     tst r0, #1
447     bne MPU_xTaskGetApplicationTaskTag_Unpriv
448 MPU_xTaskGetApplicationTaskTag_Priv
449         pop {r0}
450         b MPU_xTaskGetApplicationTaskTagImpl
451 MPU_xTaskGetApplicationTaskTag_Unpriv
452         pop {r0}
453         svc #SYSTEM_CALL_xTaskGetApplicationTaskTag
454 }
455 
456 #endif /* if ( configUSE_APPLICATION_TASK_TAG == 1 ) */
457 /*-----------------------------------------------------------*/
458 
459 #if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 )
460 
461 void MPU_vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet,
462                                             BaseType_t xIndex,
463                                             void * pvValue ) FREERTOS_SYSTEM_CALL;
464 
MPU_vTaskSetThreadLocalStoragePointer(TaskHandle_t xTaskToSet,BaseType_t xIndex,void * pvValue)465 __asm void MPU_vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet,
466                                                   BaseType_t xIndex,
467                                                   void * pvValue ) /* FREERTOS_SYSTEM_CALL */
468 {
469     PRESERVE8
470     extern MPU_vTaskSetThreadLocalStoragePointerImpl
471 
472     push {r0}
473     mrs r0, control
474     tst r0, #1
475     bne MPU_vTaskSetThreadLocalStoragePointer_Unpriv
476 MPU_vTaskSetThreadLocalStoragePointer_Priv
477         pop {r0}
478         b MPU_vTaskSetThreadLocalStoragePointerImpl
479 MPU_vTaskSetThreadLocalStoragePointer_Unpriv
480         pop {r0}
481         svc #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer
482 }
483 
484 #endif /* if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 ) */
485 /*-----------------------------------------------------------*/
486 
487 #if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 )
488 
489 void * MPU_pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery,
490                                                BaseType_t xIndex ) FREERTOS_SYSTEM_CALL;
491 
MPU_pvTaskGetThreadLocalStoragePointer(TaskHandle_t xTaskToQuery,BaseType_t xIndex)492 __asm void * MPU_pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery,
493                                                      BaseType_t xIndex ) /* FREERTOS_SYSTEM_CALL */
494 {
495     PRESERVE8
496     extern MPU_pvTaskGetThreadLocalStoragePointerImpl
497 
498     push {r0}
499     mrs r0, control
500     tst r0, #1
501     bne MPU_pvTaskGetThreadLocalStoragePointer_Unpriv
502 MPU_pvTaskGetThreadLocalStoragePointer_Priv
503         pop {r0}
504         b MPU_pvTaskGetThreadLocalStoragePointerImpl
505 MPU_pvTaskGetThreadLocalStoragePointer_Unpriv
506         pop {r0}
507         svc #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer
508 }
509 
510 #endif /* if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 ) */
511 /*-----------------------------------------------------------*/
512 
513 #if ( configUSE_TRACE_FACILITY == 1 )
514 
515 UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t * const pxTaskStatusArray,
516                                       const UBaseType_t uxArraySize,
517                                       configRUN_TIME_COUNTER_TYPE * const pulTotalRunTime ) FREERTOS_SYSTEM_CALL;
518 
MPU_uxTaskGetSystemState(TaskStatus_t * const pxTaskStatusArray,const UBaseType_t uxArraySize,configRUN_TIME_COUNTER_TYPE * const pulTotalRunTime)519 __asm UBaseType_t MPU_uxTaskGetSystemState( TaskStatus_t * const pxTaskStatusArray,
520                                             const UBaseType_t uxArraySize,
521                                             configRUN_TIME_COUNTER_TYPE * const pulTotalRunTime ) /* FREERTOS_SYSTEM_CALL */
522 {
523     PRESERVE8
524     extern MPU_uxTaskGetSystemStateImpl
525 
526     push {r0}
527     mrs r0, control
528     tst r0, #1
529     bne MPU_uxTaskGetSystemState_Unpriv
530 MPU_uxTaskGetSystemState_Priv
531         pop {r0}
532         b MPU_uxTaskGetSystemStateImpl
533 MPU_uxTaskGetSystemState_Unpriv
534         pop {r0}
535         svc #SYSTEM_CALL_uxTaskGetSystemState
536 }
537 
538 #endif /* if ( configUSE_TRACE_FACILITY == 1 ) */
539 /*-----------------------------------------------------------*/
540 
541 #if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 )
542 
543 UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;
544 
MPU_uxTaskGetStackHighWaterMark(TaskHandle_t xTask)545 __asm UBaseType_t MPU_uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
546 {
547     PRESERVE8
548     extern MPU_uxTaskGetStackHighWaterMarkImpl
549 
550     push {r0}
551     mrs r0, control
552     tst r0, #1
553     bne MPU_uxTaskGetStackHighWaterMark_Unpriv
554 MPU_uxTaskGetStackHighWaterMark_Priv
555         pop {r0}
556         b MPU_uxTaskGetStackHighWaterMarkImpl
557 MPU_uxTaskGetStackHighWaterMark_Unpriv
558         pop {r0}
559         svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark
560 }
561 
562 #endif /* if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) */
563 /*-----------------------------------------------------------*/
564 
565 #if ( INCLUDE_uxTaskGetStackHighWaterMark2 == 1 )
566 
567 configSTACK_DEPTH_TYPE MPU_uxTaskGetStackHighWaterMark2( TaskHandle_t xTask ) FREERTOS_SYSTEM_CALL;
568 
MPU_uxTaskGetStackHighWaterMark2(TaskHandle_t xTask)569 __asm configSTACK_DEPTH_TYPE MPU_uxTaskGetStackHighWaterMark2( TaskHandle_t xTask ) /* FREERTOS_SYSTEM_CALL */
570 {
571     PRESERVE8
572     extern MPU_uxTaskGetStackHighWaterMark2Impl
573 
574     push {r0}
575     mrs r0, control
576     tst r0, #1
577     bne MPU_uxTaskGetStackHighWaterMark2_Unpriv
578 MPU_uxTaskGetStackHighWaterMark2_Priv
579         pop {r0}
580         b MPU_uxTaskGetStackHighWaterMark2Impl
581 MPU_uxTaskGetStackHighWaterMark2_Unpriv
582         pop {r0}
583         svc #SYSTEM_CALL_uxTaskGetStackHighWaterMark2
584 }
585 
586 #endif /* if ( INCLUDE_uxTaskGetStackHighWaterMark2 == 1 ) */
587 /*-----------------------------------------------------------*/
588 
589 #if ( ( INCLUDE_xTaskGetCurrentTaskHandle == 1 ) || ( configUSE_MUTEXES == 1 ) )
590 
591 TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void ) FREERTOS_SYSTEM_CALL;
592 
MPU_xTaskGetCurrentTaskHandle(void)593 __asm TaskHandle_t MPU_xTaskGetCurrentTaskHandle( void ) /* FREERTOS_SYSTEM_CALL */
594 {
595     PRESERVE8
596     extern MPU_xTaskGetCurrentTaskHandleImpl
597 
598     push {r0}
599     mrs r0, control
600     tst r0, #1
601     bne MPU_xTaskGetCurrentTaskHandle_Unpriv
602 MPU_xTaskGetCurrentTaskHandle_Priv
603         pop {r0}
604         b MPU_xTaskGetCurrentTaskHandleImpl
605 MPU_xTaskGetCurrentTaskHandle_Unpriv
606         pop {r0}
607         svc #SYSTEM_CALL_xTaskGetCurrentTaskHandle
608 }
609 
610 #endif /* if ( ( INCLUDE_xTaskGetCurrentTaskHandle == 1 ) || ( configUSE_MUTEXES == 1 ) ) */
611 /*-----------------------------------------------------------*/
612 
613 #if ( INCLUDE_xTaskGetSchedulerState == 1 )
614 
615 BaseType_t MPU_xTaskGetSchedulerState( void ) FREERTOS_SYSTEM_CALL;
616 
MPU_xTaskGetSchedulerState(void)617 __asm BaseType_t MPU_xTaskGetSchedulerState( void ) /* FREERTOS_SYSTEM_CALL */
618 {
619     PRESERVE8
620     extern MPU_xTaskGetSchedulerStateImpl
621 
622     push {r0}
623     mrs r0, control
624     tst r0, #1
625     bne MPU_xTaskGetSchedulerState_Unpriv
626 MPU_xTaskGetSchedulerState_Priv
627         pop {r0}
628         b MPU_xTaskGetSchedulerStateImpl
629 MPU_xTaskGetSchedulerState_Unpriv
630         pop {r0}
631         svc #SYSTEM_CALL_xTaskGetSchedulerState
632 }
633 
634 #endif /* if ( INCLUDE_xTaskGetSchedulerState == 1 ) */
635 /*-----------------------------------------------------------*/
636 
637 void MPU_vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) FREERTOS_SYSTEM_CALL;
638 
MPU_vTaskSetTimeOutState(TimeOut_t * const pxTimeOut)639 __asm void MPU_vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) /* FREERTOS_SYSTEM_CALL */
640 {
641     PRESERVE8
642     extern MPU_vTaskSetTimeOutStateImpl
643 
644     push {r0}
645     mrs r0, control
646     tst r0, #1
647     bne MPU_vTaskSetTimeOutState_Unpriv
648 MPU_vTaskSetTimeOutState_Priv
649         pop {r0}
650         b MPU_vTaskSetTimeOutStateImpl
651 MPU_vTaskSetTimeOutState_Unpriv
652         pop {r0}
653         svc #SYSTEM_CALL_vTaskSetTimeOutState
654 }
655 /*-----------------------------------------------------------*/
656 
657 BaseType_t MPU_xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut,
658                                      TickType_t * const pxTicksToWait ) FREERTOS_SYSTEM_CALL;
659 
MPU_xTaskCheckForTimeOut(TimeOut_t * const pxTimeOut,TickType_t * const pxTicksToWait)660 __asm BaseType_t MPU_xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut,
661                                      TickType_t * const pxTicksToWait ) /* FREERTOS_SYSTEM_CALL */
662 {
663     PRESERVE8
664     extern MPU_xTaskCheckForTimeOutImpl
665 
666     push {r0}
667     mrs r0, control
668     tst r0, #1
669     bne MPU_xTaskCheckForTimeOut_Unpriv
670 MPU_xTaskCheckForTimeOut_Priv
671         pop {r0}
672         b MPU_xTaskCheckForTimeOutImpl
673 MPU_xTaskCheckForTimeOut_Unpriv
674         pop {r0}
675         svc #SYSTEM_CALL_xTaskCheckForTimeOut
676 }
677 /*-----------------------------------------------------------*/
678 
679 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
680 
681 BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) FREERTOS_SYSTEM_CALL;
682 
MPU_xTaskGenericNotifyEntry(const xTaskGenericNotifyParams_t * pxParams)683 __asm BaseType_t MPU_xTaskGenericNotifyEntry( const xTaskGenericNotifyParams_t * pxParams ) /* FREERTOS_SYSTEM_CALL */
684 {
685     PRESERVE8
686     extern MPU_xTaskGenericNotifyImpl
687 
688     push {r0}
689     mrs r0, control
690     tst r0, #1
691     bne MPU_xTaskGenericNotify_Unpriv
692 MPU_xTaskGenericNotify_Priv
693         pop {r0}
694         b MPU_xTaskGenericNotifyImpl
695 MPU_xTaskGenericNotify_Unpriv
696         pop {r0}
697         svc #SYSTEM_CALL_xTaskGenericNotify
698 }
699 
700 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
701 /*-----------------------------------------------------------*/
702 
703 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
704 
705 BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) FREERTOS_SYSTEM_CALL;
706 
MPU_xTaskGenericNotifyWaitEntry(const xTaskGenericNotifyWaitParams_t * pxParams)707 __asm BaseType_t MPU_xTaskGenericNotifyWaitEntry( const xTaskGenericNotifyWaitParams_t * pxParams ) /* FREERTOS_SYSTEM_CALL */
708 {
709     PRESERVE8
710     extern MPU_xTaskGenericNotifyWaitImpl
711 
712     push {r0}
713     mrs r0, control
714     tst r0, #1
715     bne MPU_xTaskGenericNotifyWait_Unpriv
716 MPU_xTaskGenericNotifyWait_Priv
717         pop {r0}
718         b MPU_xTaskGenericNotifyWaitImpl
719 MPU_xTaskGenericNotifyWait_Unpriv
720         pop {r0}
721         svc #SYSTEM_CALL_xTaskGenericNotifyWait
722 }
723 
724 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
725 /*-----------------------------------------------------------*/
726 
727 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
728 
729 uint32_t MPU_ulTaskGenericNotifyTake( UBaseType_t uxIndexToWaitOn,
730                                       BaseType_t xClearCountOnExit,
731                                       TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
732 
MPU_ulTaskGenericNotifyTake(UBaseType_t uxIndexToWaitOn,BaseType_t xClearCountOnExit,TickType_t xTicksToWait)733 __asm uint32_t MPU_ulTaskGenericNotifyTake( UBaseType_t uxIndexToWaitOn,
734                                             BaseType_t xClearCountOnExit,
735                                             TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
736 {
737     PRESERVE8
738     extern MPU_ulTaskGenericNotifyTakeImpl
739 
740     push {r0}
741     mrs r0, control
742     tst r0, #1
743     bne MPU_ulTaskGenericNotifyTake_Unpriv
744 MPU_ulTaskGenericNotifyTake_Priv
745         pop {r0}
746         b MPU_ulTaskGenericNotifyTakeImpl
747 MPU_ulTaskGenericNotifyTake_Unpriv
748         pop {r0}
749         svc #SYSTEM_CALL_ulTaskGenericNotifyTake
750 }
751 
752 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
753 /*-----------------------------------------------------------*/
754 
755 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
756 
757 BaseType_t MPU_xTaskGenericNotifyStateClear( TaskHandle_t xTask,
758                                              UBaseType_t uxIndexToClear ) FREERTOS_SYSTEM_CALL;
759 
MPU_xTaskGenericNotifyStateClear(TaskHandle_t xTask,UBaseType_t uxIndexToClear)760 __asm BaseType_t MPU_xTaskGenericNotifyStateClear( TaskHandle_t xTask,
761                                                    UBaseType_t uxIndexToClear ) /* FREERTOS_SYSTEM_CALL */
762 {
763     PRESERVE8
764     extern MPU_xTaskGenericNotifyStateClearImpl
765 
766     push {r0}
767     mrs r0, control
768     tst r0, #1
769     bne MPU_xTaskGenericNotifyStateClear_Unpriv
770 MPU_xTaskGenericNotifyStateClear_Priv
771         pop {r0}
772         b MPU_xTaskGenericNotifyStateClearImpl
773 MPU_xTaskGenericNotifyStateClear_Unpriv
774         pop {r0}
775         svc #SYSTEM_CALL_xTaskGenericNotifyStateClear
776 }
777 
778 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
779 /*-----------------------------------------------------------*/
780 
781 #if ( configUSE_TASK_NOTIFICATIONS == 1 )
782 
783 uint32_t MPU_ulTaskGenericNotifyValueClear( TaskHandle_t xTask,
784                                             UBaseType_t uxIndexToClear,
785                                             uint32_t ulBitsToClear ) FREERTOS_SYSTEM_CALL;
786 
MPU_ulTaskGenericNotifyValueClear(TaskHandle_t xTask,UBaseType_t uxIndexToClear,uint32_t ulBitsToClear)787 __asm uint32_t MPU_ulTaskGenericNotifyValueClear( TaskHandle_t xTask,
788                                                   UBaseType_t uxIndexToClear,
789                                                   uint32_t ulBitsToClear ) /* FREERTOS_SYSTEM_CALL */
790 {
791     PRESERVE8
792     extern MPU_ulTaskGenericNotifyValueClearImpl
793 
794     push {r0}
795     mrs r0, control
796     tst r0, #1
797     bne MPU_ulTaskGenericNotifyValueClear_Unpriv
798 MPU_ulTaskGenericNotifyValueClear_Priv
799         pop {r0}
800         b MPU_ulTaskGenericNotifyValueClearImpl
801 MPU_ulTaskGenericNotifyValueClear_Unpriv
802         pop {r0}
803         svc #SYSTEM_CALL_ulTaskGenericNotifyValueClear
804 }
805 
806 #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */
807 /*-----------------------------------------------------------*/
808 
809 BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue,
810                                   const void * const pvItemToQueue,
811                                   TickType_t xTicksToWait,
812                                   const BaseType_t xCopyPosition ) FREERTOS_SYSTEM_CALL;
813 
MPU_xQueueGenericSend(QueueHandle_t xQueue,const void * const pvItemToQueue,TickType_t xTicksToWait,const BaseType_t xCopyPosition)814 __asm BaseType_t MPU_xQueueGenericSend( QueueHandle_t xQueue,
815                                         const void * const pvItemToQueue,
816                                         TickType_t xTicksToWait,
817                                         const BaseType_t xCopyPosition ) /* FREERTOS_SYSTEM_CALL */
818 {
819     PRESERVE8
820     extern MPU_xQueueGenericSendImpl
821 
822     push {r0}
823     mrs r0, control
824     tst r0, #1
825     bne MPU_xQueueGenericSend_Unpriv
826 MPU_xQueueGenericSend_Priv
827         pop {r0}
828         b MPU_xQueueGenericSendImpl
829 MPU_xQueueGenericSend_Unpriv
830         pop {r0}
831         svc #SYSTEM_CALL_xQueueGenericSend
832 }
833 /*-----------------------------------------------------------*/
834 
835 UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;
836 
MPU_uxQueueMessagesWaiting(const QueueHandle_t xQueue)837 __asm UBaseType_t MPU_uxQueueMessagesWaiting( const QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
838 {
839     PRESERVE8
840     extern MPU_uxQueueMessagesWaitingImpl
841 
842     push {r0}
843     mrs r0, control
844     tst r0, #1
845     bne MPU_uxQueueMessagesWaiting_Unpriv
846 MPU_uxQueueMessagesWaiting_Priv
847         pop {r0}
848         b MPU_uxQueueMessagesWaitingImpl
849 MPU_uxQueueMessagesWaiting_Unpriv
850         pop {r0}
851         svc #SYSTEM_CALL_uxQueueMessagesWaiting
852 }
853 /*-----------------------------------------------------------*/
854 
855 UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;
856 
MPU_uxQueueSpacesAvailable(const QueueHandle_t xQueue)857 __asm UBaseType_t MPU_uxQueueSpacesAvailable( const QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
858 {
859     PRESERVE8
860     extern MPU_uxQueueSpacesAvailableImpl
861 
862     push {r0}
863     mrs r0, control
864     tst r0, #1
865     bne MPU_uxQueueSpacesAvailable_Unpriv
866 MPU_uxQueueSpacesAvailable_Priv
867         pop {r0}
868         b MPU_uxQueueSpacesAvailableImpl
869 MPU_uxQueueSpacesAvailable_Unpriv
870         pop {r0}
871         svc #SYSTEM_CALL_uxQueueSpacesAvailable
872 }
873 /*-----------------------------------------------------------*/
874 
875 BaseType_t MPU_xQueueReceive( QueueHandle_t xQueue,
876                               void * const pvBuffer,
877                               TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
878 
MPU_xQueueReceive(QueueHandle_t xQueue,void * const pvBuffer,TickType_t xTicksToWait)879 __asm BaseType_t MPU_xQueueReceive( QueueHandle_t xQueue,
880                                     void * const pvBuffer,
881                                     TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
882 {
883     PRESERVE8
884     extern MPU_xQueueReceiveImpl
885 
886     push {r0}
887     mrs r0, control
888     tst r0, #1
889     bne MPU_xQueueReceive_Unpriv
890 MPU_xQueueReceive_Priv
891         pop {r0}
892         b MPU_xQueueReceiveImpl
893 MPU_xQueueReceive_Unpriv
894         pop {r0}
895         svc #SYSTEM_CALL_xQueueReceive
896 }
897 /*-----------------------------------------------------------*/
898 
899 BaseType_t MPU_xQueuePeek( QueueHandle_t xQueue,
900                            void * const pvBuffer,
901                            TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
902 
MPU_xQueuePeek(QueueHandle_t xQueue,void * const pvBuffer,TickType_t xTicksToWait)903 __asm BaseType_t MPU_xQueuePeek( QueueHandle_t xQueue,
904                                  void * const pvBuffer,
905                                  TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
906 {
907     PRESERVE8
908     extern MPU_xQueuePeekImpl
909 
910     push {r0}
911     mrs r0, control
912     tst r0, #1
913     bne MPU_xQueuePeek_Unpriv
914 MPU_xQueuePeek_Priv
915         pop {r0}
916         b MPU_xQueuePeekImpl
917 MPU_xQueuePeek_Unpriv
918         pop {r0}
919         svc #SYSTEM_CALL_xQueuePeek
920 }
921 /*-----------------------------------------------------------*/
922 
923 BaseType_t MPU_xQueueSemaphoreTake( QueueHandle_t xQueue,
924                                     TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
925 
MPU_xQueueSemaphoreTake(QueueHandle_t xQueue,TickType_t xTicksToWait)926 __asm BaseType_t MPU_xQueueSemaphoreTake( QueueHandle_t xQueue,
927                                           TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
928 {
929     PRESERVE8
930     extern MPU_xQueueSemaphoreTakeImpl
931 
932     push {r0}
933     mrs r0, control
934     tst r0, #1
935     bne MPU_xQueueSemaphoreTake_Unpriv
936 MPU_xQueueSemaphoreTake_Priv
937         pop {r0}
938         b MPU_xQueueSemaphoreTakeImpl
939 MPU_xQueueSemaphoreTake_Unpriv
940         pop {r0}
941         svc #SYSTEM_CALL_xQueueSemaphoreTake
942 }
943 /*-----------------------------------------------------------*/
944 
945 #if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) )
946 
947 TaskHandle_t MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore ) FREERTOS_SYSTEM_CALL;
948 
MPU_xQueueGetMutexHolder(QueueHandle_t xSemaphore)949 __asm TaskHandle_t MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore ) /* FREERTOS_SYSTEM_CALL */
950 {
951     PRESERVE8
952     extern MPU_xQueueGetMutexHolderImpl
953 
954     push {r0}
955     mrs r0, control
956     tst r0, #1
957     bne MPU_xQueueGetMutexHolder_Unpriv
958 MPU_xQueueGetMutexHolder_Priv
959         pop {r0}
960         b MPU_xQueueGetMutexHolderImpl
961 MPU_xQueueGetMutexHolder_Unpriv
962         pop {r0}
963         svc #SYSTEM_CALL_xQueueGetMutexHolder
964 }
965 
966 #endif /* if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) ) */
967 /*-----------------------------------------------------------*/
968 
969 #if ( configUSE_RECURSIVE_MUTEXES == 1 )
970 
971 BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex,
972                                          TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
973 
MPU_xQueueTakeMutexRecursive(QueueHandle_t xMutex,TickType_t xTicksToWait)974 __asm BaseType_t MPU_xQueueTakeMutexRecursive( QueueHandle_t xMutex,
975                                                TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
976 {
977     PRESERVE8
978     extern MPU_xQueueTakeMutexRecursiveImpl
979 
980     push {r0}
981     mrs r0, control
982     tst r0, #1
983     bne MPU_xQueueTakeMutexRecursive_Unpriv
984 MPU_xQueueTakeMutexRecursive_Priv
985         pop {r0}
986         b MPU_xQueueTakeMutexRecursiveImpl
987 MPU_xQueueTakeMutexRecursive_Unpriv
988         pop {r0}
989         svc #SYSTEM_CALL_xQueueTakeMutexRecursive
990 }
991 
992 #endif /* if ( configUSE_RECURSIVE_MUTEXES == 1 ) */
993 /*-----------------------------------------------------------*/
994 
995 #if ( configUSE_RECURSIVE_MUTEXES == 1 )
996 
997 BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t pxMutex ) FREERTOS_SYSTEM_CALL;
998 
MPU_xQueueGiveMutexRecursive(QueueHandle_t pxMutex)999 __asm BaseType_t MPU_xQueueGiveMutexRecursive( QueueHandle_t pxMutex ) /* FREERTOS_SYSTEM_CALL */
1000 {
1001     PRESERVE8
1002     extern MPU_xQueueGiveMutexRecursiveImpl
1003 
1004     push {r0}
1005     mrs r0, control
1006     tst r0, #1
1007     bne MPU_xQueueGiveMutexRecursive_Unpriv
1008 MPU_xQueueGiveMutexRecursive_Priv
1009         pop {r0}
1010         b MPU_xQueueGiveMutexRecursiveImpl
1011 MPU_xQueueGiveMutexRecursive_Unpriv
1012         pop {r0}
1013         svc #SYSTEM_CALL_xQueueGiveMutexRecursive
1014 }
1015 
1016 #endif /* if ( configUSE_RECURSIVE_MUTEXES == 1 ) */
1017 /*-----------------------------------------------------------*/
1018 
1019 #if ( configUSE_QUEUE_SETS == 1 )
1020 
1021 QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet,
1022                                                 const TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
1023 
MPU_xQueueSelectFromSet(QueueSetHandle_t xQueueSet,const TickType_t xTicksToWait)1024 __asm QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet,
1025                                                       const TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
1026 {
1027     PRESERVE8
1028     extern MPU_xQueueSelectFromSetImpl
1029 
1030     push {r0}
1031     mrs r0, control
1032     tst r0, #1
1033     bne MPU_xQueueSelectFromSet_Unpriv
1034 MPU_xQueueSelectFromSet_Priv
1035         pop {r0}
1036         b MPU_xQueueSelectFromSetImpl
1037 MPU_xQueueSelectFromSet_Unpriv
1038         pop {r0}
1039         svc #SYSTEM_CALL_xQueueSelectFromSet
1040 }
1041 
1042 #endif /* if ( configUSE_QUEUE_SETS == 1 ) */
1043 /*-----------------------------------------------------------*/
1044 
1045 #if ( configUSE_QUEUE_SETS == 1 )
1046 
1047 BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore,
1048                                QueueSetHandle_t xQueueSet ) FREERTOS_SYSTEM_CALL;
1049 
MPU_xQueueAddToSet(QueueSetMemberHandle_t xQueueOrSemaphore,QueueSetHandle_t xQueueSet)1050 __asm BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore,
1051                                      QueueSetHandle_t xQueueSet ) /* FREERTOS_SYSTEM_CALL */
1052 {
1053     PRESERVE8
1054     extern MPU_xQueueAddToSetImpl
1055 
1056     push {r0}
1057     mrs r0, control
1058     tst r0, #1
1059     bne MPU_xQueueAddToSet_Unpriv
1060 MPU_xQueueAddToSet_Priv
1061         pop {r0}
1062         b MPU_xQueueAddToSetImpl
1063 MPU_xQueueAddToSet_Unpriv
1064         pop {r0}
1065         svc #SYSTEM_CALL_xQueueAddToSet
1066 }
1067 
1068 #endif /* if ( configUSE_QUEUE_SETS == 1 ) */
1069 /*-----------------------------------------------------------*/
1070 
1071 #if ( configQUEUE_REGISTRY_SIZE > 0 )
1072 
1073 void MPU_vQueueAddToRegistry( QueueHandle_t xQueue,
1074                               const char * pcName ) FREERTOS_SYSTEM_CALL;
1075 
MPU_vQueueAddToRegistry(QueueHandle_t xQueue,const char * pcName)1076 __asm void MPU_vQueueAddToRegistry( QueueHandle_t xQueue,
1077                                     const char * pcName ) /* FREERTOS_SYSTEM_CALL */
1078 {
1079     PRESERVE8
1080     extern MPU_vQueueAddToRegistryImpl
1081 
1082     push {r0}
1083     mrs r0, control
1084     tst r0, #1
1085     bne MPU_vQueueAddToRegistry_Unpriv
1086 MPU_vQueueAddToRegistry_Priv
1087         pop {r0}
1088         b MPU_vQueueAddToRegistryImpl
1089 MPU_vQueueAddToRegistry_Unpriv
1090         pop {r0}
1091         svc #SYSTEM_CALL_vQueueAddToRegistry
1092 }
1093 
1094 #endif /* if ( configQUEUE_REGISTRY_SIZE > 0 ) */
1095 /*-----------------------------------------------------------*/
1096 
1097 #if ( configQUEUE_REGISTRY_SIZE > 0 )
1098 
1099 void MPU_vQueueUnregisterQueue( QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;
1100 
MPU_vQueueUnregisterQueue(QueueHandle_t xQueue)1101 __asm void MPU_vQueueUnregisterQueue( QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
1102 {
1103     PRESERVE8
1104     extern MPU_vQueueUnregisterQueueImpl
1105 
1106     push {r0}
1107     mrs r0, control
1108     tst r0, #1
1109     bne MPU_vQueueUnregisterQueue_Unpriv
1110 MPU_vQueueUnregisterQueue_Priv
1111         pop {r0}
1112         b MPU_vQueueUnregisterQueueImpl
1113 MPU_vQueueUnregisterQueue_Unpriv
1114         pop {r0}
1115         svc #SYSTEM_CALL_vQueueUnregisterQueue
1116 }
1117 
1118 #endif /* if ( configQUEUE_REGISTRY_SIZE > 0 ) */
1119 /*-----------------------------------------------------------*/
1120 
1121 #if ( configQUEUE_REGISTRY_SIZE > 0 )
1122 
1123 const char * MPU_pcQueueGetName( QueueHandle_t xQueue ) FREERTOS_SYSTEM_CALL;
1124 
MPU_pcQueueGetName(QueueHandle_t xQueue)1125 __asm const char * MPU_pcQueueGetName( QueueHandle_t xQueue ) /* FREERTOS_SYSTEM_CALL */
1126 {
1127     PRESERVE8
1128     extern MPU_pcQueueGetNameImpl
1129 
1130     push {r0}
1131     mrs r0, control
1132     tst r0, #1
1133     bne MPU_pcQueueGetName_Unpriv
1134 MPU_pcQueueGetName_Priv
1135         pop {r0}
1136         b MPU_pcQueueGetNameImpl
1137 MPU_pcQueueGetName_Unpriv
1138         pop {r0}
1139         svc #SYSTEM_CALL_pcQueueGetName
1140 }
1141 
1142 #endif /* if ( configQUEUE_REGISTRY_SIZE > 0 ) */
1143 /*-----------------------------------------------------------*/
1144 
1145 #if ( configUSE_TIMERS == 1 )
1146 
1147 void * MPU_pvTimerGetTimerID( const TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;
1148 
MPU_pvTimerGetTimerID(const TimerHandle_t xTimer)1149 __asm void * MPU_pvTimerGetTimerID( const TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
1150 {
1151     PRESERVE8
1152     extern MPU_pvTimerGetTimerIDImpl
1153 
1154     push {r0}
1155     mrs r0, control
1156     tst r0, #1
1157     bne MPU_pvTimerGetTimerID_Unpriv
1158 MPU_pvTimerGetTimerID_Priv
1159         pop {r0}
1160         b MPU_pvTimerGetTimerIDImpl
1161 MPU_pvTimerGetTimerID_Unpriv
1162         pop {r0}
1163         svc #SYSTEM_CALL_pvTimerGetTimerID
1164 }
1165 
1166 #endif /* if ( configUSE_TIMERS == 1 ) */
1167 /*-----------------------------------------------------------*/
1168 
1169 #if ( configUSE_TIMERS == 1 )
1170 
1171 void MPU_vTimerSetTimerID( TimerHandle_t xTimer,
1172                            void * pvNewID ) FREERTOS_SYSTEM_CALL;
1173 
MPU_vTimerSetTimerID(TimerHandle_t xTimer,void * pvNewID)1174 __asm void MPU_vTimerSetTimerID( TimerHandle_t xTimer,
1175                                  void * pvNewID ) /* FREERTOS_SYSTEM_CALL */
1176 {
1177     PRESERVE8
1178     extern MPU_vTimerSetTimerIDImpl
1179 
1180     push {r0}
1181     mrs r0, control
1182     tst r0, #1
1183     bne MPU_vTimerSetTimerID_Unpriv
1184 MPU_vTimerSetTimerID_Priv
1185         pop {r0}
1186         b MPU_vTimerSetTimerIDImpl
1187 MPU_vTimerSetTimerID_Unpriv
1188         pop {r0}
1189         svc #SYSTEM_CALL_vTimerSetTimerID
1190 }
1191 
1192 #endif /* if ( configUSE_TIMERS == 1 ) */
1193 /*-----------------------------------------------------------*/
1194 
1195 #if ( configUSE_TIMERS == 1 )
1196 
1197 BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;
1198 
MPU_xTimerIsTimerActive(TimerHandle_t xTimer)1199 __asm BaseType_t MPU_xTimerIsTimerActive( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
1200 {
1201     PRESERVE8
1202     extern MPU_xTimerIsTimerActiveImpl
1203 
1204     push {r0}
1205     mrs r0, control
1206     tst r0, #1
1207     bne MPU_xTimerIsTimerActive_Unpriv
1208 MPU_xTimerIsTimerActive_Priv
1209         pop {r0}
1210         b MPU_xTimerIsTimerActiveImpl
1211 MPU_xTimerIsTimerActive_Unpriv
1212         pop {r0}
1213         svc #SYSTEM_CALL_xTimerIsTimerActive
1214 }
1215 
1216 #endif /* if ( configUSE_TIMERS == 1 ) */
1217 /*-----------------------------------------------------------*/
1218 
1219 #if ( configUSE_TIMERS == 1 )
1220 
1221 TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) FREERTOS_SYSTEM_CALL;
1222 
MPU_xTimerGetTimerDaemonTaskHandle(void)1223 __asm TaskHandle_t MPU_xTimerGetTimerDaemonTaskHandle( void ) /* FREERTOS_SYSTEM_CALL */
1224 {
1225     PRESERVE8
1226     extern MPU_xTimerGetTimerDaemonTaskHandleImpl
1227 
1228     push {r0}
1229     mrs r0, control
1230     tst r0, #1
1231     bne MPU_xTimerGetTimerDaemonTaskHandle_Unpriv
1232 MPU_xTimerGetTimerDaemonTaskHandle_Priv
1233         pop {r0}
1234         b MPU_xTimerGetTimerDaemonTaskHandleImpl
1235 MPU_xTimerGetTimerDaemonTaskHandle_Unpriv
1236         pop {r0}
1237         svc #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle
1238 }
1239 
1240 #endif /* if ( configUSE_TIMERS == 1 ) */
1241 /*-----------------------------------------------------------*/
1242 
1243 #if ( configUSE_TIMERS == 1 )
1244 
1245 BaseType_t MPU_xTimerGenericCommandFromTaskEntry( const xTimerGenericCommandFromTaskParams_t * pxParams ) FREERTOS_SYSTEM_CALL;
1246 
MPU_xTimerGenericCommandFromTaskEntry(const xTimerGenericCommandFromTaskParams_t * pxParams)1247 __asm BaseType_t MPU_xTimerGenericCommandFromTaskEntry( const xTimerGenericCommandFromTaskParams_t * pxParams ) /* FREERTOS_SYSTEM_CALL */
1248 {
1249     PRESERVE8
1250     extern MPU_xTimerGenericCommandFromTaskImpl
1251 
1252     push {r0}
1253     mrs r0, control
1254     tst r0, #1
1255     bne MPU_xTimerGenericCommandFromTask_Unpriv
1256 MPU_xTimerGenericCommandFromTask_Priv
1257         pop {r0}
1258         b MPU_xTimerGenericCommandFromTaskImpl
1259 MPU_xTimerGenericCommandFromTask_Unpriv
1260         pop {r0}
1261         svc #SYSTEM_CALL_xTimerGenericCommandFromTask
1262 }
1263 
1264 #endif /* if ( configUSE_TIMERS == 1 ) */
1265 /*-----------------------------------------------------------*/
1266 
1267 #if ( configUSE_TIMERS == 1 )
1268 
1269 const char * MPU_pcTimerGetName( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;
1270 
MPU_pcTimerGetName(TimerHandle_t xTimer)1271 __asm const char * MPU_pcTimerGetName( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
1272 {
1273     PRESERVE8
1274     extern MPU_pcTimerGetNameImpl
1275 
1276     push {r0}
1277     mrs r0, control
1278     tst r0, #1
1279     bne MPU_pcTimerGetName_Unpriv
1280 MPU_pcTimerGetName_Priv
1281         pop {r0}
1282         b MPU_pcTimerGetNameImpl
1283 MPU_pcTimerGetName_Unpriv
1284         pop {r0}
1285         svc #SYSTEM_CALL_pcTimerGetName
1286 }
1287 
1288 #endif /* if ( configUSE_TIMERS == 1 ) */
1289 /*-----------------------------------------------------------*/
1290 
1291 #if ( configUSE_TIMERS == 1 )
1292 
1293 void MPU_vTimerSetReloadMode( TimerHandle_t xTimer,
1294                               const BaseType_t uxAutoReload ) FREERTOS_SYSTEM_CALL;
1295 
MPU_vTimerSetReloadMode(TimerHandle_t xTimer,const BaseType_t uxAutoReload)1296 __asm void MPU_vTimerSetReloadMode( TimerHandle_t xTimer,
1297                                     const BaseType_t uxAutoReload ) /* FREERTOS_SYSTEM_CALL */
1298 {
1299     PRESERVE8
1300     extern MPU_vTimerSetReloadModeImpl
1301 
1302     push {r0}
1303     mrs r0, control
1304     tst r0, #1
1305     bne MPU_vTimerSetReloadMode_Unpriv
1306 MPU_vTimerSetReloadMode_Priv
1307         pop {r0}
1308         b MPU_vTimerSetReloadModeImpl
1309 MPU_vTimerSetReloadMode_Unpriv
1310         pop {r0}
1311         svc #SYSTEM_CALL_vTimerSetReloadMode
1312 }
1313 
1314 #endif /* if ( configUSE_TIMERS == 1 ) */
1315 /*-----------------------------------------------------------*/
1316 
1317 #if ( configUSE_TIMERS == 1 )
1318 
1319 BaseType_t MPU_xTimerGetReloadMode( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;
1320 
MPU_xTimerGetReloadMode(TimerHandle_t xTimer)1321 __asm BaseType_t MPU_xTimerGetReloadMode( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
1322 {
1323     PRESERVE8
1324     extern MPU_xTimerGetReloadModeImpl
1325 
1326     push {r0}
1327     mrs r0, control
1328     tst r0, #1
1329     bne MPU_xTimerGetReloadMode_Unpriv
1330 MPU_xTimerGetReloadMode_Priv
1331         pop {r0}
1332         b MPU_xTimerGetReloadModeImpl
1333 MPU_xTimerGetReloadMode_Unpriv
1334         pop {r0}
1335         svc #SYSTEM_CALL_xTimerGetReloadMode
1336 }
1337 
1338 #endif /* if ( configUSE_TIMERS == 1 ) */
1339 /*-----------------------------------------------------------*/
1340 
1341 #if ( configUSE_TIMERS == 1 )
1342 
1343 UBaseType_t MPU_uxTimerGetReloadMode( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;
1344 
MPU_uxTimerGetReloadMode(TimerHandle_t xTimer)1345 __asm UBaseType_t MPU_uxTimerGetReloadMode( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
1346 {
1347     PRESERVE8
1348     extern MPU_uxTimerGetReloadModeImpl
1349 
1350     push {r0}
1351     mrs r0, control
1352     tst r0, #1
1353     bne MPU_uxTimerGetReloadMode_Unpriv
1354 MPU_uxTimerGetReloadMode_Priv
1355         pop {r0}
1356         b MPU_uxTimerGetReloadModeImpl
1357 MPU_uxTimerGetReloadMode_Unpriv
1358         pop {r0}
1359         svc #SYSTEM_CALL_uxTimerGetReloadMode
1360 }
1361 
1362 #endif /* if ( configUSE_TIMERS == 1 ) */
1363 /*-----------------------------------------------------------*/
1364 
1365 #if ( configUSE_TIMERS == 1 )
1366 
1367 TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;
1368 
MPU_xTimerGetPeriod(TimerHandle_t xTimer)1369 __asm TickType_t MPU_xTimerGetPeriod( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
1370 {
1371     PRESERVE8
1372     extern MPU_xTimerGetPeriodImpl
1373 
1374     push {r0}
1375     mrs r0, control
1376     tst r0, #1
1377     bne MPU_xTimerGetPeriod_Unpriv
1378 MPU_xTimerGetPeriod_Priv
1379         pop {r0}
1380         b MPU_xTimerGetPeriodImpl
1381 MPU_xTimerGetPeriod_Unpriv
1382         pop {r0}
1383         svc #SYSTEM_CALL_xTimerGetPeriod
1384 }
1385 
1386 #endif /* if ( configUSE_TIMERS == 1 ) */
1387 /*-----------------------------------------------------------*/
1388 
1389 #if ( configUSE_TIMERS == 1 )
1390 
1391 TickType_t MPU_xTimerGetExpiryTime( TimerHandle_t xTimer ) FREERTOS_SYSTEM_CALL;
1392 
MPU_xTimerGetExpiryTime(TimerHandle_t xTimer)1393 __asm TickType_t MPU_xTimerGetExpiryTime( TimerHandle_t xTimer ) /* FREERTOS_SYSTEM_CALL */
1394 {
1395     PRESERVE8
1396     extern MPU_xTimerGetExpiryTimeImpl
1397 
1398     push {r0}
1399     mrs r0, control
1400     tst r0, #1
1401     bne MPU_xTimerGetExpiryTime_Unpriv
1402 MPU_xTimerGetExpiryTime_Priv
1403         pop {r0}
1404         b MPU_xTimerGetExpiryTimeImpl
1405 MPU_xTimerGetExpiryTime_Unpriv
1406         pop {r0}
1407         svc #SYSTEM_CALL_xTimerGetExpiryTime
1408 }
1409 
1410 #endif /* if ( configUSE_TIMERS == 1 ) */
1411 /*-----------------------------------------------------------*/
1412 
1413 EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) FREERTOS_SYSTEM_CALL;
1414 
MPU_xEventGroupWaitBitsEntry(const xEventGroupWaitBitsParams_t * pxParams)1415 __asm EventBits_t MPU_xEventGroupWaitBitsEntry( const xEventGroupWaitBitsParams_t * pxParams ) /* FREERTOS_SYSTEM_CALL */
1416 {
1417     PRESERVE8
1418     extern MPU_xEventGroupWaitBitsImpl
1419 
1420     push {r0}
1421     mrs r0, control
1422     tst r0, #1
1423     bne MPU_xEventGroupWaitBits_Unpriv
1424 MPU_xEventGroupWaitBits_Priv
1425         pop {r0}
1426         b MPU_xEventGroupWaitBitsImpl
1427 MPU_xEventGroupWaitBits_Unpriv
1428         pop {r0}
1429         svc #SYSTEM_CALL_xEventGroupWaitBits
1430 }
1431 /*-----------------------------------------------------------*/
1432 
1433 EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup,
1434                                       const EventBits_t uxBitsToClear ) FREERTOS_SYSTEM_CALL;
1435 
MPU_xEventGroupClearBits(EventGroupHandle_t xEventGroup,const EventBits_t uxBitsToClear)1436 __asm EventBits_t MPU_xEventGroupClearBits( EventGroupHandle_t xEventGroup,
1437                                             const EventBits_t uxBitsToClear ) /* FREERTOS_SYSTEM_CALL */
1438 {
1439     PRESERVE8
1440     extern MPU_xEventGroupClearBitsImpl
1441 
1442     push {r0}
1443     mrs r0, control
1444     tst r0, #1
1445     bne MPU_xEventGroupClearBits_Unpriv
1446 MPU_xEventGroupClearBits_Priv
1447         pop {r0}
1448         b MPU_xEventGroupClearBitsImpl
1449 MPU_xEventGroupClearBits_Unpriv
1450         pop {r0}
1451         svc #SYSTEM_CALL_xEventGroupClearBits
1452 }
1453 /*-----------------------------------------------------------*/
1454 
1455 EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup,
1456                                     const EventBits_t uxBitsToSet ) FREERTOS_SYSTEM_CALL;
1457 
MPU_xEventGroupSetBits(EventGroupHandle_t xEventGroup,const EventBits_t uxBitsToSet)1458 __asm EventBits_t MPU_xEventGroupSetBits( EventGroupHandle_t xEventGroup,
1459                                           const EventBits_t uxBitsToSet ) /* FREERTOS_SYSTEM_CALL */
1460 {
1461     PRESERVE8
1462     extern MPU_xEventGroupSetBitsImpl
1463 
1464     push {r0}
1465     mrs r0, control
1466     tst r0, #1
1467     bne MPU_xEventGroupSetBits_Unpriv
1468 MPU_xEventGroupSetBits_Priv
1469         pop {r0}
1470         b MPU_xEventGroupSetBitsImpl
1471 MPU_xEventGroupSetBits_Unpriv
1472         pop {r0}
1473         svc #SYSTEM_CALL_xEventGroupSetBits
1474 }
1475 /*-----------------------------------------------------------*/
1476 
1477 EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup,
1478                                  const EventBits_t uxBitsToSet,
1479                                  const EventBits_t uxBitsToWaitFor,
1480                                  TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
1481 
MPU_xEventGroupSync(EventGroupHandle_t xEventGroup,const EventBits_t uxBitsToSet,const EventBits_t uxBitsToWaitFor,TickType_t xTicksToWait)1482 __asm EventBits_t MPU_xEventGroupSync( EventGroupHandle_t xEventGroup,
1483                                        const EventBits_t uxBitsToSet,
1484                                        const EventBits_t uxBitsToWaitFor,
1485                                        TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
1486 {
1487     PRESERVE8
1488     extern MPU_xEventGroupSyncImpl
1489 
1490     push {r0}
1491     mrs r0, control
1492     tst r0, #1
1493     bne MPU_xEventGroupSync_Unpriv
1494 MPU_xEventGroupSync_Priv
1495         pop {r0}
1496         b MPU_xEventGroupSyncImpl
1497 MPU_xEventGroupSync_Unpriv
1498         pop {r0}
1499         svc #SYSTEM_CALL_xEventGroupSync
1500 }
1501 /*-----------------------------------------------------------*/
1502 
1503 #if ( configUSE_TRACE_FACILITY == 1 )
1504 
1505 UBaseType_t MPU_uxEventGroupGetNumber( void * xEventGroup ) FREERTOS_SYSTEM_CALL;
1506 
MPU_uxEventGroupGetNumber(void * xEventGroup)1507 __asm UBaseType_t MPU_uxEventGroupGetNumber( void * xEventGroup ) /* FREERTOS_SYSTEM_CALL */
1508 {
1509     PRESERVE8
1510     extern MPU_uxEventGroupGetNumberImpl
1511 
1512     push {r0}
1513     mrs r0, control
1514     tst r0, #1
1515     bne MPU_uxEventGroupGetNumber_Unpriv
1516 MPU_uxEventGroupGetNumber_Priv
1517         pop {r0}
1518         b MPU_uxEventGroupGetNumberImpl
1519 MPU_uxEventGroupGetNumber_Unpriv
1520         pop {r0}
1521         svc #SYSTEM_CALL_uxEventGroupGetNumber
1522 }
1523 
1524 #endif /*( configUSE_TRACE_FACILITY == 1 )*/
1525 /*-----------------------------------------------------------*/
1526 
1527 #if ( configUSE_TRACE_FACILITY == 1 )
1528 
1529 void MPU_vEventGroupSetNumber( void * xEventGroup,
1530                                UBaseType_t uxEventGroupNumber ) FREERTOS_SYSTEM_CALL;
1531 
MPU_vEventGroupSetNumber(void * xEventGroup,UBaseType_t uxEventGroupNumber)1532 __asm void MPU_vEventGroupSetNumber( void * xEventGroup,
1533                                      UBaseType_t uxEventGroupNumber ) /* FREERTOS_SYSTEM_CALL */
1534 {
1535     PRESERVE8
1536     extern MPU_vEventGroupSetNumberImpl
1537 
1538     push {r0}
1539     mrs r0, control
1540     tst r0, #1
1541     bne MPU_vEventGroupSetNumber_Unpriv
1542 MPU_vEventGroupSetNumber_Priv
1543         pop {r0}
1544         b MPU_vEventGroupSetNumberImpl
1545 MPU_vEventGroupSetNumber_Unpriv
1546         pop {r0}
1547         svc #SYSTEM_CALL_vEventGroupSetNumber
1548 }
1549 
1550 #endif /*( configUSE_TRACE_FACILITY == 1 )*/
1551 /*-----------------------------------------------------------*/
1552 
1553 size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer,
1554                               const void * pvTxData,
1555                               size_t xDataLengthBytes,
1556                               TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
1557 
MPU_xStreamBufferSend(StreamBufferHandle_t xStreamBuffer,const void * pvTxData,size_t xDataLengthBytes,TickType_t xTicksToWait)1558 __asm size_t MPU_xStreamBufferSend( StreamBufferHandle_t xStreamBuffer,
1559                                     const void * pvTxData,
1560                                     size_t xDataLengthBytes,
1561                                     TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
1562 {
1563     PRESERVE8
1564     extern MPU_xStreamBufferSendImpl
1565 
1566     push {r0}
1567     mrs r0, control
1568     tst r0, #1
1569     bne MPU_xStreamBufferSend_Unpriv
1570 MPU_xStreamBufferSend_Priv
1571         pop {r0}
1572         b MPU_xStreamBufferSendImpl
1573 MPU_xStreamBufferSend_Unpriv
1574         pop {r0}
1575         svc #SYSTEM_CALL_xStreamBufferSend
1576 }
1577 /*-----------------------------------------------------------*/
1578 
1579 size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer,
1580                                  void * pvRxData,
1581                                  size_t xBufferLengthBytes,
1582                                  TickType_t xTicksToWait ) FREERTOS_SYSTEM_CALL;
1583 
MPU_xStreamBufferReceive(StreamBufferHandle_t xStreamBuffer,void * pvRxData,size_t xBufferLengthBytes,TickType_t xTicksToWait)1584 __asm size_t MPU_xStreamBufferReceive( StreamBufferHandle_t xStreamBuffer,
1585                                        void * pvRxData,
1586                                        size_t xBufferLengthBytes,
1587                                        TickType_t xTicksToWait ) /* FREERTOS_SYSTEM_CALL */
1588 {
1589     PRESERVE8
1590     extern MPU_xStreamBufferReceiveImpl
1591 
1592     push {r0}
1593     mrs r0, control
1594     tst r0, #1
1595     bne MPU_xStreamBufferReceive_Unpriv
1596 MPU_xStreamBufferReceive_Priv
1597         pop {r0}
1598         b MPU_xStreamBufferReceiveImpl
1599 MPU_xStreamBufferReceive_Unpriv
1600         pop {r0}
1601         svc #SYSTEM_CALL_xStreamBufferReceive
1602 }
1603 /*-----------------------------------------------------------*/
1604 
1605 BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;
1606 
MPU_xStreamBufferIsFull(StreamBufferHandle_t xStreamBuffer)1607 __asm BaseType_t MPU_xStreamBufferIsFull( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
1608 {
1609     PRESERVE8
1610     extern MPU_xStreamBufferIsFullImpl
1611 
1612     push {r0}
1613     mrs r0, control
1614     tst r0, #1
1615     bne MPU_xStreamBufferIsFull_Unpriv
1616 MPU_xStreamBufferIsFull_Priv
1617         pop {r0}
1618         b MPU_xStreamBufferIsFullImpl
1619 MPU_xStreamBufferIsFull_Unpriv
1620         pop {r0}
1621         svc #SYSTEM_CALL_xStreamBufferIsFull
1622 }
1623 /*-----------------------------------------------------------*/
1624 
1625 BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;
1626 
MPU_xStreamBufferIsEmpty(StreamBufferHandle_t xStreamBuffer)1627 __asm BaseType_t MPU_xStreamBufferIsEmpty( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
1628 {
1629     PRESERVE8
1630     extern MPU_xStreamBufferIsEmptyImpl
1631 
1632     push {r0}
1633     mrs r0, control
1634     tst r0, #1
1635     bne MPU_xStreamBufferIsEmpty_Unpriv
1636 MPU_xStreamBufferIsEmpty_Priv
1637         pop {r0}
1638         b MPU_xStreamBufferIsEmptyImpl
1639 MPU_xStreamBufferIsEmpty_Unpriv
1640         pop {r0}
1641         svc #SYSTEM_CALL_xStreamBufferIsEmpty
1642 }
1643 /*-----------------------------------------------------------*/
1644 
1645 size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;
1646 
MPU_xStreamBufferSpacesAvailable(StreamBufferHandle_t xStreamBuffer)1647 __asm size_t MPU_xStreamBufferSpacesAvailable( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
1648 {
1649     PRESERVE8
1650     extern MPU_xStreamBufferSpacesAvailableImpl
1651 
1652     push {r0}
1653     mrs r0, control
1654     tst r0, #1
1655     bne MPU_xStreamBufferSpacesAvailable_Unpriv
1656 MPU_xStreamBufferSpacesAvailable_Priv
1657         pop {r0}
1658         b MPU_xStreamBufferSpacesAvailableImpl
1659 MPU_xStreamBufferSpacesAvailable_Unpriv
1660         pop {r0}
1661         svc #SYSTEM_CALL_xStreamBufferSpacesAvailable
1662 }
1663 /*-----------------------------------------------------------*/
1664 
1665 size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;
1666 
MPU_xStreamBufferBytesAvailable(StreamBufferHandle_t xStreamBuffer)1667 __asm size_t MPU_xStreamBufferBytesAvailable( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
1668 {
1669     PRESERVE8
1670     extern MPU_xStreamBufferBytesAvailableImpl
1671 
1672     push {r0}
1673     mrs r0, control
1674     tst r0, #1
1675     bne MPU_xStreamBufferBytesAvailable_Unpriv
1676 MPU_xStreamBufferBytesAvailable_Priv
1677         pop {r0}
1678         b MPU_xStreamBufferBytesAvailableImpl
1679 MPU_xStreamBufferBytesAvailable_Unpriv
1680         pop {r0}
1681         svc #SYSTEM_CALL_xStreamBufferBytesAvailable
1682 }
1683 /*-----------------------------------------------------------*/
1684 
1685 BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer,
1686                                              size_t xTriggerLevel ) FREERTOS_SYSTEM_CALL;
1687 
MPU_xStreamBufferSetTriggerLevel(StreamBufferHandle_t xStreamBuffer,size_t xTriggerLevel)1688 __asm BaseType_t MPU_xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer,
1689                                                    size_t xTriggerLevel ) /* FREERTOS_SYSTEM_CALL */
1690 {
1691     PRESERVE8
1692     extern MPU_xStreamBufferSetTriggerLevelImpl
1693 
1694     push {r0}
1695     mrs r0, control
1696     tst r0, #1
1697     bne MPU_xStreamBufferSetTriggerLevel_Unpriv
1698 MPU_xStreamBufferSetTriggerLevel_Priv
1699         pop {r0}
1700         b MPU_xStreamBufferSetTriggerLevelImpl
1701 MPU_xStreamBufferSetTriggerLevel_Unpriv
1702         pop {r0}
1703         svc #SYSTEM_CALL_xStreamBufferSetTriggerLevel
1704 }
1705 /*-----------------------------------------------------------*/
1706 
1707 size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) FREERTOS_SYSTEM_CALL;
1708 
MPU_xStreamBufferNextMessageLengthBytes(StreamBufferHandle_t xStreamBuffer)1709 __asm size_t MPU_xStreamBufferNextMessageLengthBytes( StreamBufferHandle_t xStreamBuffer ) /* FREERTOS_SYSTEM_CALL */
1710 {
1711     PRESERVE8
1712     extern MPU_xStreamBufferNextMessageLengthBytesImpl
1713 
1714     push {r0}
1715     mrs r0, control
1716     tst r0, #1
1717     bne MPU_xStreamBufferNextMessageLengthBytes_Unpriv
1718 MPU_xStreamBufferNextMessageLengthBytes_Priv
1719         pop {r0}
1720         b MPU_xStreamBufferNextMessageLengthBytesImpl
1721 MPU_xStreamBufferNextMessageLengthBytes_Unpriv
1722         pop {r0}
1723         svc #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes
1724 }
1725 /*-----------------------------------------------------------*/
1726 
1727 #endif /* configUSE_MPU_WRAPPERS_V1 == 0 */
1728