/* * FreeRTOS Kernel V11.1.0 * Copyright (C) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * SPDX-License-Identifier: MIT * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of * the Software, and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * https://www.FreeRTOS.org * https://github.com/FreeRTOS * */ /* ----------------------------------------------------------------------------------- */ .arm .syntax unified .section freertos_system_calls #define FREERTOS_ASSEMBLY #include "FreeRTOSConfig.h" #include "portmacro_asm.h" #include "mpu_syscall_numbers.h" #undef FREERTOS_ASSEMBLY /* ----------------------- Start of Port Specific System Calls ----------------------- */ /* * void vPortYield( void ); */ .align 4 .global vPortYield .type vPortYield, %function vPortYield: SVC #portSVC_YIELD BX LR /* ----------------------------------------------------------------------------------- */ /* * void vPortSystemCallExit( void ); */ .align 4 .global vPortSystemCallExit .type vPortSystemCallExit, %function vPortSystemCallExit: SVC #portSVC_SYSTEM_CALL_EXIT BX LR /* ----------------------------------------------------------------------------------- */ /* * BaseType_t xPortIsPrivileged( void ); * * According to the Procedure Call Standard for the ARM Architecture (AAPCS): * - Return value must be in R0. */ .align 4 .global xPortIsPrivileged .type xPortIsPrivileged, %function xPortIsPrivileged: MRS R0, CPSR /* R0 = CPSR. */ AND R0, R0, #0x1F /* R0 = R0 & 0x1F. Extract mode bits.*/ CMP R0, #USER_MODE /* If R0 == #USER_MODE. */ MOVEQ R0, #0x0 /* Then, set R0 to 0 to indicate that the processer is not privileged. */ MOVNE R0, #0x01 /* Otherwise, set R0 to 1 to indicate that the processer is privileged. */ BX LR /* ----------------------------------------------------------------------------------- */ /* * UBaseType_t ulPortCountLeadingZeros( UBaseType_t ulBitmap ); * * According to the Procedure Call Standard for the ARM Architecture (AAPCS): * - Parameter ulBitmap is passed in R0. * - Return value must be in R0. */ .align 4 .weak ulPortCountLeadingZeros .type ulPortCountLeadingZeros, %function ulPortCountLeadingZeros: CLZ R0, R0 BX LR /* ------------------- End of Port Specific System Calls ------------------- */ .macro INVOKE_SYSTEM_CALL systemCallNumber, systemCallImpl PUSH {R0} MRS R0, CPSR AND R0, R0, #0x1F CMP R0, #USER_MODE POP {R0} SVCEQ \systemCallNumber B \systemCallImpl .endm /* ----------------------------------------------------------------------------------- */ .extern MPU_xTaskGetTickCountImpl .align 4 .global MPU_xTaskGetTickCount .type MPU_xTaskGetTickCount, function MPU_xTaskGetTickCount: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskGetTickCount, MPU_xTaskGetTickCountImpl /* ----------------------------------------------------------------------------------- */ .extern MPU_uxTaskGetNumberOfTasksImpl .align 4 .global MPU_uxTaskGetNumberOfTasks .type MPU_uxTaskGetNumberOfTasks, function MPU_uxTaskGetNumberOfTasks: INVOKE_SYSTEM_CALL #SYSTEM_CALL_uxTaskGetNumberOfTasks, MPU_uxTaskGetNumberOfTasksImpl /* ----------------------------------------------------------------------------------- */ .extern MPU_vTaskSetTimeOutStateImpl .align 4 .global MPU_vTaskSetTimeOutState .type MPU_vTaskSetTimeOutState, function MPU_vTaskSetTimeOutState: INVOKE_SYSTEM_CALL #SYSTEM_CALL_vTaskSetTimeOutState, MPU_vTaskSetTimeOutStateImpl /* ----------------------------------------------------------------------------------- */ .extern MPU_xTaskCheckForTimeOutImpl .align 4 .global MPU_xTaskCheckForTimeOut .type MPU_xTaskCheckForTimeOut, function MPU_xTaskCheckForTimeOut: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskCheckForTimeOut, MPU_xTaskCheckForTimeOutImpl /* ----------------------------------------------------------------------------------- */ .extern MPU_xQueueGenericSendImpl .align 4 .global MPU_xQueueGenericSend .type MPU_xQueueGenericSend, function MPU_xQueueGenericSend: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xQueueGenericSend, MPU_xQueueGenericSendImpl /* ----------------------------------------------------------------------------------- */ .extern MPU_uxQueueMessagesWaitingImpl .align 4 .global MPU_uxQueueMessagesWaiting .type MPU_uxQueueMessagesWaiting, function MPU_uxQueueMessagesWaiting: INVOKE_SYSTEM_CALL #SYSTEM_CALL_uxQueueMessagesWaiting, MPU_uxQueueMessagesWaitingImpl /* ----------------------------------------------------------------------------------- */ .extern MPU_uxQueueSpacesAvailableImpl .align 4 .global MPU_uxQueueSpacesAvailable .type MPU_uxQueueSpacesAvailable, function MPU_uxQueueSpacesAvailable: INVOKE_SYSTEM_CALL #SYSTEM_CALL_uxQueueSpacesAvailable, MPU_uxQueueSpacesAvailableImpl /* ----------------------------------------------------------------------------------- */ .extern MPU_xQueueReceiveImpl .align 4 .global MPU_xQueueReceive .type MPU_xQueueReceive, function MPU_xQueueReceive: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xQueueReceive, MPU_xQueueReceiveImpl /* ----------------------------------------------------------------------------------- */ .extern MPU_xQueuePeekImpl .align 4 .global MPU_xQueuePeek .type MPU_xQueuePeek, function MPU_xQueuePeek: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xQueuePeek, MPU_xQueuePeekImpl /* ----------------------------------------------------------------------------------- */ .extern MPU_xQueueSemaphoreTakeImpl .align 4 .global MPU_xQueueSemaphoreTake .type MPU_xQueueSemaphoreTake, function MPU_xQueueSemaphoreTake: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xQueueSemaphoreTake, MPU_xQueueSemaphoreTakeImpl /* ----------------------------------------------------------------------------------- */ #if ( configUSE_EVENT_GROUPS == 1 ) .extern MPU_xEventGroupWaitBitsImpl .align 4 .global MPU_xEventGroupWaitBitsEntry .type MPU_xEventGroupWaitBitsEntry, function MPU_xEventGroupWaitBitsEntry: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xEventGroupWaitBits, MPU_xEventGroupWaitBitsImpl /* ----------------------------------------------------------------------------------- */ .extern MPU_xEventGroupClearBitsImpl .align 4 .global MPU_xEventGroupClearBits .type MPU_xEventGroupClearBits, function MPU_xEventGroupClearBits: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xEventGroupClearBits, MPU_xEventGroupClearBitsImpl /* ----------------------------------------------------------------------------------- */ .extern MPU_xEventGroupSetBitsImpl .align 4 .global MPU_xEventGroupSetBits .type MPU_xEventGroupSetBits, function MPU_xEventGroupSetBits: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xEventGroupSetBits, MPU_xEventGroupSetBitsImpl /* ----------------------------------------------------------------------------------- */ .extern MPU_xEventGroupSyncImpl .align 4 .global MPU_xEventGroupSync .type MPU_xEventGroupSync, function MPU_xEventGroupSync: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xEventGroupSync, MPU_xEventGroupSyncImpl #endif /* if ( configUSE_EVENT_GROUPS == 1 ) */ /* ----------------------------------------------------------------------------------- */ #if ( configUSE_STREAM_BUFFERS == 1 ) .extern MPU_xStreamBufferSendImpl .align 4 .global MPU_xStreamBufferSend .type MPU_xStreamBufferSend, function MPU_xStreamBufferSend: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xStreamBufferSend, MPU_xStreamBufferSendImpl /* ----------------------------------------------------------------------------------- */ .extern MPU_xStreamBufferReceiveImpl .align 4 .global MPU_xStreamBufferReceive .type MPU_xStreamBufferReceive, function MPU_xStreamBufferReceive: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xStreamBufferReceive, MPU_xStreamBufferReceiveImpl /* ----------------------------------------------------------------------------------- */ .extern MPU_xStreamBufferIsFullImpl .align 4 .global MPU_xStreamBufferIsFull .type MPU_xStreamBufferIsFull, function MPU_xStreamBufferIsFull: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xStreamBufferIsFull, MPU_xStreamBufferIsFullImpl /* ----------------------------------------------------------------------------------- */ .extern MPU_xStreamBufferIsEmptyImpl .align 4 .global MPU_xStreamBufferIsEmpty .type MPU_xStreamBufferIsEmpty, function MPU_xStreamBufferIsEmpty: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xStreamBufferIsEmpty, MPU_xStreamBufferIsEmptyImpl /* ----------------------------------------------------------------------------------- */ .extern MPU_xStreamBufferSpacesAvailableImpl .align 4 .global MPU_xStreamBufferSpacesAvailable .type MPU_xStreamBufferSpacesAvailable, function MPU_xStreamBufferSpacesAvailable: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xStreamBufferSpacesAvailable, MPU_xStreamBufferSpacesAvailableImpl /* ----------------------------------------------------------------------------------- */ .extern MPU_xStreamBufferBytesAvailableImpl .align 4 .global MPU_xStreamBufferBytesAvailable .type MPU_xStreamBufferBytesAvailable, function MPU_xStreamBufferBytesAvailable: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xStreamBufferBytesAvailable, MPU_xStreamBufferBytesAvailableImpl /* ----------------------------------------------------------------------------------- */ .extern MPU_xStreamBufferSetTriggerLevelImpl .align 4 .global MPU_xStreamBufferSetTriggerLevel .type MPU_xStreamBufferSetTriggerLevel, function MPU_xStreamBufferSetTriggerLevel: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xStreamBufferSetTriggerLevel, MPU_xStreamBufferSetTriggerLevelImpl /* ----------------------------------------------------------------------------------- */ .extern MPU_xStreamBufferNextMessageLengthBytesImpl .align 4 .global MPU_xStreamBufferNextMessageLengthBytes .type MPU_xStreamBufferNextMessageLengthBytes, function MPU_xStreamBufferNextMessageLengthBytes: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xStreamBufferNextMessageLengthBytes, MPU_xStreamBufferNextMessageLengthBytesImpl #endif /* if ( configUSE_STREAM_BUFFERS == 1 ) */ /* ----------------------------------------------------------------------------------- */ #if ( ( INCLUDE_xTaskDelayUntil == 1 ) || ( INCLUDE_vTaskDelayUntil == 1 ) ) .extern MPU_xTaskDelayUntilImpl .align 4 .global MPU_xTaskDelayUntil .type MPU_xTaskDelayUntil, function MPU_xTaskDelayUntil: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskDelayUntil, MPU_xTaskDelayUntilImpl #endif /* if ( ( INCLUDE_xTaskDelayUntil == 1 ) || ( INCLUDE_vTaskDelayUntil == 1 ) ) */ /* ----------------------------------------------------------------------------------- */ #if ( INCLUDE_xTaskAbortDelay == 1 ) .extern MPU_xTaskAbortDelayImpl .align 4 .global MPU_xTaskAbortDelay .type MPU_xTaskAbortDelay, function MPU_xTaskAbortDelay: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskAbortDelay, MPU_xTaskAbortDelayImpl #endif /* if ( INCLUDE_xTaskAbortDelay == 1 ) */ /* ------------------------------------------------------------------------------- */ #if ( INCLUDE_vTaskDelay == 1 ) .extern MPU_vTaskDelayImpl .align 4 .global MPU_vTaskDelay .type MPU_vTaskDelay, function MPU_vTaskDelay: INVOKE_SYSTEM_CALL #SYSTEM_CALL_vTaskDelay, MPU_vTaskDelayImpl #endif /* if ( INCLUDE_vTaskDelay == 1 ) */ /* ------------------------------------------------------------------------------- */ #if ( INCLUDE_uxTaskPriorityGet == 1 ) .extern MPU_uxTaskPriorityGetImpl .align 4 .global MPU_uxTaskPriorityGet .type MPU_uxTaskPriorityGet, function MPU_uxTaskPriorityGet: INVOKE_SYSTEM_CALL #SYSTEM_CALL_uxTaskPriorityGet, MPU_uxTaskPriorityGetImpl #endif /* if ( INCLUDE_uxTaskPriorityGet == 1 ) */ /* ------------------------------------------------------------------------------- */ #if ( INCLUDE_eTaskGetState == 1 ) .extern MPU_eTaskGetStateImpl .align 4 .global MPU_eTaskGetState .type MPU_eTaskGetState, function MPU_eTaskGetState: INVOKE_SYSTEM_CALL #SYSTEM_CALL_eTaskGetState, MPU_eTaskGetStateImpl #endif /* if ( INCLUDE_eTaskGetState == 1 ) */ /* ------------------------------------------------------------------------------- */ #if ( configUSE_TRACE_FACILITY == 1 ) .extern MPU_vTaskGetInfoImpl .align 4 .global MPU_vTaskGetInfo .type MPU_vTaskGetInfo, function MPU_vTaskGetInfo: INVOKE_SYSTEM_CALL #SYSTEM_CALL_vTaskGetInfo, MPU_vTaskGetInfoImpl /* ------------------------------------------------------------------------------- */ .extern MPU_uxTaskGetSystemStateImpl .align 4 .global MPU_uxTaskGetSystemState .type MPU_uxTaskGetSystemState, function MPU_uxTaskGetSystemState: INVOKE_SYSTEM_CALL #SYSTEM_CALL_uxTaskGetSystemState, MPU_uxTaskGetSystemStateImpl #endif /* if ( configUSE_TRACE_FACILITY == 1 ) */ /* ------------------------------------------------------------------------------- */ #if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) ) .extern MPU_uxEventGroupGetNumberImpl .align 4 .global MPU_uxEventGroupGetNumber .type MPU_uxEventGroupGetNumber, function MPU_uxEventGroupGetNumber: INVOKE_SYSTEM_CALL #SYSTEM_CALL_uxEventGroupGetNumber, MPU_uxEventGroupGetNumberImpl /* ------------------------------------------------------------------------------- */ .extern MPU_vEventGroupSetNumberImpl .align 4 .global MPU_vEventGroupSetNumber .type MPU_vEventGroupSetNumber, function MPU_vEventGroupSetNumber: INVOKE_SYSTEM_CALL #SYSTEM_CALL_vEventGroupSetNumber, MPU_vEventGroupSetNumberImpl /* ------------------------------------------------------------------------------- */ #endif /* if ( ( configUSE_EVENT_GROUPS == 1 ) && ( configUSE_TRACE_FACILITY == 1 ) ) */ /* ------------------------------------------------------------------------------- */ #if ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) .extern MPU_xTaskGetIdleTaskHandleImpl .align 4 .global MPU_xTaskGetIdleTaskHandle .type MPU_xTaskGetIdleTaskHandle, function MPU_xTaskGetIdleTaskHandle: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskGetIdleTaskHandle, MPU_xTaskGetIdleTaskHandleImpl #endif /* if ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) */ /* ------------------------------------------------------------------------------- */ #if ( INCLUDE_vTaskSuspend == 1 ) .extern MPU_vTaskSuspendImpl .align 4 .global MPU_vTaskSuspend .type MPU_vTaskSuspend, function MPU_vTaskSuspend: INVOKE_SYSTEM_CALL #SYSTEM_CALL_vTaskSuspend, MPU_vTaskSuspendImpl /* ------------------------------------------------------------------------------- */ .extern MPU_vTaskResumeImpl .align 4 .global MPU_vTaskResume .type MPU_vTaskResume, function MPU_vTaskResume: INVOKE_SYSTEM_CALL #SYSTEM_CALL_vTaskResume, MPU_vTaskResumeImpl /* ------------------------------------------------------------------------------- */ #endif /* if ( INCLUDE_vTaskSuspend == 1 ) */ /* ------------------------------------------------------------------------------- */ #if ( configGENERATE_RUN_TIME_STATS == 1 ) .extern MPU_ulTaskGetRunTimeCounterImpl .align 4 .global MPU_ulTaskGetRunTimeCounter .type MPU_ulTaskGetRunTimeCounter, function MPU_ulTaskGetRunTimeCounter: INVOKE_SYSTEM_CALL #SYSTEM_CALL_ulTaskGetRunTimeCounter, MPU_ulTaskGetRunTimeCounterImpl /* ------------------------------------------------------------------------------- */ .extern MPU_ulTaskGetRunTimePercentImpl .align 4 .global MPU_ulTaskGetRunTimePercent .type MPU_ulTaskGetRunTimePercent, function MPU_ulTaskGetRunTimePercent: INVOKE_SYSTEM_CALL #SYSTEM_CALL_ulTaskGetRunTimePercent, MPU_ulTaskGetRunTimePercentImpl /* ------------------------------------------------------------------------------- */ #if ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) .extern MPU_ulTaskGetIdleRunTimePercentImpl .align 4 .global MPU_ulTaskGetIdleRunTimePercent .type MPU_ulTaskGetIdleRunTimePercent, function MPU_ulTaskGetIdleRunTimePercent: INVOKE_SYSTEM_CALL #SYSTEM_CALL_ulTaskGetIdleRunTimePercent, MPU_ulTaskGetIdleRunTimePercentImpl /* --------------------------------------------------------------------------- */ .extern MPU_ulTaskGetIdleRunTimeCounterImpl .align 4 .global MPU_ulTaskGetIdleRunTimeCounter .type MPU_ulTaskGetIdleRunTimeCounter, function MPU_ulTaskGetIdleRunTimeCounter: INVOKE_SYSTEM_CALL #SYSTEM_CALL_ulTaskGetIdleRunTimeCounter, MPU_ulTaskGetIdleRunTimeCounterImpl /* --------------------------------------------------------------------------- */ #endif /* if ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) */ #endif /* if ( configGENERATE_RUN_TIME_STATS == 1 )*/ /* --------------------------------------------------------------------------- */ #if ( configUSE_APPLICATION_TASK_TAG == 1 ) .extern MPU_vTaskSetApplicationTaskTagImpl .align 4 .global MPU_vTaskSetApplicationTaskTag .type MPU_vTaskSetApplicationTaskTag, function MPU_vTaskSetApplicationTaskTag: INVOKE_SYSTEM_CALL #SYSTEM_CALL_vTaskSetApplicationTaskTag, MPU_vTaskSetApplicationTaskTagImpl /* ------------------------------------------------------------------------------- */ .extern MPU_xTaskGetApplicationTaskTagImpl .align 4 .global MPU_xTaskGetApplicationTaskTag .type MPU_xTaskGetApplicationTaskTag, function MPU_xTaskGetApplicationTaskTag: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskGetApplicationTaskTag, MPU_xTaskGetApplicationTaskTagImpl /* ------------------------------------------------------------------------------- */ #endif /* if ( configUSE_APPLICATION_TASK_TAG == 1 ) */ /* ------------------------------------------------------------------------------- */ #if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 ) .extern MPU_vTaskSetThreadLocalStoragePointerImpl .align 4 .global MPU_vTaskSetThreadLocalStoragePointer .type MPU_vTaskSetThreadLocalStoragePointer, function MPU_vTaskSetThreadLocalStoragePointer: INVOKE_SYSTEM_CALL #SYSTEM_CALL_vTaskSetThreadLocalStoragePointer, MPU_vTaskSetThreadLocalStoragePointerImpl /* ------------------------------------------------------------------------------- */ .extern MPU_pvTaskGetThreadLocalStoragePointerImpl .align 4 .global MPU_pvTaskGetThreadLocalStoragePointer .type MPU_pvTaskGetThreadLocalStoragePointer, function MPU_pvTaskGetThreadLocalStoragePointer: INVOKE_SYSTEM_CALL #SYSTEM_CALL_pvTaskGetThreadLocalStoragePointer, MPU_pvTaskGetThreadLocalStoragePointerImpl /* ------------------------------------------------------------------------------- */ #endif /* if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 ) */ /* ------------------------------------------------------------------------------- */ #if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) .extern MPU_uxTaskGetStackHighWaterMarkImpl .align 4 .global MPU_uxTaskGetStackHighWaterMark .type MPU_uxTaskGetStackHighWaterMark, function MPU_uxTaskGetStackHighWaterMark: INVOKE_SYSTEM_CALL #SYSTEM_CALL_uxTaskGetStackHighWaterMark, MPU_uxTaskGetStackHighWaterMarkImpl #endif /* if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) */ /* ------------------------------------------------------------------------------- */ #if ( INCLUDE_uxTaskGetStackHighWaterMark2 == 1 ) .extern MPU_uxTaskGetStackHighWaterMark2Impl .align 4 .global MPU_uxTaskGetStackHighWaterMark2 .type MPU_uxTaskGetStackHighWaterMark2, function MPU_uxTaskGetStackHighWaterMark2: INVOKE_SYSTEM_CALL #SYSTEM_CALL_uxTaskGetStackHighWaterMark2, MPU_uxTaskGetStackHighWaterMark2Impl #endif /* if ( INCLUDE_uxTaskGetStackHighWaterMark2 == 1 ) */ /* ------------------------------------------------------------------------------- */ #if ( ( INCLUDE_xTaskGetCurrentTaskHandle == 1 ) || ( configUSE_MUTEXES == 1 ) ) .extern MPU_xTaskGetCurrentTaskHandleImpl .align 4 .global MPU_xTaskGetCurrentTaskHandle .type MPU_xTaskGetCurrentTaskHandle, function MPU_xTaskGetCurrentTaskHandle: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskGetCurrentTaskHandle, MPU_xTaskGetCurrentTaskHandleImpl #endif /* if( INCLUDE_xTaskGetCurrentTaskHandle == 1 ) || ( configUSE_MUTEXES == 1 ) ) */ /* ------------------------------------------------------------------------------- */ #if ( INCLUDE_xTaskGetSchedulerState == 1 ) .extern MPU_xTaskGetSchedulerStateImpl .align 4 .global MPU_xTaskGetSchedulerState .type MPU_xTaskGetSchedulerState, function MPU_xTaskGetSchedulerState: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskGetSchedulerState, MPU_xTaskGetSchedulerStateImpl #endif /* if ( INCLUDE_xTaskGetSchedulerState == 1 ) */ /* ------------------------------------------------------------------------------- */ #if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) ) .extern MPU_xQueueGetMutexHolderImpl .align 4 .global MPU_xQueueGetMutexHolder .type MPU_xQueueGetMutexHolder, function MPU_xQueueGetMutexHolder: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xQueueGetMutexHolder, MPU_xQueueGetMutexHolderImpl #endif /* if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) ) */ /* ------------------------------------------------------------------------------- */ #if ( configUSE_RECURSIVE_MUTEXES == 1 ) .extern MPU_xQueueTakeMutexRecursiveImpl .align 4 .global MPU_xQueueTakeMutexRecursive .type MPU_xQueueTakeMutexRecursive, function MPU_xQueueTakeMutexRecursive: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xQueueTakeMutexRecursive, MPU_xQueueTakeMutexRecursiveImpl /* ------------------------------------------------------------------------------- */ .extern MPU_xQueueGiveMutexRecursiveImpl .align 4 .global MPU_xQueueGiveMutexRecursive .type MPU_xQueueGiveMutexRecursive, function MPU_xQueueGiveMutexRecursive: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xQueueGiveMutexRecursive, MPU_xQueueGiveMutexRecursiveImpl /* ------------------------------------------------------------------------------- */ #endif /* if ( configUSE_RECURSIVE_MUTEXES == 1 ) */ /* ------------------------------------------------------------------------------- */ #if ( configUSE_QUEUE_SETS == 1 ) .extern MPU_xQueueSelectFromSetImpl .align 4 .global MPU_xQueueSelectFromSet .type MPU_xQueueSelectFromSet, function MPU_xQueueSelectFromSet: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xQueueSelectFromSet, MPU_xQueueSelectFromSetImpl /* ------------------------------------------------------------------------------- */ .extern MPU_xQueueAddToSetImpl .align 4 .global MPU_xQueueAddToSet .type MPU_xQueueAddToSet, function MPU_xQueueAddToSet: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xQueueAddToSet, MPU_xQueueAddToSetImpl /* ------------------------------------------------------------------------------- */ #endif /* if ( configUSE_QUEUE_SETS == 1 ) */ /* ------------------------------------------------------------------------------- */ #if ( configQUEUE_REGISTRY_SIZE > 0 ) .extern MPU_vQueueAddToRegistryImpl .align 4 .global MPU_vQueueAddToRegistry .type MPU_vQueueAddToRegistry, function MPU_vQueueAddToRegistry: INVOKE_SYSTEM_CALL #SYSTEM_CALL_vQueueAddToRegistry, MPU_vQueueAddToRegistryImpl /* ------------------------------------------------------------------------------- */ .extern MPU_vQueueUnregisterQueueImpl .align 4 .global MPU_vQueueUnregisterQueue .type MPU_vQueueUnregisterQueue, function MPU_vQueueUnregisterQueue: INVOKE_SYSTEM_CALL #SYSTEM_CALL_vQueueUnregisterQueue, MPU_vQueueUnregisterQueueImpl /* ------------------------------------------------------------------------------- */ .extern MPU_pcQueueGetNameImpl .align 4 .global MPU_pcQueueGetName .type MPU_pcQueueGetName, function MPU_pcQueueGetName: INVOKE_SYSTEM_CALL #SYSTEM_CALL_pcQueueGetName, MPU_pcQueueGetNameImpl /* ------------------------------------------------------------------------------- */ #endif /* if ( configQUEUE_REGISTRY_SIZE > 0 ) */ /* ------------------------------------------------------------------------------- */ #if ( configUSE_TIMERS == 1 ) .extern MPU_pvTimerGetTimerIDImpl .align 4 .global MPU_pvTimerGetTimerID .type MPU_pvTimerGetTimerID, function MPU_pvTimerGetTimerID: INVOKE_SYSTEM_CALL #SYSTEM_CALL_pvTimerGetTimerID, MPU_pvTimerGetTimerIDImpl /* ------------------------------------------------------------------------------- */ .extern MPU_vTimerSetTimerIDImpl .align 4 .global MPU_vTimerSetTimerID .type MPU_vTimerSetTimerID, function MPU_vTimerSetTimerID: INVOKE_SYSTEM_CALL #SYSTEM_CALL_vTimerSetTimerID, MPU_vTimerSetTimerIDImpl /* ------------------------------------------------------------------------------- */ .extern MPU_xTimerIsTimerActiveImpl .align 4 .global MPU_xTimerIsTimerActive .type MPU_xTimerIsTimerActive, function MPU_xTimerIsTimerActive: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTimerIsTimerActive, MPU_xTimerIsTimerActiveImpl /* ------------------------------------------------------------------------------- */ .extern MPU_xTimerGetTimerDaemonTaskHandleImpl .align 4 .global MPU_xTimerGetTimerDaemonTaskHandle .type MPU_xTimerGetTimerDaemonTaskHandle, function MPU_xTimerGetTimerDaemonTaskHandle: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTimerGetTimerDaemonTaskHandle, MPU_xTimerGetTimerDaemonTaskHandleImpl /* ------------------------------------------------------------------------------- */ .extern MPU_xTimerGenericCommandFromTaskImpl .align 4 .global MPU_xTimerGenericCommandFromTaskEntry .type MPU_xTimerGenericCommandFromTaskEntry, function MPU_xTimerGenericCommandFromTaskEntry: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTimerGenericCommandFromTask, MPU_xTimerGenericCommandFromTaskImpl /* ------------------------------------------------------------------------------- */ .extern MPU_pcTimerGetNameImpl .align 4 .global MPU_pcTimerGetName .type MPU_pcTimerGetName, function MPU_pcTimerGetName: INVOKE_SYSTEM_CALL #SYSTEM_CALL_pcTimerGetName, MPU_pcTimerGetNameImpl /* ------------------------------------------------------------------------------- */ .extern MPU_vTimerSetReloadModeImpl .align 4 .global MPU_vTimerSetReloadMode .type MPU_vTimerSetReloadMode, function MPU_vTimerSetReloadMode: INVOKE_SYSTEM_CALL #SYSTEM_CALL_vTimerSetReloadMode, MPU_vTimerSetReloadModeImpl /* ------------------------------------------------------------------------------- */ .extern MPU_xTimerGetReloadModeImpl .align 4 .global MPU_xTimerGetReloadMode .type MPU_xTimerGetReloadMode, function MPU_xTimerGetReloadMode: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTimerGetReloadMode, MPU_xTimerGetReloadModeImpl /* ------------------------------------------------------------------------------- */ .extern MPU_uxTimerGetReloadModeImpl .align 4 .global MPU_uxTimerGetReloadMode .type MPU_uxTimerGetReloadMode, function MPU_uxTimerGetReloadMode: INVOKE_SYSTEM_CALL #SYSTEM_CALL_uxTimerGetReloadMode, MPU_uxTimerGetReloadModeImpl /* ------------------------------------------------------------------------------- */ .extern MPU_xTimerGetPeriodImpl .align 4 .global MPU_xTimerGetPeriod .type MPU_xTimerGetPeriod, function MPU_xTimerGetPeriod: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTimerGetPeriod, MPU_xTimerGetPeriodImpl /* ------------------------------------------------------------------------------- */ .extern MPU_xTimerGetExpiryTimeImpl .align 4 .global MPU_xTimerGetExpiryTime .type MPU_xTimerGetExpiryTime, function MPU_xTimerGetExpiryTime: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTimerGetExpiryTime, MPU_xTimerGetExpiryTimeImpl /* ------------------------------------------------------------------------------- */ #endif /* if ( configUSE_TIMERS == 1 ) */ /* ------------------------------------------------------------------------------- */ #if ( configUSE_TASK_NOTIFICATIONS == 1 ) .extern MPU_xTaskGenericNotifyImpl .align 4 .global MPU_xTaskGenericNotifyEntry .type MPU_xTaskGenericNotifyEntry, function MPU_xTaskGenericNotifyEntry: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskGenericNotify, MPU_xTaskGenericNotifyImpl /* ------------------------------------------------------------------------------- */ .extern MPU_xTaskGenericNotifyWaitImpl .align 4 .global MPU_xTaskGenericNotifyWaitEntry .type MPU_xTaskGenericNotifyWaitEntry, function MPU_xTaskGenericNotifyWaitEntry: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskGenericNotifyWait, MPU_xTaskGenericNotifyWaitImpl /* ------------------------------------------------------------------------------- */ .extern MPU_ulTaskGenericNotifyTakeImpl .align 4 .global MPU_ulTaskGenericNotifyTake .type MPU_ulTaskGenericNotifyTake, function MPU_ulTaskGenericNotifyTake: INVOKE_SYSTEM_CALL #SYSTEM_CALL_ulTaskGenericNotifyTake, MPU_ulTaskGenericNotifyTakeImpl /* ------------------------------------------------------------------------------- */ .extern MPU_xTaskGenericNotifyStateClearImpl .align 4 .global MPU_xTaskGenericNotifyStateClear .type MPU_xTaskGenericNotifyStateClear, function MPU_xTaskGenericNotifyStateClear: INVOKE_SYSTEM_CALL #SYSTEM_CALL_xTaskGenericNotifyStateClear, MPU_xTaskGenericNotifyStateClearImpl /* ------------------------------------------------------------------------------- */ .extern MPU_ulTaskGenericNotifyValueClearImpl .align 4 .global MPU_ulTaskGenericNotifyValueClear .type MPU_ulTaskGenericNotifyValueClear, function MPU_ulTaskGenericNotifyValueClear: INVOKE_SYSTEM_CALL #SYSTEM_CALL_ulTaskGenericNotifyValueClear, MPU_ulTaskGenericNotifyValueClearImpl /* ------------------------------------------------------------------------------- */ #endif /* if ( configUSE_TASK_NOTIFICATIONS == 1 ) */ /* ------------------------------------------------------------------------------- */ .end