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