IPA summary for prvAddCurrentTaskToDelayedList/94 is missing. IPA summary for ulTaskGenericNotifyValueClear/93 is missing. IPA summary for xTaskGenericNotifyStateClear/92 is missing. IPA summary for vTaskGenericNotifyGiveFromISR/91 is missing. IPA summary for xTaskGenericNotifyFromISR/90 is missing. IPA summary for xTaskGenericNotify/89 is missing. IPA summary for xTaskGenericNotifyWait/88 is missing. IPA summary for ulTaskGenericNotifyTake/87 is missing. IPA summary for pvTaskIncrementMutexHeldCount/86 is missing. IPA summary for uxTaskResetEventItemValue/85 is missing. IPA summary for vTaskList/84 is missing. IPA summary for prvWriteNameToBuffer/83 is missing. IPA summary for vTaskPriorityDisinheritAfterTimeout/82 is missing. IPA summary for xTaskPriorityDisinherit/81 is missing. IPA summary for xTaskPriorityInherit/80 is missing. IPA summary for xTaskGetSchedulerState/79 is missing. IPA summary for xTaskGetCurrentTaskHandle/78 is missing. IPA summary for prvResetNextTaskUnblockTime/77 is missing. IPA summary for prvDeleteTCB/76 is missing. IPA summary for uxTaskGetStackHighWaterMark/75 is missing. IPA summary for prvTaskCheckFreeStackSpace/74 is missing. IPA summary for prvListTasksWithinSingleList/73 is missing. IPA summary for vTaskGetInfo/72 is missing. IPA summary for prvCheckTasksWaitingTermination/71 is missing. IPA summary for prvInitialiseTaskLists/70 is missing. IPA summary for prvIdleTask/69 is missing. IPA summary for vTaskSetTaskNumber/68 is missing. IPA summary for uxTaskGetTaskNumber/67 is missing. IPA summary for vTaskMissedYield/66 is missing. IPA summary for xTaskCheckForTimeOut/65 is missing. IPA summary for vTaskInternalSetTimeOutState/64 is missing. IPA summary for vTaskSetTimeOutState/63 is missing. IPA summary for vTaskRemoveFromUnorderedEventList/62 is missing. IPA summary for xTaskRemoveFromEventList/61 is missing. IPA summary for vTaskPlaceOnEventListRestricted/60 is missing. IPA summary for vTaskPlaceOnUnorderedEventList/59 is missing. IPA summary for vTaskPlaceOnEventList/58 is missing. IPA summary for vTaskSwitchContext/57 is missing. IPA summary for xTaskIncrementTick/56 is missing. IPA summary for xTaskAbortDelay/55 is missing. IPA summary for xTaskCatchUpTicks/54 is missing. IPA summary for uxTaskGetSystemState/53 is missing. IPA summary for xTaskGetHandle/52 is missing. IPA summary for prvSearchForNameWithinSingleList/51 is missing. IPA summary for pcTaskGetName/50 is missing. IPA summary for uxTaskGetNumberOfTasks/49 is missing. IPA summary for xTaskGetTickCountFromISR/48 is missing. IPA summary for xTaskGetTickCount/47 is missing. IPA summary for xTaskResumeAll/46 is missing. IPA summary for vTaskSuspendAll/45 is missing. IPA summary for vTaskEndScheduler/44 is missing. IPA summary for vTaskStartScheduler/43 is missing. IPA summary for xTaskResumeFromISR/42 is missing. IPA summary for vTaskResume/41 is missing. IPA summary for prvTaskIsTaskSuspended/40 is missing. IPA summary for vTaskSuspend/39 is missing. IPA summary for vTaskPrioritySet/38 is missing. IPA summary for uxTaskPriorityGetFromISR/37 is missing. IPA summary for uxTaskPriorityGet/36 is missing. IPA summary for eTaskGetState/35 is missing. IPA summary for vTaskDelay/34 is missing. IPA summary for xTaskDelayUntil/33 is missing. IPA summary for vTaskDelete/32 is missing. IPA summary for prvAddNewTaskToReadyList/31 is missing. IPA summary for prvInitialiseNewTask/30 is missing. IPA summary for xTaskCreate/29 is missing. Flattening functions: Overall time estimate: 0.000000 weighted by profile: 0.000000 Deciding on inlining of small functions. Starting with size 0. Reclaiming functions: Reclaiming variables: Clearing address taken flags: Deciding on functions to be inlined into all callers and removing useless speculations: Overall time estimate: 0.000000 weighted by profile: 0.000000 Why inlining failed? function not considered for inlining : 54 calls, 54.000000 freq, 0 count function body not available : 92 calls, 92.000000 freq, 0 count IPA summary for prvAddCurrentTaskToDelayedList/94 is missing. IPA summary for ulTaskGenericNotifyValueClear/93 is missing. IPA summary for xTaskGenericNotifyStateClear/92 is missing. IPA summary for vTaskGenericNotifyGiveFromISR/91 is missing. IPA summary for xTaskGenericNotifyFromISR/90 is missing. IPA summary for xTaskGenericNotify/89 is missing. IPA summary for xTaskGenericNotifyWait/88 is missing. IPA summary for ulTaskGenericNotifyTake/87 is missing. IPA summary for pvTaskIncrementMutexHeldCount/86 is missing. IPA summary for uxTaskResetEventItemValue/85 is missing. IPA summary for vTaskList/84 is missing. IPA summary for prvWriteNameToBuffer/83 is missing. IPA summary for vTaskPriorityDisinheritAfterTimeout/82 is missing. IPA summary for xTaskPriorityDisinherit/81 is missing. IPA summary for xTaskPriorityInherit/80 is missing. IPA summary for xTaskGetSchedulerState/79 is missing. IPA summary for xTaskGetCurrentTaskHandle/78 is missing. IPA summary for prvResetNextTaskUnblockTime/77 is missing. IPA summary for prvDeleteTCB/76 is missing. IPA summary for uxTaskGetStackHighWaterMark/75 is missing. IPA summary for prvTaskCheckFreeStackSpace/74 is missing. IPA summary for prvListTasksWithinSingleList/73 is missing. IPA summary for vTaskGetInfo/72 is missing. IPA summary for prvCheckTasksWaitingTermination/71 is missing. IPA summary for prvInitialiseTaskLists/70 is missing. IPA summary for prvIdleTask/69 is missing. IPA summary for vTaskSetTaskNumber/68 is missing. IPA summary for uxTaskGetTaskNumber/67 is missing. IPA summary for vTaskMissedYield/66 is missing. IPA summary for xTaskCheckForTimeOut/65 is missing. IPA summary for vTaskInternalSetTimeOutState/64 is missing. IPA summary for vTaskSetTimeOutState/63 is missing. IPA summary for vTaskRemoveFromUnorderedEventList/62 is missing. IPA summary for xTaskRemoveFromEventList/61 is missing. IPA summary for vTaskPlaceOnEventListRestricted/60 is missing. IPA summary for vTaskPlaceOnUnorderedEventList/59 is missing. IPA summary for vTaskPlaceOnEventList/58 is missing. IPA summary for vTaskSwitchContext/57 is missing. IPA summary for xTaskIncrementTick/56 is missing. IPA summary for xTaskAbortDelay/55 is missing. IPA summary for xTaskCatchUpTicks/54 is missing. IPA summary for uxTaskGetSystemState/53 is missing. IPA summary for xTaskGetHandle/52 is missing. IPA summary for prvSearchForNameWithinSingleList/51 is missing. IPA summary for pcTaskGetName/50 is missing. IPA summary for uxTaskGetNumberOfTasks/49 is missing. IPA summary for xTaskGetTickCountFromISR/48 is missing. IPA summary for xTaskGetTickCount/47 is missing. IPA summary for xTaskResumeAll/46 is missing. IPA summary for vTaskSuspendAll/45 is missing. IPA summary for vTaskEndScheduler/44 is missing. IPA summary for vTaskStartScheduler/43 is missing. IPA summary for xTaskResumeFromISR/42 is missing. IPA summary for vTaskResume/41 is missing. IPA summary for prvTaskIsTaskSuspended/40 is missing. IPA summary for vTaskSuspend/39 is missing. IPA summary for vTaskPrioritySet/38 is missing. IPA summary for uxTaskPriorityGetFromISR/37 is missing. IPA summary for uxTaskPriorityGet/36 is missing. IPA summary for eTaskGetState/35 is missing. IPA summary for vTaskDelay/34 is missing. IPA summary for xTaskDelayUntil/33 is missing. IPA summary for vTaskDelete/32 is missing. IPA summary for prvAddNewTaskToReadyList/31 is missing. IPA summary for prvInitialiseNewTask/30 is missing. IPA summary for xTaskCreate/29 is missing. Symbol table: sprintf/112 (sprintf) @06e1a0e0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vTaskList/84 Calls: strcpy/111 (strcpy) @06e027e0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: prvWriteNameToBuffer/83 Calls: vListInitialise/110 (vListInitialise) @06dc9d20 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: prvInitialiseTaskLists/70 prvInitialiseTaskLists/70 prvInitialiseTaskLists/70 prvInitialiseTaskLists/70 prvInitialiseTaskLists/70 prvInitialiseTaskLists/70 Calls: vListInsert/109 (vListInsert) @06da9c40 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vTaskPlaceOnEventList/58 prvAddCurrentTaskToDelayedList/94 prvAddCurrentTaskToDelayedList/94 Calls: strlen/108 (strlen) @06da9460 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vTaskList/84 prvWriteNameToBuffer/83 xTaskGetHandle/52 Calls: vPortEndScheduler/107 (vPortEndScheduler) @06d96a80 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vTaskEndScheduler/44 Calls: xPortStartScheduler/106 (xPortStartScheduler) @06d967e0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vTaskStartScheduler/43 Calls: xTimerCreateTimerTask/105 (xTimerCreateTimerTask) @06d96700 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vTaskStartScheduler/43 Calls: vPortValidateInterruptPriority/104 (vPortValidateInterruptPriority) @0677a9a0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vTaskGenericNotifyGiveFromISR/91 xTaskGenericNotifyFromISR/90 xTaskGetTickCountFromISR/48 xTaskResumeFromISR/42 uxTaskPriorityGetFromISR/37 Calls: vListInsertEnd/103 (vListInsertEnd) @0677a0e0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vTaskSuspend/39 vTaskDelete/32 xTaskResumeFromISR/42 Calls: uxListRemove/102 (uxListRemove) @0677a000 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: prvAddCurrentTaskToDelayedList/94 vTaskPriorityDisinheritAfterTimeout/82 xTaskPriorityDisinherit/81 xTaskPriorityInherit/80 xTaskAbortDelay/55 xTaskAbortDelay/55 vTaskSuspend/39 vTaskSuspend/39 vTaskDelete/32 vTaskDelete/32 prvCheckTasksWaitingTermination/71 xTaskResumeFromISR/42 vTaskResume/41 vTaskPrioritySet/38 Calls: vPortExitCritical/101 (vPortExitCritical) @06d5b000 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xTaskGenericNotifyWait/88 xTaskGenericNotifyWait/88 ulTaskGenericNotifyTake/87 ulTaskGenericNotifyTake/87 ulTaskGenericNotifyValueClear/93 xTaskGenericNotifyStateClear/92 xTaskGenericNotify/89 xTaskAbortDelay/55 xTaskResumeAll/46 vTaskSuspend/39 vTaskSuspend/39 vTaskDelete/32 prvCheckTasksWaitingTermination/71 prvAddNewTaskToReadyList/31 xTaskCheckForTimeOut/65 vTaskSetTimeOutState/63 vTaskResume/41 vTaskPrioritySet/38 uxTaskPriorityGet/36 eTaskGetState/35 Calls: vPortEnterCritical/100 (vPortEnterCritical) @06d5be00 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xTaskGenericNotifyWait/88 xTaskGenericNotifyWait/88 ulTaskGenericNotifyTake/87 ulTaskGenericNotifyTake/87 ulTaskGenericNotifyValueClear/93 xTaskGenericNotifyStateClear/92 xTaskGenericNotify/89 xTaskAbortDelay/55 xTaskResumeAll/46 vTaskSuspend/39 vTaskSuspend/39 vTaskDelete/32 prvCheckTasksWaitingTermination/71 prvAddNewTaskToReadyList/31 xTaskCheckForTimeOut/65 vTaskSetTimeOutState/63 vTaskResume/41 vTaskPrioritySet/38 uxTaskPriorityGet/36 eTaskGetState/35 Calls: pxPortInitialiseStack/99 (pxPortInitialiseStack) @06d5bb60 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: prvInitialiseNewTask/30 Calls: vListInitialiseItem/98 (vListInitialiseItem) @06d5ba80 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: prvInitialiseNewTask/30 prvInitialiseNewTask/30 Calls: memset/97 (memset) @06d5b9a0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: prvInitialiseNewTask/30 prvInitialiseNewTask/30 prvInitialiseNewTask/30 Calls: vPortFree/96 (vPortFree) @06d5b7e0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vTaskList/84 prvDeleteTCB/76 prvDeleteTCB/76 xTaskCreate/29 Calls: pvPortMalloc/95 (pvPortMalloc) @06d5b700 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vTaskList/84 xTaskCreate/29 xTaskCreate/29 Calls: prvAddCurrentTaskToDelayedList/94 (prvAddCurrentTaskToDelayedList) @06d5b2a0 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: xTickCount/18 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)xSuspendedTaskList/16 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)xSuspendedTaskList/16 (addr)xSuspendedTaskList/16 (read)xSuspendedTaskList/16 (write)pxCurrentTCB/7 (read)pxOverflowDelayedTaskList/12 (read)pxCurrentTCB/7 (read)pxDelayedTaskList/11 (read)pxCurrentTCB/7 (read)xNextTaskUnblockTime/25 (read)xNextTaskUnblockTime/25 (write) Referring: Availability: available Function flags: body Called by: xTaskGenericNotifyWait/88 ulTaskGenericNotifyTake/87 vTaskPlaceOnEventListRestricted/60 vTaskPlaceOnUnorderedEventList/59 vTaskPlaceOnEventList/58 vTaskDelay/34 xTaskDelayUntil/33 Calls: vListInsert/109 vListInsert/109 uxListRemove/102 ulTaskGenericNotifyValueClear/93 (ulTaskGenericNotifyValueClear) @06d4ab60 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read) Referring: Availability: available Function flags: body Called by: Calls: vPortExitCritical/101 vPortEnterCritical/100 xTaskGenericNotifyStateClear/92 (xTaskGenericNotifyStateClear) @06d4aee0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read) Referring: Availability: available Function flags: body Called by: Calls: vPortExitCritical/101 vPortEnterCritical/100 vTaskGenericNotifyGiveFromISR/91 (vTaskGenericNotifyGiveFromISR) @06d4aa80 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: uxSchedulerSuspended/28 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)xPendingReadyList/13 (read)xPendingReadyList/13 (addr)xPendingReadyList/13 (read)xPendingReadyList/13 (write)pxCurrentTCB/7 (read)xYieldPending/22 (write) Referring: Availability: available Function flags: body Called by: Calls: vPortValidateInterruptPriority/104 xTaskGenericNotifyFromISR/90 (xTaskGenericNotifyFromISR) @06d4a620 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: xTickCount/18 (read)uxSchedulerSuspended/28 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)xPendingReadyList/13 (read)xPendingReadyList/13 (addr)xPendingReadyList/13 (read)xPendingReadyList/13 (write)pxCurrentTCB/7 (read)xYieldPending/22 (write) Referring: Availability: available Function flags: body Called by: Calls: vPortValidateInterruptPriority/104 xTaskGenericNotify/89 (xTaskGenericNotify) @06d4a0e0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: xTickCount/18 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: body Called by: Calls: vPortExitCritical/101 vPortEnterCritical/100 xTaskGenericNotifyWait/88 (xTaskGenericNotifyWait) @06d39000 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: body Called by: Calls: vPortExitCritical/101 vPortEnterCritical/100 vPortExitCritical/101 prvAddCurrentTaskToDelayedList/94 vPortEnterCritical/100 ulTaskGenericNotifyTake/87 (ulTaskGenericNotifyTake) @06d39b60 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: body Called by: Calls: vPortExitCritical/101 vPortEnterCritical/100 vPortExitCritical/101 prvAddCurrentTaskToDelayedList/94 vPortEnterCritical/100 pvTaskIncrementMutexHeldCount/86 (pvTaskIncrementMutexHeldCount) @06d39700 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: body Called by: Calls: uxTaskResetEventItemValue/85 (uxTaskResetEventItemValue) @06d39460 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: body Called by: Calls: vTaskList/84 (vTaskList) @06d391c0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: uxCurrentNumberOfTasks/17 (read)uxCurrentNumberOfTasks/17 (read) Referring: Availability: available Function flags: body Called by: Calls: vPortFree/96 strlen/108 sprintf/112 prvWriteNameToBuffer/83 uxTaskGetSystemState/53 pvPortMalloc/95 prvWriteNameToBuffer/83 (prvWriteNameToBuffer) @06d1fe00 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: Availability: available Function flags: body Called by: vTaskList/84 Calls: strlen/108 strcpy/111 vTaskPriorityDisinheritAfterTimeout/82 (vTaskPriorityDisinheritAfterTimeout) @06d1f700 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read)pxReadyTasksLists/8 (addr)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write) Referring: Availability: available Function flags: body Called by: Calls: uxListRemove/102 xTaskPriorityDisinherit/81 (xTaskPriorityDisinherit) @06d1fd20 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write) Referring: Availability: available Function flags: body Called by: Calls: uxListRemove/102 xTaskPriorityInherit/80 (xTaskPriorityInherit) @06d1f8c0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxReadyTasksLists/8 (addr)pxCurrentTCB/7 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: body Called by: Calls: uxListRemove/102 xTaskGetSchedulerState/79 (xTaskGetSchedulerState) @06d1f620 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: xSchedulerRunning/20 (read)uxSchedulerSuspended/28 (read) Referring: Availability: available Function flags: body Called by: Calls: xTaskGetCurrentTaskHandle/78 (xTaskGetCurrentTaskHandle) @06d1f380 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read) Referring: Availability: available Function flags: body Called by: Calls: prvResetNextTaskUnblockTime/77 (prvResetNextTaskUnblockTime) @06d1f0e0 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: pxDelayedTaskList/11 (read)xNextTaskUnblockTime/25 (write)pxDelayedTaskList/11 (read)xNextTaskUnblockTime/25 (write) Referring: Availability: available Function flags: body Called by: xTaskResumeAll/46 xTaskIncrementTick/56 vTaskSuspend/39 vTaskDelete/32 Calls: prvDeleteTCB/76 (prvDeleteTCB) @06d13c40 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: Availability: available Function flags: body Called by: vTaskDelete/32 prvCheckTasksWaitingTermination/71 Calls: vPortFree/96 vPortFree/96 uxTaskGetStackHighWaterMark/75 (uxTaskGetStackHighWaterMark) @06d13620 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read) Referring: Availability: available Function flags: body Called by: Calls: prvTaskCheckFreeStackSpace/74 prvTaskCheckFreeStackSpace/74 (prvTaskCheckFreeStackSpace) @06d13e00 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: Availability: available Function flags: body Called by: vTaskGetInfo/72 uxTaskGetStackHighWaterMark/75 Calls: prvListTasksWithinSingleList/73 (prvListTasksWithinSingleList) @06d13b60 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: Availability: available Function flags: body Called by: uxTaskGetSystemState/53 uxTaskGetSystemState/53 uxTaskGetSystemState/53 uxTaskGetSystemState/53 uxTaskGetSystemState/53 Calls: vTaskGetInfo/72 vTaskGetInfo/72 (vTaskGetInfo) @06d138c0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: body Called by: prvListTasksWithinSingleList/73 Calls: prvTaskCheckFreeStackSpace/74 eTaskGetState/35 xTaskResumeAll/46 vTaskSuspendAll/45 prvCheckTasksWaitingTermination/71 (prvCheckTasksWaitingTermination) @06d13540 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: xTasksWaitingTermination/14 (read)uxCurrentNumberOfTasks/17 (read)uxCurrentNumberOfTasks/17 (write)uxDeletedTasksWaitingCleanUp/15 (read)uxDeletedTasksWaitingCleanUp/15 (write)uxDeletedTasksWaitingCleanUp/15 (read) Referring: Availability: available Function flags: body Called by: prvIdleTask/69 Calls: prvDeleteTCB/76 vPortExitCritical/101 uxListRemove/102 vPortEnterCritical/100 prvInitialiseTaskLists/70 (prvInitialiseTaskLists) @06d131c0 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: pxReadyTasksLists/8 (addr)xDelayedTaskList1/9 (addr)xDelayedTaskList2/10 (addr)xPendingReadyList/13 (addr)xTasksWaitingTermination/14 (addr)xSuspendedTaskList/16 (addr)pxDelayedTaskList/11 (write)xDelayedTaskList1/9 (addr)pxOverflowDelayedTaskList/12 (write)xDelayedTaskList2/10 (addr) Referring: Availability: available Function flags: body Called by: prvAddNewTaskToReadyList/31 Calls: vListInitialise/110 vListInitialise/110 vListInitialise/110 vListInitialise/110 vListInitialise/110 vListInitialise/110 prvIdleTask/69 (prvIdleTask) @06d0ee00 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly Address is taken. References: pxReadyTasksLists/8 (read) Referring: vTaskStartScheduler/43 (addr) Availability: available Function flags: body Called by: Calls: prvCheckTasksWaitingTermination/71 vTaskSetTaskNumber/68 (vTaskSetTaskNumber) @06d0e1c0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: uxTaskGetTaskNumber/67 (uxTaskGetTaskNumber) @06d0ed20 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: vTaskMissedYield/66 (vTaskMissedYield) @06d0ea80 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: xYieldPending/22 (write) Referring: Availability: available Function flags: body Called by: Calls: xTaskCheckForTimeOut/65 (xTaskCheckForTimeOut) @06d0e7e0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: xTickCount/18 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)xNumOfOverflows/23 (read) Referring: Availability: available Function flags: body Called by: Calls: vPortExitCritical/101 vTaskInternalSetTimeOutState/64 vPortEnterCritical/100 vTaskInternalSetTimeOutState/64 (vTaskInternalSetTimeOutState) @06d0e380 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: xNumOfOverflows/23 (read)xTickCount/18 (read) Referring: Availability: available Function flags: body Called by: xTaskCheckForTimeOut/65 Calls: vTaskSetTimeOutState/63 (vTaskSetTimeOutState) @06d0e0e0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: xNumOfOverflows/23 (read)xTickCount/18 (read) Referring: Availability: available Function flags: body Called by: Calls: vPortExitCritical/101 vPortEnterCritical/100 vTaskRemoveFromUnorderedEventList/62 (vTaskRemoveFromUnorderedEventList) @06cca9a0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: uxSchedulerSuspended/28 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read)xYieldPending/22 (write) Referring: Availability: available Function flags: body Called by: Calls: xTaskRemoveFromEventList/61 (xTaskRemoveFromEventList) @06ccad20 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: uxSchedulerSuspended/28 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)xPendingReadyList/13 (read)xPendingReadyList/13 (addr)xPendingReadyList/13 (read)xPendingReadyList/13 (write)pxCurrentTCB/7 (read)xYieldPending/22 (write) Referring: Availability: available Function flags: body Called by: Calls: vTaskPlaceOnEventListRestricted/60 (vTaskPlaceOnEventListRestricted) @06cca8c0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: body Called by: Calls: prvAddCurrentTaskToDelayedList/94 vTaskPlaceOnUnorderedEventList/59 (vTaskPlaceOnUnorderedEventList) @06cca540 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: uxSchedulerSuspended/28 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: body Called by: Calls: prvAddCurrentTaskToDelayedList/94 vTaskPlaceOnEventList/58 (vTaskPlaceOnEventList) @06cca000 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read) Referring: Availability: available Function flags: body Called by: Calls: prvAddCurrentTaskToDelayedList/94 vListInsert/109 vTaskSwitchContext/57 (vTaskSwitchContext) @06c5f380 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: uxSchedulerSuspended/28 (read)xYieldPending/22 (write)xYieldPending/22 (write)uxTopReadyPriority/19 (read)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxCurrentTCB/7 (write)uxTopReadyPriority/19 (write) Referring: Availability: available Function flags: body Called by: vTaskSuspend/39 Calls: xTaskIncrementTick/56 (xTaskIncrementTick) @06c5fc40 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: uxSchedulerSuspended/28 (read)xTickCount/18 (read)xTickCount/18 (write)pxDelayedTaskList/11 (read)pxDelayedTaskList/11 (read)pxOverflowDelayedTaskList/12 (read)pxDelayedTaskList/11 (write)pxOverflowDelayedTaskList/12 (write)xNumOfOverflows/23 (read)xNumOfOverflows/23 (write)xNextTaskUnblockTime/25 (read)pxDelayedTaskList/11 (read)xNextTaskUnblockTime/25 (write)pxDelayedTaskList/11 (read)xNextTaskUnblockTime/25 (write)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxReadyTasksLists/8 (read)xYieldPending/22 (read)xPendedTicks/21 (read)xPendedTicks/21 (write) Referring: Availability: available Function flags: body Called by: xTaskResumeAll/46 Calls: prvResetNextTaskUnblockTime/77 xTaskAbortDelay/55 (xTaskAbortDelay) @06c5f620 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read)xYieldPending/22 (write) Referring: Availability: available Function flags: body Called by: Calls: xTaskResumeAll/46 vPortExitCritical/101 uxListRemove/102 vPortEnterCritical/100 uxListRemove/102 eTaskGetState/35 vTaskSuspendAll/45 xTaskCatchUpTicks/54 (xTaskCatchUpTicks) @06c5f2a0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: uxSchedulerSuspended/28 (read)xPendedTicks/21 (read)xPendedTicks/21 (write) Referring: Availability: available Function flags: body Called by: Calls: xTaskResumeAll/46 vTaskSuspendAll/45 uxTaskGetSystemState/53 (uxTaskGetSystemState) @06c56e00 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: uxCurrentNumberOfTasks/17 (read)pxReadyTasksLists/8 (addr)pxDelayedTaskList/11 (read)pxOverflowDelayedTaskList/12 (read)xTasksWaitingTermination/14 (addr)xSuspendedTaskList/16 (addr) Referring: Availability: available Function flags: body Called by: vTaskList/84 Calls: xTaskResumeAll/46 prvListTasksWithinSingleList/73 prvListTasksWithinSingleList/73 prvListTasksWithinSingleList/73 prvListTasksWithinSingleList/73 prvListTasksWithinSingleList/73 vTaskSuspendAll/45 xTaskGetHandle/52 (xTaskGetHandle) @06c56700 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxReadyTasksLists/8 (addr)pxDelayedTaskList/11 (read)pxOverflowDelayedTaskList/12 (read)xSuspendedTaskList/16 (addr)xTasksWaitingTermination/14 (addr) Referring: Availability: available Function flags: body Called by: Calls: xTaskResumeAll/46 prvSearchForNameWithinSingleList/51 prvSearchForNameWithinSingleList/51 prvSearchForNameWithinSingleList/51 prvSearchForNameWithinSingleList/51 prvSearchForNameWithinSingleList/51 vTaskSuspendAll/45 strlen/108 prvSearchForNameWithinSingleList/51 (prvSearchForNameWithinSingleList) @06c561c0 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: Availability: available Function flags: body Called by: xTaskGetHandle/52 xTaskGetHandle/52 xTaskGetHandle/52 xTaskGetHandle/52 xTaskGetHandle/52 Calls: pcTaskGetName/50 (pcTaskGetName) @06c56d20 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read) Referring: Availability: available Function flags: body Called by: Calls: uxTaskGetNumberOfTasks/49 (uxTaskGetNumberOfTasks) @06c568c0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: uxCurrentNumberOfTasks/17 (read) Referring: Availability: available Function flags: body Called by: Calls: xTaskGetTickCountFromISR/48 (xTaskGetTickCountFromISR) @06c56620 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: xTickCount/18 (read) Referring: Availability: available Function flags: body Called by: Calls: vPortValidateInterruptPriority/104 xTaskGetTickCount/47 (xTaskGetTickCount) @06c56380 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: xTickCount/18 (read) Referring: Availability: available Function flags: body Called by: Calls: xTaskResumeAll/46 (xTaskResumeAll) @06c560e0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: uxSchedulerSuspended/28 (read)uxSchedulerSuspended/28 (read)uxSchedulerSuspended/28 (write)uxSchedulerSuspended/28 (read)uxCurrentNumberOfTasks/17 (read)xPendingReadyList/13 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read)xYieldPending/22 (write)xPendingReadyList/13 (read)xPendedTicks/21 (read)xYieldPending/22 (write)xPendedTicks/21 (write)xYieldPending/22 (read) Referring: Availability: available Function flags: body Called by: vTaskDelay/34 xTaskDelayUntil/33 uxTaskGetSystemState/53 vTaskGetInfo/72 xTaskAbortDelay/55 xTaskCatchUpTicks/54 xTaskGetHandle/52 Calls: vPortExitCritical/101 xTaskIncrementTick/56 prvResetNextTaskUnblockTime/77 vPortEnterCritical/100 vTaskSuspendAll/45 (vTaskSuspendAll) @06c450e0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: uxSchedulerSuspended/28 (read)uxSchedulerSuspended/28 (write) Referring: Availability: available Function flags: body Called by: vTaskDelay/34 xTaskDelayUntil/33 uxTaskGetSystemState/53 vTaskGetInfo/72 xTaskAbortDelay/55 xTaskCatchUpTicks/54 xTaskGetHandle/52 Calls: vTaskEndScheduler/44 (vTaskEndScheduler) @06c45d20 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: xSchedulerRunning/20 (write) Referring: Availability: available Function flags: body Called by: Calls: vPortEndScheduler/107 vTaskStartScheduler/43 (vTaskStartScheduler) @06c45a80 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: prvIdleTask/69 (addr)xIdleTaskHandle/26 (addr)xNextTaskUnblockTime/25 (write)xSchedulerRunning/20 (write)xTickCount/18 (write)uxTopUsedPriority/27 (read) Referring: Availability: available Function flags: body Called by: Calls: xPortStartScheduler/106 xTimerCreateTimerTask/105 xTaskCreate/29 xTaskResumeFromISR/42 (xTaskResumeFromISR) @06c457e0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: uxSchedulerSuspended/28 (read)pxCurrentTCB/7 (read)xYieldPending/22 (write)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)xPendingReadyList/13 (addr) Referring: Availability: available Function flags: body Called by: Calls: vListInsertEnd/103 uxListRemove/102 prvTaskIsTaskSuspended/40 vPortValidateInterruptPriority/104 vTaskResume/41 (vTaskResume) @06c45460 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: body Called by: Calls: vPortExitCritical/101 uxListRemove/102 prvTaskIsTaskSuspended/40 vPortEnterCritical/100 prvTaskIsTaskSuspended/40 (prvTaskIsTaskSuspended) @06c45000 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: xSuspendedTaskList/16 (addr)xPendingReadyList/13 (addr) Referring: Availability: available Function flags: body Called by: xTaskResumeFromISR/42 vTaskResume/41 Calls: vTaskSuspend/39 (vTaskSuspend) @06c38380 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read)xSuspendedTaskList/16 (addr)xSchedulerRunning/20 (read)pxCurrentTCB/7 (read)xSchedulerRunning/20 (read)uxSchedulerSuspended/28 (read)xSuspendedTaskList/16 (read)uxCurrentNumberOfTasks/17 (read)pxCurrentTCB/7 (write) Referring: Availability: available Function flags: body Called by: Calls: vTaskSwitchContext/57 vPortExitCritical/101 prvResetNextTaskUnblockTime/77 vPortEnterCritical/100 vPortExitCritical/101 vListInsertEnd/103 uxListRemove/102 uxListRemove/102 vPortEnterCritical/100 vTaskPrioritySet/38 (vTaskPrioritySet) @06c38b60 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxReadyTasksLists/8 (addr)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write) Referring: Availability: available Function flags: body Called by: Calls: vPortExitCritical/101 uxListRemove/102 vPortEnterCritical/100 uxTaskPriorityGetFromISR/37 (uxTaskPriorityGetFromISR) @06c38620 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read) Referring: Availability: available Function flags: body Called by: Calls: vPortValidateInterruptPriority/104 uxTaskPriorityGet/36 (uxTaskPriorityGet) @06c382a0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read) Referring: Availability: available Function flags: body Called by: Calls: vPortExitCritical/101 vPortEnterCritical/100 eTaskGetState/35 (eTaskGetState) @06c2cb60 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read)pxDelayedTaskList/11 (read)pxOverflowDelayedTaskList/12 (read)xSuspendedTaskList/16 (addr)xTasksWaitingTermination/14 (addr) Referring: Availability: available Function flags: body Called by: vTaskGetInfo/72 xTaskAbortDelay/55 Calls: vPortExitCritical/101 vPortEnterCritical/100 vTaskDelay/34 (vTaskDelay) @06c2cee0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: uxSchedulerSuspended/28 (read) Referring: Availability: available Function flags: body Called by: Calls: xTaskResumeAll/46 prvAddCurrentTaskToDelayedList/94 vTaskSuspendAll/45 xTaskDelayUntil/33 (xTaskDelayUntil) @06c2ca80 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: uxSchedulerSuspended/28 (read)xTickCount/18 (read) Referring: Availability: available Function flags: body Called by: Calls: xTaskResumeAll/46 prvAddCurrentTaskToDelayedList/94 vTaskSuspendAll/45 vTaskDelete/32 (vTaskDelete) @06c2c460 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: pxCurrentTCB/7 (read)uxTaskNumber/24 (read)uxTaskNumber/24 (write)pxCurrentTCB/7 (read)xTasksWaitingTermination/14 (addr)uxDeletedTasksWaitingCleanUp/15 (read)uxDeletedTasksWaitingCleanUp/15 (write)uxCurrentNumberOfTasks/17 (read)uxCurrentNumberOfTasks/17 (write)xSchedulerRunning/20 (read)pxCurrentTCB/7 (read)uxSchedulerSuspended/28 (read) Referring: Availability: available Function flags: body Called by: Calls: vPortExitCritical/101 prvResetNextTaskUnblockTime/77 prvDeleteTCB/76 vListInsertEnd/103 uxListRemove/102 uxListRemove/102 vPortEnterCritical/100 prvAddNewTaskToReadyList/31 (prvAddNewTaskToReadyList) @06c18ee0 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: uxCurrentNumberOfTasks/17 (read)uxCurrentNumberOfTasks/17 (write)pxCurrentTCB/7 (read)pxCurrentTCB/7 (write)uxCurrentNumberOfTasks/17 (read)xSchedulerRunning/20 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (write)uxTaskNumber/24 (read)uxTaskNumber/24 (write)uxTaskNumber/24 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)xSchedulerRunning/20 (read)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: body Called by: xTaskCreate/29 Calls: vPortExitCritical/101 prvInitialiseTaskLists/70 vPortEnterCritical/100 prvInitialiseNewTask/30 (prvInitialiseNewTask) @06c18e00 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: Availability: available Function flags: body Called by: xTaskCreate/29 Calls: pxPortInitialiseStack/99 memset/97 memset/97 vListInitialiseItem/98 vListInitialiseItem/98 memset/97 xTaskCreate/29 (xTaskCreate) @06c188c0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: vTaskStartScheduler/43 Calls: prvAddNewTaskToReadyList/31 prvInitialiseNewTask/30 vPortFree/96 pvPortMalloc/95 pvPortMalloc/95 uxSchedulerSuspended/28 (uxSchedulerSuspended) @06c115a0 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: xTaskRemoveFromEventList/61 (read)xTaskGenericNotifyFromISR/90 (read)vTaskGenericNotifyGiveFromISR/91 (read)vTaskRemoveFromUnorderedEventList/62 (read)xTaskGetSchedulerState/79 (read)xTaskCatchUpTicks/54 (read)vTaskDelay/34 (read)vTaskSwitchContext/57 (read)xTaskResumeAll/46 (read)vTaskSuspendAll/45 (read)vTaskSuspend/39 (read)xTaskIncrementTick/56 (read)vTaskDelete/32 (read)xTaskResumeFromISR/42 (read)xTaskDelayUntil/33 (read)vTaskSuspendAll/45 (write)xTaskResumeAll/46 (read)xTaskResumeAll/46 (read)xTaskResumeAll/46 (write)vTaskPlaceOnUnorderedEventList/59 (read) Availability: available Varpool flags: initialized uxTopUsedPriority/27 (uxTopUsedPriority) @06c11510 Type: variable definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: vTaskStartScheduler/43 (read) Availability: available Varpool flags: initialized read-only xIdleTaskHandle/26 (xIdleTaskHandle) @06c11480 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: vTaskStartScheduler/43 (addr) Availability: available Varpool flags: initialized xNextTaskUnblockTime/25 (xNextTaskUnblockTime) @06c113f0 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: prvResetNextTaskUnblockTime/77 (write)xTaskIncrementTick/56 (write)xTaskIncrementTick/56 (write)vTaskStartScheduler/43 (write)prvResetNextTaskUnblockTime/77 (write)xTaskIncrementTick/56 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (write) Availability: available Varpool flags: initialized uxTaskNumber/24 (uxTaskNumber) @06c11360 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (write)prvAddNewTaskToReadyList/31 (read)vTaskDelete/32 (read)vTaskDelete/32 (write) Availability: available Varpool flags: initialized xNumOfOverflows/23 (xNumOfOverflows) @06c11318 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: xTaskCheckForTimeOut/65 (read)vTaskInternalSetTimeOutState/64 (read)vTaskSetTimeOutState/63 (read)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write) Availability: available Varpool flags: initialized xYieldPending/22 (xYieldPending) @06c112d0 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: xTaskAbortDelay/55 (write)xTaskRemoveFromEventList/61 (write)vTaskSwitchContext/57 (write)vTaskMissedYield/66 (write)xTaskIncrementTick/56 (read)vTaskRemoveFromUnorderedEventList/62 (write)xTaskResumeAll/46 (read)xTaskGenericNotifyFromISR/90 (write)xTaskResumeFromISR/42 (write)vTaskSwitchContext/57 (write)xTaskResumeAll/46 (write)xTaskResumeAll/46 (write)vTaskGenericNotifyGiveFromISR/91 (write) Availability: available Varpool flags: initialized xPendedTicks/21 (xPendedTicks) @06c11240 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: xTaskResumeAll/46 (read)xTaskResumeAll/46 (write)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)xTaskCatchUpTicks/54 (read)xTaskCatchUpTicks/54 (write) Availability: available Varpool flags: initialized xSchedulerRunning/20 (xSchedulerRunning) @06c111b0 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: vTaskDelete/32 (read)vTaskSuspend/39 (read)prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (read)vTaskStartScheduler/43 (write)vTaskEndScheduler/44 (write)vTaskSuspend/39 (read)xTaskGetSchedulerState/79 (read) Availability: available Varpool flags: initialized uxTopReadyPriority/19 (uxTopReadyPriority) @06c11120 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (write)xTaskGenericNotify/89 (read)xTaskGenericNotify/89 (write)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (write)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (write)prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (write)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)vTaskRemoveFromUnorderedEventList/62 (read)vTaskRemoveFromUnorderedEventList/62 (write)vTaskResume/41 (read)vTaskResume/41 (write)xTaskResumeFromISR/42 (read)xTaskResumeFromISR/42 (write)vTaskSwitchContext/57 (read)vTaskSwitchContext/57 (write)xTaskResumeAll/46 (read)xTaskResumeAll/46 (write)xTaskAbortDelay/55 (read)xTaskAbortDelay/55 (write)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (write)xTaskPriorityDisinherit/81 (read)xTaskPriorityDisinherit/81 (write)vTaskPriorityDisinheritAfterTimeout/82 (read)vTaskPriorityDisinheritAfterTimeout/82 (write)vTaskGenericNotifyGiveFromISR/91 (read)vTaskGenericNotifyGiveFromISR/91 (write) Availability: available Varpool flags: initialized xTickCount/18 (xTickCount) @06c110d8 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: xTaskGenericNotifyFromISR/90 (read)vTaskInternalSetTimeOutState/64 (read)xTaskGenericNotify/89 (read)prvAddCurrentTaskToDelayedList/94 (read)xTaskIncrementTick/56 (write)xTaskCheckForTimeOut/65 (read)xTaskGetTickCount/47 (read)xTaskGetTickCountFromISR/48 (read)vTaskSetTimeOutState/63 (read)vTaskStartScheduler/43 (write)xTaskIncrementTick/56 (read)xTaskDelayUntil/33 (read) Availability: available Varpool flags: initialized uxCurrentNumberOfTasks/17 (uxCurrentNumberOfTasks) @06c11090 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: uxTaskGetNumberOfTasks/49 (read)prvCheckTasksWaitingTermination/71 (read)uxTaskGetSystemState/53 (read)prvAddNewTaskToReadyList/31 (write)prvAddNewTaskToReadyList/31 (read)prvCheckTasksWaitingTermination/71 (write)vTaskDelete/32 (write)xTaskResumeAll/46 (read)vTaskSuspend/39 (read)vTaskDelete/32 (read)prvAddNewTaskToReadyList/31 (read)vTaskList/84 (read)vTaskList/84 (read) Availability: available Varpool flags: initialized xSuspendedTaskList/16 (xSuspendedTaskList) @06c0ef78 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: xTaskGetHandle/52 (addr)vTaskSuspend/39 (addr)prvTaskIsTaskSuspended/40 (addr)uxTaskGetSystemState/53 (addr)prvInitialiseTaskLists/70 (addr)vTaskSuspend/39 (read)eTaskGetState/35 (addr)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (addr)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (write) Availability: available Varpool flags: uxDeletedTasksWaitingCleanUp/15 (uxDeletedTasksWaitingCleanUp) @06c0eee8 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: prvCheckTasksWaitingTermination/71 (write)prvCheckTasksWaitingTermination/71 (read)prvCheckTasksWaitingTermination/71 (read)vTaskDelete/32 (read)vTaskDelete/32 (write) Availability: available Varpool flags: initialized xTasksWaitingTermination/14 (xTasksWaitingTermination) @06c0ee58 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: prvInitialiseTaskLists/70 (addr)eTaskGetState/35 (addr)prvCheckTasksWaitingTermination/71 (read)vTaskDelete/32 (addr)xTaskGetHandle/52 (addr)uxTaskGetSystemState/53 (addr) Availability: available Varpool flags: xPendingReadyList/13 (xPendingReadyList) @06c0edc8 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: xTaskResumeAll/46 (read)xTaskGenericNotifyFromISR/90 (write)xTaskGenericNotifyFromISR/90 (read)xTaskRemoveFromEventList/61 (write)xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (addr)xTaskResumeAll/46 (read)prvTaskIsTaskSuspended/40 (addr)xTaskResumeFromISR/42 (addr)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (addr)xTaskRemoveFromEventList/61 (read)prvInitialiseTaskLists/70 (addr)vTaskGenericNotifyGiveFromISR/91 (read)vTaskGenericNotifyGiveFromISR/91 (addr)vTaskGenericNotifyGiveFromISR/91 (read)vTaskGenericNotifyGiveFromISR/91 (write) Availability: available Varpool flags: pxOverflowDelayedTaskList/12 (pxOverflowDelayedTaskList) @06c0ed38 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: xTaskGetHandle/52 (read)prvInitialiseTaskLists/70 (write)xTaskIncrementTick/56 (write)uxTaskGetSystemState/53 (read)eTaskGetState/35 (read)xTaskIncrementTick/56 (read)prvAddCurrentTaskToDelayedList/94 (read) Availability: available Varpool flags: pxDelayedTaskList/11 (pxDelayedTaskList) @06c0ecf0 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: xTaskGetHandle/52 (read)prvResetNextTaskUnblockTime/77 (read)xTaskIncrementTick/56 (read)prvInitialiseTaskLists/70 (write)uxTaskGetSystemState/53 (read)eTaskGetState/35 (read)prvResetNextTaskUnblockTime/77 (read)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)xTaskIncrementTick/56 (read)prvAddCurrentTaskToDelayedList/94 (read) Availability: available Varpool flags: xDelayedTaskList2/10 (xDelayedTaskList2) @06c0eca8 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: prvInitialiseTaskLists/70 (addr)prvInitialiseTaskLists/70 (addr) Availability: available Varpool flags: xDelayedTaskList1/9 (xDelayedTaskList1) @06c0ec18 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: prvInitialiseTaskLists/70 (addr)prvInitialiseTaskLists/70 (addr) Availability: available Varpool flags: pxReadyTasksLists/8 (pxReadyTasksLists) @06c0eb88 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (addr)xTaskRemoveFromEventList/61 (read)vTaskRemoveFromUnorderedEventList/62 (write)vTaskPriorityDisinheritAfterTimeout/82 (write)xTaskGenericNotify/89 (read)xTaskGenericNotify/89 (addr)xTaskGenericNotify/89 (read)xTaskGenericNotify/89 (write)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (addr)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (write)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (addr)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (write)prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (addr)prvAddNewTaskToReadyList/31 (read)prvIdleTask/69 (read)xTaskIncrementTick/56 (read)xTaskGetHandle/52 (addr)xTaskIncrementTick/56 (addr)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)xTaskResumeAll/46 (write)xTaskPriorityInherit/80 (addr)vTaskRemoveFromUnorderedEventList/62 (read)vTaskRemoveFromUnorderedEventList/62 (addr)vTaskRemoveFromUnorderedEventList/62 (read)prvAddNewTaskToReadyList/31 (write)vTaskResume/41 (read)vTaskResume/41 (write)vTaskResume/41 (read)vTaskResume/41 (addr)xTaskResumeFromISR/42 (read)xTaskResumeFromISR/42 (write)xTaskResumeFromISR/42 (read)xTaskResumeFromISR/42 (addr)vTaskSwitchContext/57 (read)vTaskSwitchContext/57 (addr)prvInitialiseTaskLists/70 (addr)xTaskRemoveFromEventList/61 (write)vTaskPrioritySet/38 (addr)xTaskResumeAll/46 (read)xTaskResumeAll/46 (addr)xTaskResumeAll/46 (read)xTaskAbortDelay/55 (write)xTaskAbortDelay/55 (read)xTaskAbortDelay/55 (addr)xTaskAbortDelay/55 (read)uxTaskGetSystemState/53 (addr)xTaskIncrementTick/56 (read)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (addr)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (write)xTaskPriorityDisinherit/81 (read)xTaskPriorityDisinherit/81 (addr)xTaskPriorityDisinherit/81 (read)xTaskPriorityDisinherit/81 (write)vTaskPriorityDisinheritAfterTimeout/82 (read)vTaskPriorityDisinheritAfterTimeout/82 (addr)vTaskPriorityDisinheritAfterTimeout/82 (read)vTaskPriorityDisinheritAfterTimeout/82 (addr)vTaskGenericNotifyGiveFromISR/91 (read)vTaskGenericNotifyGiveFromISR/91 (addr)vTaskGenericNotifyGiveFromISR/91 (read)vTaskGenericNotifyGiveFromISR/91 (write) Availability: available Varpool flags: pxCurrentTCB/7 (pxCurrentTCB) @06c0eb40 Type: variable definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: prvAddNewTaskToReadyList/31 (read)ulTaskGenericNotifyTake/87 (read)ulTaskGenericNotifyTake/87 (read)vTaskResume/41 (read)vTaskRemoveFromUnorderedEventList/62 (read)vTaskPrioritySet/38 (read)xTaskCheckForTimeOut/65 (read)prvAddNewTaskToReadyList/31 (read)xTaskGenericNotifyStateClear/92 (read)ulTaskGenericNotifyTake/87 (read)eTaskGetState/35 (read)prvAddNewTaskToReadyList/31 (write)uxTaskResetEventItemValue/85 (read)uxTaskResetEventItemValue/85 (read)uxTaskPriorityGet/36 (read)prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (write)uxTaskGetStackHighWaterMark/75 (read)ulTaskGenericNotifyTake/87 (read)uxTaskPriorityGetFromISR/37 (read)vTaskPrioritySet/38 (read)vTaskSuspend/39 (write)vTaskResume/41 (read)xTaskIncrementTick/56 (read)vTaskDelete/32 (read)vTaskDelete/32 (read)xTaskResumeFromISR/42 (read)ulTaskGenericNotifyValueClear/93 (read)ulTaskGenericNotifyTake/87 (read)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (read)pvTaskIncrementMutexHeldCount/86 (read)pvTaskIncrementMutexHeldCount/86 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)vTaskPlaceOnEventList/58 (read)pcTaskGetName/50 (read)vTaskSwitchContext/57 (write)vTaskPrioritySet/38 (read)xTaskRemoveFromEventList/61 (read)vTaskSuspend/39 (read)xTaskResumeAll/46 (read)xTaskCheckForTimeOut/65 (read)xTaskAbortDelay/55 (read)ulTaskGenericNotifyTake/87 (read)vTaskPrioritySet/38 (read)vTaskDelete/32 (read)xTaskIncrementTick/56 (read)vTaskGetInfo/72 (read)xTaskGetCurrentTaskHandle/78 (read)xTaskPriorityInherit/80 (read)vTaskSuspend/39 (read)vTaskGetInfo/72 (read)xTaskPriorityDisinherit/81 (read)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (read)vTaskPriorityDisinheritAfterTimeout/82 (read)prvAddCurrentTaskToDelayedList/94 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)prvAddCurrentTaskToDelayedList/94 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)uxTaskResetEventItemValue/85 (read)pvTaskIncrementMutexHeldCount/86 (read)xTaskGenericNotify/89 (read)xTaskGenericNotifyFromISR/90 (read)vTaskGenericNotifyGiveFromISR/91 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read) Availability: available Varpool flags: initialized ;; Function xTaskCreate (xTaskCreate, funcdef_no=7, decl_uid=6140, cgraph_uid=8, symbol_order=29) xTaskCreate (void (*TaskFunction_t) (void *) pxTaskCode, const char * const pcName, const uint16_t usStackDepth, void * const pvParameters, UBaseType_t uxPriority, struct tskTaskControlBlock * * const pxCreatedTask) { StackType_t * pxStack; BaseType_t xReturn; struct TCB_t * pxNewTCB; BaseType_t D.7510; unsigned int _1; unsigned int _2; long unsigned int _3; BaseType_t _26; : _1 = (unsigned int) usStackDepth_8(D); _2 = _1 * 4; pxStack_11 = pvPortMalloc (_2); if (pxStack_11 != 0B) goto ; [INV] else goto ; [INV] : pxNewTCB_14 = pvPortMalloc (92); if (pxNewTCB_14 != 0B) goto ; [INV] else goto ; [INV] : pxNewTCB_14->pxStack = pxStack_11; goto ; [INV] : vPortFree (pxStack_11); goto ; [INV] : pxNewTCB_12 = 0B; : # pxNewTCB_4 = PHI if (pxNewTCB_4 != 0B) goto ; [INV] else goto ; [INV] : _3 = (long unsigned int) usStackDepth_8(D); prvInitialiseNewTask (pxTaskCode_18(D), pcName_19(D), _3, pvParameters_20(D), uxPriority_21(D), pxCreatedTask_22(D), pxNewTCB_4, 0B); prvAddNewTaskToReadyList (pxNewTCB_4); xReturn_25 = 1; goto ; [INV] : xReturn_17 = -1; : # xReturn_5 = PHI _26 = xReturn_5; : : return _26; } ;; Function prvInitialiseNewTask (prvInitialiseNewTask, funcdef_no=8, decl_uid=6975, cgraph_uid=9, symbol_order=30) prvInitialiseNewTask (void (*TaskFunction_t) (void *) pxTaskCode, const char * const pcName, const uint32_t ulStackDepth, void * const pvParameters, UBaseType_t uxPriority, struct tskTaskControlBlock * * const pxCreatedTask, struct TCB_t * pxNewTCB, const struct MemoryRegion_t * const xRegions) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; UBaseType_t x; StackType_t * pxTopOfStack; StackType_t * _1; unsigned int _2; StackType_t * _3; sizetype _4; sizetype _5; long unsigned int pxTopOfStack.0_6; long unsigned int _7; long unsigned int pxTopOfStack.1_8; long unsigned int _9; const char * _10; char _11; const char * _12; char _13; struct ListItem_t * _14; struct ListItem_t * _15; long unsigned int _16; volatile uint32_t * _17; volatile uint8_t * _18; StackType_t * _19; : _1 = pxNewTCB_27(D)->pxStack; _2 = ulStackDepth_28(D) * 4; memset (_1, 165, _2); _3 = pxNewTCB_27(D)->pxStack; _4 = ulStackDepth_28(D) + 1073741823; _5 = _4 * 4; pxTopOfStack_30 = _3 + _5; pxTopOfStack.0_6 = (long unsigned int) pxTopOfStack_30; _7 = pxTopOfStack.0_6 & 4294967288; pxTopOfStack_31 = (StackType_t *) _7; pxTopOfStack.1_8 = (long unsigned int) pxTopOfStack_31; _9 = pxTopOfStack.1_8 & 7; if (_9 != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_58 : "i" 16 : "memory"); : : goto ; [INV] : pxNewTCB_27(D)->pxEndOfStack = pxTopOfStack_31; if (pcName_33(D) != 0B) goto ; [INV] else goto ; [INV] : x_35 = 0; goto ; [INV] : _10 = pcName_33(D) + x_21; _11 = *_10; pxNewTCB_27(D)->pcTaskName[x_21] = _11; _12 = pcName_33(D) + x_21; _13 = *_12; if (_13 == 0) goto ; [INV] else goto ; [INV] : goto ; [INV] : x_37 = x_21 + 1; : # x_21 = PHI if (x_21 <= 9) goto ; [INV] else goto ; [INV] : pxNewTCB_27(D)->pcTaskName[9] = 0; goto ; [INV] : pxNewTCB_27(D)->pcTaskName[0] = 0; : if (uxPriority_39(D) > 4) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_59 : "i" 16 : "memory"); : : goto ; [INV] : if (uxPriority_39(D) > 4) goto ; [INV] else goto ; [INV] : uxPriority_40 = 4; : # uxPriority_20 = PHI pxNewTCB_27(D)->uxPriority = uxPriority_20; pxNewTCB_27(D)->uxBasePriority = uxPriority_20; pxNewTCB_27(D)->uxMutexesHeld = 0; _14 = &pxNewTCB_27(D)->xStateListItem; vListInitialiseItem (_14); _15 = &pxNewTCB_27(D)->xEventListItem; vListInitialiseItem (_15); pxNewTCB_27(D)->xStateListItem.pvOwner = pxNewTCB_27(D); _16 = 5 - uxPriority_20; pxNewTCB_27(D)->xEventListItem.xItemValue = _16; pxNewTCB_27(D)->xEventListItem.pvOwner = pxNewTCB_27(D); _17 = &pxNewTCB_27(D)->ulNotifiedValue[0]; memset (_17, 0, 4); _18 = &pxNewTCB_27(D)->ucNotifyState[0]; memset (_18, 0, 1); pxNewTCB_27(D)->ucDelayAborted = 0; _19 = pxPortInitialiseStack (pxTopOfStack_31, pxTaskCode_52(D), pvParameters_53(D)); pxNewTCB_27(D)->pxTopOfStack = _19; if (pxCreatedTask_56(D) != 0B) goto ; [INV] else goto ; [INV] : *pxCreatedTask_56(D) = pxNewTCB_27(D); : return; } ;; Function prvAddNewTaskToReadyList (prvAddNewTaskToReadyList, funcdef_no=9, decl_uid=6977, cgraph_uid=10, symbol_order=31) prvAddNewTaskToReadyList (struct TCB_t * pxNewTCB) { struct ListItem_t * const pxIndex; long unsigned int uxCurrentNumberOfTasks.2_1; long unsigned int _2; struct TCB_t * pxCurrentTCB.3_3; long unsigned int uxCurrentNumberOfTasks.4_4; long int xSchedulerRunning.5_5; struct TCB_t * pxCurrentTCB.6_6; long unsigned int _7; long unsigned int _8; long unsigned int uxTaskNumber.7_9; long unsigned int _10; long unsigned int uxTaskNumber.8_11; long unsigned int _12; long unsigned int uxTopReadyPriority.9_13; long unsigned int _14; long unsigned int _15; struct xLIST_ITEM * _16; struct xLIST_ITEM * _17; struct ListItem_t * _18; struct ListItem_t * _19; long unsigned int _20; struct List_t * _21; long unsigned int _22; long unsigned int _23; long unsigned int _24; long int xSchedulerRunning.10_25; struct TCB_t * pxCurrentTCB.11_26; long unsigned int _27; long unsigned int _28; volatile uint32_t * _29; : vPortEnterCritical (); uxCurrentNumberOfTasks.2_1 ={v} uxCurrentNumberOfTasks; _2 = uxCurrentNumberOfTasks.2_1 + 1; uxCurrentNumberOfTasks ={v} _2; pxCurrentTCB.3_3 ={v} pxCurrentTCB; if (pxCurrentTCB.3_3 == 0B) goto ; [INV] else goto ; [INV] : pxCurrentTCB ={v} pxNewTCB_36(D); uxCurrentNumberOfTasks.4_4 ={v} uxCurrentNumberOfTasks; if (uxCurrentNumberOfTasks.4_4 == 1) goto ; [INV] else goto ; [INV] : prvInitialiseTaskLists (); goto ; [INV] : xSchedulerRunning.5_5 ={v} xSchedulerRunning; if (xSchedulerRunning.5_5 == 0) goto ; [INV] else goto ; [INV] : pxCurrentTCB.6_6 ={v} pxCurrentTCB; _7 = pxCurrentTCB.6_6->uxPriority; _8 = pxNewTCB_36(D)->uxPriority; if (_7 <= _8) goto ; [INV] else goto ; [INV] : pxCurrentTCB ={v} pxNewTCB_36(D); : uxTaskNumber.7_9 = uxTaskNumber; _10 = uxTaskNumber.7_9 + 1; uxTaskNumber = _10; uxTaskNumber.8_11 = uxTaskNumber; pxNewTCB_36(D)->uxTCBNumber = uxTaskNumber.8_11; _12 = pxNewTCB_36(D)->uxPriority; uxTopReadyPriority.9_13 ={v} uxTopReadyPriority; if (_12 > uxTopReadyPriority.9_13) goto ; [INV] else goto ; [INV] : _14 = pxNewTCB_36(D)->uxPriority; uxTopReadyPriority ={v} _14; : _15 = pxNewTCB_36(D)->uxPriority; pxIndex_43 = pxReadyTasksLists[_15].pxIndex; pxNewTCB_36(D)->xStateListItem.pxNext = pxIndex_43; _16 = pxIndex_43->pxPrevious; pxNewTCB_36(D)->xStateListItem.pxPrevious = _16; _17 = pxIndex_43->pxPrevious; _18 = &pxNewTCB_36(D)->xStateListItem; _17->pxNext = _18; _19 = &pxNewTCB_36(D)->xStateListItem; pxIndex_43->pxPrevious = _19; _20 = pxNewTCB_36(D)->uxPriority; _21 = &pxReadyTasksLists[_20]; pxNewTCB_36(D)->xStateListItem.pvContainer = _21; _22 = pxNewTCB_36(D)->uxPriority; _23 ={v} pxReadyTasksLists[_22].uxNumberOfItems; _24 = _23 + 1; pxReadyTasksLists[_22].uxNumberOfItems ={v} _24; vPortExitCritical (); xSchedulerRunning.10_25 ={v} xSchedulerRunning; if (xSchedulerRunning.10_25 != 0) goto ; [INV] else goto ; [INV] : pxCurrentTCB.11_26 ={v} pxCurrentTCB; _27 = pxCurrentTCB.11_26->uxPriority; _28 = pxNewTCB_36(D)->uxPriority; if (_27 < _28) goto ; [INV] else goto ; [INV] : _29 = 3758157060B; *_29 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : return; } ;; Function vTaskDelete (vTaskDelete, funcdef_no=10, decl_uid=6145, cgraph_uid=11, symbol_order=32) vTaskDelete (struct tskTaskControlBlock * xTaskToDelete) { uint32_t ulNewBASEPRI; struct TCB_t * pxTCB; struct TCB_t * iftmp.12; struct ListItem_t * _1; long unsigned int _2; struct xLIST * _3; struct ListItem_t * _4; long unsigned int uxTaskNumber.13_5; long unsigned int _6; struct TCB_t * pxCurrentTCB.14_7; struct ListItem_t * _8; long unsigned int uxDeletedTasksWaitingCleanUp.15_9; long unsigned int _10; long unsigned int uxCurrentNumberOfTasks.16_11; long unsigned int _12; long int xSchedulerRunning.17_13; struct TCB_t * pxCurrentTCB.18_14; long unsigned int uxSchedulerSuspended.19_15; volatile uint32_t * _16; struct TCB_t * iftmp.12_17; struct TCB_t * iftmp.12_24; struct TCB_t * iftmp.12_25; : vPortEnterCritical (); if (xTaskToDelete_23(D) == 0B) goto ; [INV] else goto ; [INV] : iftmp.12_25 ={v} pxCurrentTCB; goto ; [INV] : iftmp.12_24 = xTaskToDelete_23(D); : # iftmp.12_17 = PHI pxTCB_26 = iftmp.12_17; _1 = &pxTCB_26->xStateListItem; _2 = uxListRemove (_1); : _3 = pxTCB_26->xEventListItem.pvContainer; if (_3 != 0B) goto ; [INV] else goto ; [INV] : _4 = &pxTCB_26->xEventListItem; uxListRemove (_4); : uxTaskNumber.13_5 = uxTaskNumber; _6 = uxTaskNumber.13_5 + 1; uxTaskNumber = _6; pxCurrentTCB.14_7 ={v} pxCurrentTCB; if (pxTCB_26 == pxCurrentTCB.14_7) goto ; [INV] else goto ; [INV] : _8 = &pxTCB_26->xStateListItem; vListInsertEnd (&xTasksWaitingTermination, _8); uxDeletedTasksWaitingCleanUp.15_9 ={v} uxDeletedTasksWaitingCleanUp; _10 = uxDeletedTasksWaitingCleanUp.15_9 + 1; uxDeletedTasksWaitingCleanUp ={v} _10; goto ; [INV] : uxCurrentNumberOfTasks.16_11 ={v} uxCurrentNumberOfTasks; _12 = uxCurrentNumberOfTasks.16_11 + 4294967295; uxCurrentNumberOfTasks ={v} _12; prvDeleteTCB (pxTCB_26); prvResetNextTaskUnblockTime (); : vPortExitCritical (); xSchedulerRunning.17_13 ={v} xSchedulerRunning; if (xSchedulerRunning.17_13 != 0) goto ; [INV] else goto ; [INV] : pxCurrentTCB.18_14 ={v} pxCurrentTCB; if (pxTCB_26 == pxCurrentTCB.18_14) goto ; [INV] else goto ; [INV] : uxSchedulerSuspended.19_15 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.19_15 != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_39 : "i" 16 : "memory"); : : goto ; [INV] : _16 = 3758157060B; *_16 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : return; } ;; Function xTaskDelayUntil (xTaskDelayUntil, funcdef_no=11, decl_uid=6150, cgraph_uid=12, symbol_order=33) xTaskDelayUntil (TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; const TickType_t xConstTickCount; BaseType_t xShouldDelay; BaseType_t xAlreadyYielded; TickType_t xTimeToWake; BaseType_t D.7590; long unsigned int uxSchedulerSuspended.20_1; long unsigned int _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; long unsigned int _6; volatile uint32_t * _7; BaseType_t _27; : xShouldDelay_11 = 0; if (pxPreviousWakeTime_12(D) == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_28 : "i" 16 : "memory"); : : goto ; [INV] : if (xTimeIncrement_13(D) == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_29 : "i" 16 : "memory"); : : goto ; [INV] : uxSchedulerSuspended.20_1 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.20_1 != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_30 : "i" 16 : "memory"); : : goto ; [INV] : vTaskSuspendAll (); xConstTickCount_16 ={v} xTickCount; _2 = *pxPreviousWakeTime_12(D); xTimeToWake_17 = xTimeIncrement_13(D) + _2; _3 = *pxPreviousWakeTime_12(D); if (xConstTickCount_16 < _3) goto ; [INV] else goto ; [INV] : _4 = *pxPreviousWakeTime_12(D); if (xTimeToWake_17 < _4) goto ; [INV] else goto ; [INV] : if (xTimeToWake_17 > xConstTickCount_16) goto ; [INV] else goto ; [INV] : xShouldDelay_19 = 1; goto ; [INV] : _5 = *pxPreviousWakeTime_12(D); if (xTimeToWake_17 < _5) goto ; [INV] else goto ; [INV] : if (xTimeToWake_17 > xConstTickCount_16) goto ; [INV] else goto ; [INV] : xShouldDelay_18 = 1; : # xShouldDelay_8 = PHI *pxPreviousWakeTime_12(D) = xTimeToWake_17; if (xShouldDelay_8 != 0) goto ; [INV] else goto ; [INV] : _6 = xTimeToWake_17 - xConstTickCount_16; prvAddCurrentTaskToDelayedList (_6, 0); : xAlreadyYielded_23 = xTaskResumeAll (); if (xAlreadyYielded_23 == 0) goto ; [INV] else goto ; [INV] : _7 = 3758157060B; *_7 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : _27 = xShouldDelay_8; : : return _27; } ;; Function vTaskDelay (vTaskDelay, funcdef_no=12, decl_uid=6147, cgraph_uid=13, symbol_order=34) vTaskDelay (const TickType_t xTicksToDelay) { uint32_t ulNewBASEPRI; BaseType_t xAlreadyYielded; long unsigned int uxSchedulerSuspended.21_1; volatile uint32_t * _2; : xAlreadyYielded_6 = 0; if (xTicksToDelay_7(D) != 0) goto ; [INV] else goto ; [INV] : uxSchedulerSuspended.21_1 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.21_1 != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_16 : "i" 16 : "memory"); : : goto ; [INV] : vTaskSuspendAll (); prvAddCurrentTaskToDelayedList (xTicksToDelay_7(D), 0); xAlreadyYielded_12 = xTaskResumeAll (); : # xAlreadyYielded_3 = PHI if (xAlreadyYielded_3 == 0) goto ; [INV] else goto ; [INV] : _2 = 3758157060B; *_2 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : return; } ;; Function eTaskGetState (eTaskGetState, funcdef_no=13, decl_uid=6158, cgraph_uid=14, symbol_order=35) eTaskGetState (struct tskTaskControlBlock * xTask) { uint32_t ulNewBASEPRI; BaseType_t x; const struct TCB_t * const pxTCB; const struct List_t * pxOverflowedDelayedList; const struct List_t * pxDelayedList; const struct List_t * pxStateList; eTaskState eReturn; eTaskState D.7621; struct TCB_t * pxCurrentTCB.22_1; struct xLIST * _2; unsigned char _3; eTaskState _25; : pxTCB_9 = xTask_8(D); if (pxTCB_9 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_26 : "i" 16 : "memory"); : : goto ; [INV] : pxCurrentTCB.22_1 ={v} pxCurrentTCB; if (pxTCB_9 == pxCurrentTCB.22_1) goto ; [INV] else goto ; [INV] : eReturn_24 = 0; goto ; [INV] : vPortEnterCritical (); pxStateList_12 = pxTCB_9->xStateListItem.pvContainer; pxDelayedList_13 ={v} pxDelayedTaskList; pxOverflowedDelayedList_14 ={v} pxOverflowDelayedTaskList; vPortExitCritical (); if (pxStateList_12 == pxDelayedList_13) goto ; [INV] else goto ; [INV] : if (pxStateList_12 == pxOverflowedDelayedList_14) goto ; [INV] else goto ; [INV] : eReturn_23 = 2; goto ; [INV] : if (pxStateList_12 == &xSuspendedTaskList) goto ; [INV] else goto ; [INV] : _2 = pxTCB_9->xEventListItem.pvContainer; if (_2 == 0B) goto ; [INV] else goto ; [INV] : eReturn_19 = 3; x_20 = 0; goto ; [INV] : _3 ={v} pxTCB_9->ucNotifyState[x_6]; if (_3 == 1) goto ; [INV] else goto ; [INV] : eReturn_22 = 2; goto ; [INV] : x_21 = x_6 + 1; : # x_6 = PHI if (x_6 <= 0) goto ; [INV] else goto ; [INV] : # eReturn_4 = PHI goto ; [INV] : eReturn_18 = 2; goto ; [INV] : if (pxStateList_12 == &xTasksWaitingTermination) goto ; [INV] else goto ; [INV] : if (pxStateList_12 == 0B) goto ; [INV] else goto ; [INV] : eReturn_17 = 4; goto ; [INV] : eReturn_16 = 1; : # eReturn_5 = PHI _25 = eReturn_5; : : return _25; } ;; Function uxTaskPriorityGet (uxTaskPriorityGet, funcdef_no=14, decl_uid=6154, cgraph_uid=15, symbol_order=36) uxTaskPriorityGet (struct tskTaskControlBlock * const xTask) { UBaseType_t uxReturn; const struct TCB_t * pxTCB; UBaseType_t D.7627; const struct TCB_t * iftmp.23; const struct TCB_t * iftmp.23_1; const struct TCB_t * iftmp.23_5; const struct TCB_t * iftmp.23_6; UBaseType_t _10; : vPortEnterCritical (); if (xTask_4(D) == 0B) goto ; [INV] else goto ; [INV] : iftmp.23_6 ={v} pxCurrentTCB; goto ; [INV] : iftmp.23_5 = xTask_4(D); : # iftmp.23_1 = PHI pxTCB_7 = iftmp.23_1; uxReturn_8 = pxTCB_7->uxPriority; vPortExitCritical (); _10 = uxReturn_8; : : return _10; } ;; Function uxTaskPriorityGetFromISR (uxTaskPriorityGetFromISR, funcdef_no=15, decl_uid=6156, cgraph_uid=16, symbol_order=37) uxTaskPriorityGetFromISR (struct tskTaskControlBlock * const xTask) { uint32_t ulNewMaskValue; uint32_t D.8314; uint32_t ulOriginalBASEPRI; uint32_t ulNewBASEPRI; uint32_t D.8313; UBaseType_t uxSavedInterruptState; UBaseType_t uxReturn; const struct TCB_t * pxTCB; UBaseType_t D.7633; const struct TCB_t * iftmp.24; const struct TCB_t * iftmp.24_1; const struct TCB_t * iftmp.24_6; const struct TCB_t * iftmp.24_7; UBaseType_t _10; long unsigned int _13; : vPortValidateInterruptPriority (); __asm__ __volatile__(" mrs %0, basepri mov %1, %2 msr basepri, %1 isb dsb " : "=r" ulOriginalBASEPRI_11, "=r" ulNewBASEPRI_12 : "i" 16 : "memory"); _13 = ulOriginalBASEPRI_11; : : _16 = _13; : uxSavedInterruptState_4 = _16; if (xTask_5(D) == 0B) goto ; [INV] else goto ; [INV] : iftmp.24_7 ={v} pxCurrentTCB; goto ; [INV] : iftmp.24_6 = xTask_5(D); : # iftmp.24_1 = PHI pxTCB_8 = iftmp.24_1; uxReturn_9 = pxTCB_8->uxPriority; ulNewMaskValue_14 = uxSavedInterruptState_4; __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue_14 : "memory"); : _10 = uxReturn_9; : : return _10; } ;; Function vTaskPrioritySet (vTaskPrioritySet, funcdef_no=16, decl_uid=6166, cgraph_uid=17, symbol_order=38) vTaskPrioritySet (struct tskTaskControlBlock * xTask, UBaseType_t uxNewPriority) { uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; BaseType_t xYieldRequired; UBaseType_t uxPriorityUsedOnEntry; UBaseType_t uxCurrentBasePriority; struct TCB_t * pxTCB; struct TCB_t * iftmp.25; struct TCB_t * pxCurrentTCB.26_1; struct TCB_t * pxCurrentTCB.27_2; long unsigned int _3; struct TCB_t * pxCurrentTCB.28_4; long unsigned int _5; long unsigned int _6; long unsigned int _7; signed int _8; long unsigned int _9; struct xLIST * _10; struct List_t * _11; struct ListItem_t * _12; long unsigned int _13; long unsigned int _14; long unsigned int uxTopReadyPriority.29_15; long unsigned int _16; long unsigned int _17; struct xLIST_ITEM * _18; struct xLIST_ITEM * _19; struct ListItem_t * _20; struct ListItem_t * _21; long unsigned int _22; struct List_t * _23; long unsigned int _24; long unsigned int _25; long unsigned int _26; volatile uint32_t * _27; struct TCB_t * iftmp.25_30; struct TCB_t * iftmp.25_42; struct TCB_t * iftmp.25_43; : xYieldRequired_36 = 0; if (uxNewPriority_37(D) > 4) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_65 : "i" 16 : "memory"); : : goto ; [INV] : if (uxNewPriority_37(D) > 4) goto ; [INV] else goto ; [INV] : uxNewPriority_38 = 4; : # uxNewPriority_28 = PHI vPortEnterCritical (); if (xTask_41(D) == 0B) goto ; [INV] else goto ; [INV] : iftmp.25_43 ={v} pxCurrentTCB; goto ; [INV] : iftmp.25_42 = xTask_41(D); : # iftmp.25_30 = PHI pxTCB_44 = iftmp.25_30; uxCurrentBasePriority_45 = pxTCB_44->uxBasePriority; if (uxCurrentBasePriority_45 != uxNewPriority_28) goto ; [INV] else goto ; [INV] : if (uxNewPriority_28 > uxCurrentBasePriority_45) goto ; [INV] else goto ; [INV] : pxCurrentTCB.26_1 ={v} pxCurrentTCB; if (pxTCB_44 != pxCurrentTCB.26_1) goto ; [INV] else goto ; [INV] : pxCurrentTCB.27_2 ={v} pxCurrentTCB; _3 = pxCurrentTCB.27_2->uxPriority; if (uxNewPriority_28 >= _3) goto ; [INV] else goto ; [INV] : xYieldRequired_47 = 1; goto ; [INV] : pxCurrentTCB.28_4 ={v} pxCurrentTCB; if (pxTCB_44 == pxCurrentTCB.28_4) goto ; [INV] else goto ; [INV] : xYieldRequired_46 = 1; : # xYieldRequired_29 = PHI uxPriorityUsedOnEntry_48 = pxTCB_44->uxPriority; _5 = pxTCB_44->uxBasePriority; _6 = pxTCB_44->uxPriority; if (_5 == _6) goto ; [INV] else goto ; [INV] : pxTCB_44->uxPriority = uxNewPriority_28; : pxTCB_44->uxBasePriority = uxNewPriority_28; _7 = pxTCB_44->xEventListItem.xItemValue; _8 = (signed int) _7; if (_8 >= 0) goto ; [INV] else goto ; [INV] : _9 = 5 - uxNewPriority_28; pxTCB_44->xEventListItem.xItemValue = _9; : _10 = pxTCB_44->xStateListItem.pvContainer; _11 = &pxReadyTasksLists[uxPriorityUsedOnEntry_48]; if (_10 == _11) goto ; [INV] else goto ; [INV] : _12 = &pxTCB_44->xStateListItem; _13 = uxListRemove (_12); : _14 = pxTCB_44->uxPriority; uxTopReadyPriority.29_15 ={v} uxTopReadyPriority; if (_14 > uxTopReadyPriority.29_15) goto ; [INV] else goto ; [INV] : _16 = pxTCB_44->uxPriority; uxTopReadyPriority ={v} _16; : _17 = pxTCB_44->uxPriority; pxIndex_54 = pxReadyTasksLists[_17].pxIndex; pxTCB_44->xStateListItem.pxNext = pxIndex_54; _18 = pxIndex_54->pxPrevious; pxTCB_44->xStateListItem.pxPrevious = _18; _19 = pxIndex_54->pxPrevious; _20 = &pxTCB_44->xStateListItem; _19->pxNext = _20; _21 = &pxTCB_44->xStateListItem; pxIndex_54->pxPrevious = _21; _22 = pxTCB_44->uxPriority; _23 = &pxReadyTasksLists[_22]; pxTCB_44->xStateListItem.pvContainer = _23; _24 = pxTCB_44->uxPriority; _25 ={v} pxReadyTasksLists[_24].uxNumberOfItems; _26 = _25 + 1; pxReadyTasksLists[_24].uxNumberOfItems ={v} _26; : if (xYieldRequired_29 != 0) goto ; [INV] else goto ; [INV] : _27 = 3758157060B; *_27 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : vPortExitCritical (); return; } ;; Function vTaskSuspend (vTaskSuspend, funcdef_no=17, decl_uid=6168, cgraph_uid=18, symbol_order=39) vTaskSuspend (struct tskTaskControlBlock * xTaskToSuspend) { uint32_t ulNewBASEPRI; BaseType_t x; struct TCB_t * pxTCB; struct TCB_t * iftmp.30; struct ListItem_t * _1; long unsigned int _2; struct xLIST * _3; struct ListItem_t * _4; struct ListItem_t * _5; unsigned char _6; long int xSchedulerRunning.31_7; struct TCB_t * pxCurrentTCB.32_8; long int xSchedulerRunning.33_9; long unsigned int uxSchedulerSuspended.34_10; volatile uint32_t * _11; long unsigned int _12; long unsigned int uxCurrentNumberOfTasks.35_13; struct TCB_t * iftmp.30_15; struct TCB_t * iftmp.30_24; struct TCB_t * iftmp.30_25; : vPortEnterCritical (); if (xTaskToSuspend_23(D) == 0B) goto ; [INV] else goto ; [INV] : iftmp.30_25 ={v} pxCurrentTCB; goto ; [INV] : iftmp.30_24 = xTaskToSuspend_23(D); : # iftmp.30_15 = PHI pxTCB_26 = iftmp.30_15; _1 = &pxTCB_26->xStateListItem; _2 = uxListRemove (_1); : _3 = pxTCB_26->xEventListItem.pvContainer; if (_3 != 0B) goto ; [INV] else goto ; [INV] : _4 = &pxTCB_26->xEventListItem; uxListRemove (_4); : _5 = &pxTCB_26->xStateListItem; vListInsertEnd (&xSuspendedTaskList, _5); x_30 = 0; goto ; [INV] : _6 ={v} pxTCB_26->ucNotifyState[x_14]; if (_6 == 1) goto ; [INV] else goto ; [INV] : pxTCB_26->ucNotifyState[x_14] ={v} 0; : x_41 = x_14 + 1; : # x_14 = PHI if (x_14 <= 0) goto ; [INV] else goto ; [INV] : vPortExitCritical (); xSchedulerRunning.31_7 ={v} xSchedulerRunning; if (xSchedulerRunning.31_7 != 0) goto ; [INV] else goto ; [INV] : vPortEnterCritical (); prvResetNextTaskUnblockTime (); vPortExitCritical (); : pxCurrentTCB.32_8 ={v} pxCurrentTCB; if (pxTCB_26 == pxCurrentTCB.32_8) goto ; [INV] else goto ; [INV] : xSchedulerRunning.33_9 ={v} xSchedulerRunning; if (xSchedulerRunning.33_9 != 0) goto ; [INV] else goto ; [INV] : uxSchedulerSuspended.34_10 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.34_10 != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_42 : "i" 16 : "memory"); : : goto ; [INV] : _11 = 3758157060B; *_11 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); goto ; [INV] : _12 ={v} xSuspendedTaskList.uxNumberOfItems; uxCurrentNumberOfTasks.35_13 ={v} uxCurrentNumberOfTasks; if (_12 == uxCurrentNumberOfTasks.35_13) goto ; [INV] else goto ; [INV] : pxCurrentTCB ={v} 0B; goto ; [INV] : vTaskSwitchContext (); : return; } ;; Function prvTaskIsTaskSuspended (prvTaskIsTaskSuspended, funcdef_no=18, decl_uid=6941, cgraph_uid=19, symbol_order=40) prvTaskIsTaskSuspended (struct tskTaskControlBlock * const xTask) { uint32_t ulNewBASEPRI; const struct TCB_t * const pxTCB; BaseType_t xReturn; BaseType_t D.7714; struct xLIST * _1; struct xLIST * _2; struct xLIST * _3; BaseType_t _10; : xReturn_5 = 0; pxTCB_7 = xTask_6(D); if (xTask_6(D) == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_11 : "i" 16 : "memory"); : : goto ; [INV] : _1 = pxTCB_7->xStateListItem.pvContainer; if (_1 == &xSuspendedTaskList) goto ; [INV] else goto ; [INV] : _2 = pxTCB_7->xEventListItem.pvContainer; if (_2 != &xPendingReadyList) goto ; [INV] else goto ; [INV] : _3 = pxTCB_7->xEventListItem.pvContainer; if (_3 == 0B) goto ; [INV] else goto ; [INV] : xReturn_9 = 1; : # xReturn_4 = PHI _10 = xReturn_4; : : return _10; } ;; Function vTaskResume (vTaskResume, funcdef_no=19, decl_uid=6170, cgraph_uid=20, symbol_order=41) vTaskResume (struct tskTaskControlBlock * xTaskToResume) { uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; struct TCB_t * const pxTCB; struct TCB_t * pxCurrentTCB.36_1; long int _2; struct ListItem_t * _3; long unsigned int _4; long unsigned int uxTopReadyPriority.37_5; long unsigned int _6; long unsigned int _7; struct xLIST_ITEM * _8; struct xLIST_ITEM * _9; struct ListItem_t * _10; struct ListItem_t * _11; long unsigned int _12; struct List_t * _13; long unsigned int _14; long unsigned int _15; long unsigned int _16; long unsigned int _17; struct TCB_t * pxCurrentTCB.38_18; long unsigned int _19; volatile uint32_t * _20; : pxTCB_25 = xTaskToResume_24(D); if (xTaskToResume_24(D) == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_42 : "i" 16 : "memory"); : : goto ; [INV] : pxCurrentTCB.36_1 ={v} pxCurrentTCB; if (pxTCB_25 != pxCurrentTCB.36_1) goto ; [INV] else goto ; [INV] : if (pxTCB_25 != 0B) goto ; [INV] else goto ; [INV] : vPortEnterCritical (); _2 = prvTaskIsTaskSuspended (pxTCB_25); if (_2 != 0) goto ; [INV] else goto ; [INV] : _3 = &pxTCB_25->xStateListItem; uxListRemove (_3); _4 = pxTCB_25->uxPriority; uxTopReadyPriority.37_5 ={v} uxTopReadyPriority; if (_4 > uxTopReadyPriority.37_5) goto ; [INV] else goto ; [INV] : _6 = pxTCB_25->uxPriority; uxTopReadyPriority ={v} _6; : _7 = pxTCB_25->uxPriority; pxIndex_31 = pxReadyTasksLists[_7].pxIndex; pxTCB_25->xStateListItem.pxNext = pxIndex_31; _8 = pxIndex_31->pxPrevious; pxTCB_25->xStateListItem.pxPrevious = _8; _9 = pxIndex_31->pxPrevious; _10 = &pxTCB_25->xStateListItem; _9->pxNext = _10; _11 = &pxTCB_25->xStateListItem; pxIndex_31->pxPrevious = _11; _12 = pxTCB_25->uxPriority; _13 = &pxReadyTasksLists[_12]; pxTCB_25->xStateListItem.pvContainer = _13; _14 = pxTCB_25->uxPriority; _15 ={v} pxReadyTasksLists[_14].uxNumberOfItems; _16 = _15 + 1; pxReadyTasksLists[_14].uxNumberOfItems ={v} _16; _17 = pxTCB_25->uxPriority; pxCurrentTCB.38_18 ={v} pxCurrentTCB; _19 = pxCurrentTCB.38_18->uxPriority; if (_17 >= _19) goto ; [INV] else goto ; [INV] : _20 = 3758157060B; *_20 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : vPortExitCritical (); : return; } ;; Function xTaskResumeFromISR (xTaskResumeFromISR, funcdef_no=20, decl_uid=6172, cgraph_uid=21, symbol_order=42) xTaskResumeFromISR (struct tskTaskControlBlock * xTaskToResume) { uint32_t ulNewMaskValue; uint32_t D.8324; uint32_t ulOriginalBASEPRI; uint32_t ulNewBASEPRI; uint32_t D.8323; uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; UBaseType_t uxSavedInterruptStatus; struct TCB_t * const pxTCB; BaseType_t xYieldRequired; BaseType_t D.7744; long int _1; long unsigned int uxSchedulerSuspended.39_2; long unsigned int _3; struct TCB_t * pxCurrentTCB.40_4; long unsigned int _5; struct ListItem_t * _6; long unsigned int _7; long unsigned int uxTopReadyPriority.41_8; long unsigned int _9; long unsigned int _10; struct xLIST_ITEM * _11; struct xLIST_ITEM * _12; struct ListItem_t * _13; struct ListItem_t * _14; long unsigned int _15; struct List_t * _16; long unsigned int _17; long unsigned int _18; long unsigned int _19; struct ListItem_t * _20; BaseType_t _45; long unsigned int _49; : xYieldRequired_26 = 0; pxTCB_28 = xTaskToResume_27(D); if (xTaskToResume_27(D) == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_46 : "i" 16 : "memory"); : : goto ; [INV] : vPortValidateInterruptPriority (); __asm__ __volatile__(" mrs %0, basepri mov %1, %2 msr basepri, %1 isb dsb " : "=r" ulOriginalBASEPRI_47, "=r" ulNewBASEPRI_48 : "i" 16 : "memory"); _49 = ulOriginalBASEPRI_47; : : _52 = _49; : uxSavedInterruptStatus_31 = _52; _1 = prvTaskIsTaskSuspended (pxTCB_28); if (_1 != 0) goto ; [INV] else goto ; [INV] : uxSchedulerSuspended.39_2 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.39_2 == 0) goto ; [INV] else goto ; [INV] : _3 = pxTCB_28->uxPriority; pxCurrentTCB.40_4 ={v} pxCurrentTCB; _5 = pxCurrentTCB.40_4->uxPriority; if (_3 >= _5) goto ; [INV] else goto ; [INV] : xYieldRequired_34 = 1; xYieldPending ={v} 1; : # xYieldRequired_21 = PHI _6 = &pxTCB_28->xStateListItem; uxListRemove (_6); _7 = pxTCB_28->uxPriority; uxTopReadyPriority.41_8 ={v} uxTopReadyPriority; if (_7 > uxTopReadyPriority.41_8) goto ; [INV] else goto ; [INV] : _9 = pxTCB_28->uxPriority; uxTopReadyPriority ={v} _9; : _10 = pxTCB_28->uxPriority; pxIndex_38 = pxReadyTasksLists[_10].pxIndex; pxTCB_28->xStateListItem.pxNext = pxIndex_38; _11 = pxIndex_38->pxPrevious; pxTCB_28->xStateListItem.pxPrevious = _11; _12 = pxIndex_38->pxPrevious; _13 = &pxTCB_28->xStateListItem; _12->pxNext = _13; _14 = &pxTCB_28->xStateListItem; pxIndex_38->pxPrevious = _14; _15 = pxTCB_28->uxPriority; _16 = &pxReadyTasksLists[_15]; pxTCB_28->xStateListItem.pvContainer = _16; _17 = pxTCB_28->uxPriority; _18 ={v} pxReadyTasksLists[_17].uxNumberOfItems; _19 = _18 + 1; pxReadyTasksLists[_17].uxNumberOfItems ={v} _19; goto ; [INV] : _20 = &pxTCB_28->xEventListItem; vListInsertEnd (&xPendingReadyList, _20); : # xYieldRequired_22 = PHI ulNewMaskValue_50 = uxSavedInterruptStatus_31; __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue_50 : "memory"); : _45 = xYieldRequired_22; : : return _45; } ;; Function vTaskStartScheduler (vTaskStartScheduler, funcdef_no=21, decl_uid=6174, cgraph_uid=22, symbol_order=43) vTaskStartScheduler () { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; BaseType_t xReturn; long unsigned int vol.42; long int _1; long unsigned int vol.42_14; : xReturn_7 = xTaskCreate (prvIdleTask, "IDLE", 90, 0B, 0, &xIdleTaskHandle); if (xReturn_7 == 1) goto ; [INV] else goto ; [INV] : xReturn_9 = xTimerCreateTimerTask (); : # xReturn_2 = PHI if (xReturn_2 == 1) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_15 : "i" 16 : "memory"); : xNextTaskUnblockTime ={v} 4294967295; xSchedulerRunning ={v} 1; xTickCount ={v} 0; _1 = xPortStartScheduler (); goto ; [INV] : if (xReturn_2 == -1) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_16 : "i" 16 : "memory"); : : goto ; [INV] : vol.42_14 ={v} uxTopUsedPriority; return; } ;; Function vTaskEndScheduler (vTaskEndScheduler, funcdef_no=22, decl_uid=6176, cgraph_uid=23, symbol_order=44) vTaskEndScheduler () { uint32_t ulNewBASEPRI; : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory"); : xSchedulerRunning ={v} 0; vPortEndScheduler (); return; } ;; Function vTaskSuspendAll (vTaskSuspendAll, funcdef_no=23, decl_uid=6178, cgraph_uid=24, symbol_order=45) vTaskSuspendAll () { long unsigned int uxSchedulerSuspended.43_1; long unsigned int _2; : uxSchedulerSuspended.43_1 ={v} uxSchedulerSuspended; _2 = uxSchedulerSuspended.43_1 + 1; uxSchedulerSuspended ={v} _2; __asm__ __volatile__("" : : : "memory"); return; } ;; Function xTaskResumeAll (xTaskResumeAll, funcdef_no=24, decl_uid=6180, cgraph_uid=25, symbol_order=46) xTaskResumeAll () { uint32_t ulNewBASEPRI; TickType_t xPendedCounts; struct ListItem_t * const pxIndex; struct List_t * const pxList; struct List_t * const pxList; BaseType_t xAlreadyYielded; struct TCB_t * pxTCB; BaseType_t D.7785; long unsigned int uxSchedulerSuspended.44_1; long unsigned int uxSchedulerSuspended.45_2; long unsigned int _3; long unsigned int uxSchedulerSuspended.46_4; long unsigned int uxCurrentNumberOfTasks.47_5; struct xLIST_ITEM * _6; struct xLIST_ITEM * _7; struct xLIST_ITEM * _8; struct xLIST_ITEM * _9; struct xLIST_ITEM * _10; struct ListItem_t * _11; struct ListItem_t * _12; struct xLIST_ITEM * _13; long unsigned int _14; long unsigned int _15; struct xLIST_ITEM * _16; struct xLIST_ITEM * _17; struct xLIST_ITEM * _18; struct xLIST_ITEM * _19; struct ListItem_t * _20; struct ListItem_t * _21; struct xLIST_ITEM * _22; long unsigned int _23; long unsigned int _24; long unsigned int _25; long unsigned int uxTopReadyPriority.48_26; long unsigned int _27; long unsigned int _28; struct xLIST_ITEM * _29; struct xLIST_ITEM * _30; struct ListItem_t * _31; struct ListItem_t * _32; long unsigned int _33; struct List_t * _34; long unsigned int _35; long unsigned int _36; long unsigned int _37; long unsigned int _38; struct TCB_t * pxCurrentTCB.49_39; long unsigned int _40; long unsigned int _41; long int _42; long int xYieldPending.50_43; volatile uint32_t * _44; BaseType_t _96; : pxTCB_57 = 0B; xAlreadyYielded_58 = 0; uxSchedulerSuspended.44_1 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.44_1 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_97 : "i" 16 : "memory"); : : goto ; [INV] : vPortEnterCritical (); uxSchedulerSuspended.45_2 ={v} uxSchedulerSuspended; _3 = uxSchedulerSuspended.45_2 + 4294967295; uxSchedulerSuspended ={v} _3; uxSchedulerSuspended.46_4 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.46_4 == 0) goto ; [INV] else goto ; [INV] : uxCurrentNumberOfTasks.47_5 ={v} uxCurrentNumberOfTasks; if (uxCurrentNumberOfTasks.47_5 != 0) goto ; [INV] else goto ; [INV] : goto ; [INV] : _6 = xPendingReadyList.xListEnd.pxNext; pxTCB_72 = _6->pvOwner; pxList_73 = pxTCB_72->xEventListItem.pvContainer; _7 = pxTCB_72->xEventListItem.pxNext; _8 = pxTCB_72->xEventListItem.pxPrevious; _7->pxPrevious = _8; _9 = pxTCB_72->xEventListItem.pxPrevious; _10 = pxTCB_72->xEventListItem.pxNext; _9->pxNext = _10; _11 = pxList_73->pxIndex; _12 = &pxTCB_72->xEventListItem; if (_11 == _12) goto ; [INV] else goto ; [INV] : _13 = pxTCB_72->xEventListItem.pxPrevious; pxList_73->pxIndex = _13; : pxTCB_72->xEventListItem.pvContainer = 0B; _14 ={v} pxList_73->uxNumberOfItems; _15 = _14 + 4294967295; pxList_73->uxNumberOfItems ={v} _15; __asm__ __volatile__("" : : : "memory"); pxList_80 = pxTCB_72->xStateListItem.pvContainer; _16 = pxTCB_72->xStateListItem.pxNext; _17 = pxTCB_72->xStateListItem.pxPrevious; _16->pxPrevious = _17; _18 = pxTCB_72->xStateListItem.pxPrevious; _19 = pxTCB_72->xStateListItem.pxNext; _18->pxNext = _19; _20 = pxList_80->pxIndex; _21 = &pxTCB_72->xStateListItem; if (_20 == _21) goto ; [INV] else goto ; [INV] : _22 = pxTCB_72->xStateListItem.pxPrevious; pxList_80->pxIndex = _22; : pxTCB_72->xStateListItem.pvContainer = 0B; _23 ={v} pxList_80->uxNumberOfItems; _24 = _23 + 4294967295; pxList_80->uxNumberOfItems ={v} _24; _25 = pxTCB_72->uxPriority; uxTopReadyPriority.48_26 ={v} uxTopReadyPriority; if (_25 > uxTopReadyPriority.48_26) goto ; [INV] else goto ; [INV] : _27 = pxTCB_72->uxPriority; uxTopReadyPriority ={v} _27; : _28 = pxTCB_72->uxPriority; pxIndex_87 = pxReadyTasksLists[_28].pxIndex; pxTCB_72->xStateListItem.pxNext = pxIndex_87; _29 = pxIndex_87->pxPrevious; pxTCB_72->xStateListItem.pxPrevious = _29; _30 = pxIndex_87->pxPrevious; _31 = &pxTCB_72->xStateListItem; _30->pxNext = _31; _32 = &pxTCB_72->xStateListItem; pxIndex_87->pxPrevious = _32; _33 = pxTCB_72->uxPriority; _34 = &pxReadyTasksLists[_33]; pxTCB_72->xStateListItem.pvContainer = _34; _35 = pxTCB_72->uxPriority; _36 ={v} pxReadyTasksLists[_35].uxNumberOfItems; _37 = _36 + 1; pxReadyTasksLists[_35].uxNumberOfItems ={v} _37; _38 = pxTCB_72->uxPriority; pxCurrentTCB.49_39 ={v} pxCurrentTCB; _40 = pxCurrentTCB.49_39->uxPriority; if (_38 >= _40) goto ; [INV] else goto ; [INV] : xYieldPending ={v} 1; : # pxTCB_45 = PHI _41 ={v} xPendingReadyList.uxNumberOfItems; if (_41 != 0) goto ; [INV] else goto ; [INV] : if (pxTCB_45 != 0B) goto ; [INV] else goto ; [INV] : prvResetNextTaskUnblockTime (); : xPendedCounts_63 ={v} xPendedTicks; if (xPendedCounts_63 != 0) goto ; [INV] else goto ; [INV] : # xPendedCounts_47 = PHI _42 = xTaskIncrementTick (); if (_42 != 0) goto ; [INV] else goto ; [INV] : xYieldPending ={v} 1; : xPendedCounts_66 = xPendedCounts_47 + 4294967295; if (xPendedCounts_66 != 0) goto ; [INV] else goto ; [INV] : xPendedTicks ={v} 0; : xYieldPending.50_43 ={v} xYieldPending; if (xYieldPending.50_43 != 0) goto ; [INV] else goto ; [INV] : xAlreadyYielded_68 = 1; _44 = 3758157060B; *_44 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : # xAlreadyYielded_46 = PHI vPortExitCritical (); _96 = xAlreadyYielded_46; : : return _96; } ;; Function xTaskGetTickCount (xTaskGetTickCount, funcdef_no=25, decl_uid=6182, cgraph_uid=26, symbol_order=47) xTaskGetTickCount () { TickType_t xTicks; TickType_t D.7787; TickType_t _3; : xTicks_2 ={v} xTickCount; _3 = xTicks_2; : : return _3; } ;; Function xTaskGetTickCountFromISR (xTaskGetTickCountFromISR, funcdef_no=26, decl_uid=6184, cgraph_uid=27, symbol_order=48) xTaskGetTickCountFromISR () { UBaseType_t uxSavedInterruptStatus; TickType_t xReturn; TickType_t D.7789; TickType_t _5; : vPortValidateInterruptPriority (); uxSavedInterruptStatus_3 = 0; xReturn_4 ={v} xTickCount; _5 = xReturn_4; : : return _5; } ;; Function uxTaskGetNumberOfTasks (uxTaskGetNumberOfTasks, funcdef_no=27, decl_uid=6186, cgraph_uid=28, symbol_order=49) uxTaskGetNumberOfTasks () { UBaseType_t D.7791; UBaseType_t _2; : _2 ={v} uxCurrentNumberOfTasks; : : return _2; } ;; Function pcTaskGetName (pcTaskGetName, funcdef_no=28, decl_uid=6188, cgraph_uid=29, symbol_order=50) pcTaskGetName (struct tskTaskControlBlock * xTaskToQuery) { uint32_t ulNewBASEPRI; struct TCB_t * pxTCB; char * D.7799; struct TCB_t * iftmp.51; struct TCB_t * iftmp.51_1; struct TCB_t * iftmp.51_3; struct TCB_t * iftmp.51_5; char * _7; : if (xTaskToQuery_2(D) == 0B) goto ; [INV] else goto ; [INV] : iftmp.51_5 ={v} pxCurrentTCB; goto ; [INV] : iftmp.51_3 = xTaskToQuery_2(D); : # iftmp.51_1 = PHI pxTCB_6 = iftmp.51_1; if (pxTCB_6 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory"); : : goto ; [INV] : _7 = &pxTCB_6->pcTaskName[0]; : : return _7; } ;; Function prvSearchForNameWithinSingleList (prvSearchForNameWithinSingleList, funcdef_no=29, decl_uid=6959, cgraph_uid=30, symbol_order=51) prvSearchForNameWithinSingleList (struct List_t * pxList, const char * pcNameToQuery) { struct List_t * const pxConstList; struct List_t * const pxConstList; BaseType_t xBreakLoop; char cNextChar; UBaseType_t x; struct TCB_t * pxReturn; struct TCB_t * pxFirstTCB; struct TCB_t * pxNextTCB; struct TCB_t * D.7818; long unsigned int _1; struct ListItem_t * _2; struct xLIST_ITEM * _3; struct ListItem_t * _4; struct MiniListItem_t * _5; struct ListItem_t * _6; struct xLIST_ITEM * _7; struct ListItem_t * _8; struct ListItem_t * _9; struct xLIST_ITEM * _10; struct ListItem_t * _11; struct MiniListItem_t * _12; struct ListItem_t * _13; struct xLIST_ITEM * _14; struct ListItem_t * _15; const char * _16; char _17; struct TCB_t * _49; : pxReturn_30 = 0B; _1 ={v} pxList_32(D)->uxNumberOfItems; if (_1 != 0) goto ; [INV] else goto ; [INV] : pxConstList_33 = pxList_32(D); _2 = pxConstList_33->pxIndex; _3 = _2->pxNext; pxConstList_33->pxIndex = _3; _4 = pxConstList_33->pxIndex; _5 = &pxConstList_33->xListEnd; if (_4 == _5) goto ; [INV] else goto ; [INV] : _6 = pxConstList_33->pxIndex; _7 = _6->pxNext; pxConstList_33->pxIndex = _7; : _8 = pxConstList_33->pxIndex; pxFirstTCB_36 = _8->pvOwner; : # pxReturn_18 = PHI pxConstList_37 = pxList_32(D); _9 = pxConstList_37->pxIndex; _10 = _9->pxNext; pxConstList_37->pxIndex = _10; _11 = pxConstList_37->pxIndex; _12 = &pxConstList_37->xListEnd; if (_11 == _12) goto ; [INV] else goto ; [INV] : _13 = pxConstList_37->pxIndex; _14 = _13->pxNext; pxConstList_37->pxIndex = _14; : _15 = pxConstList_37->pxIndex; pxNextTCB_40 = _15->pvOwner; xBreakLoop_41 = 0; x_42 = 0; goto ; [INV] : cNextChar_43 = pxNextTCB_40->pcTaskName[x_23]; _16 = pcNameToQuery_44(D) + x_23; _17 = *_16; if (cNextChar_43 != _17) goto ; [INV] else goto ; [INV] : xBreakLoop_47 = 1; goto ; [INV] : if (cNextChar_43 == 0) goto ; [INV] else goto ; [INV] : pxReturn_45 = pxNextTCB_40; xBreakLoop_46 = 1; : # pxReturn_19 = PHI # xBreakLoop_24 = PHI if (xBreakLoop_24 != 0) goto ; [INV] else goto ; [INV] : goto ; [INV] : x_48 = x_23 + 1; : # pxReturn_20 = PHI # x_23 = PHI # xBreakLoop_25 = PHI if (x_23 <= 9) goto ; [INV] else goto ; [INV] : # pxReturn_21 = PHI if (pxReturn_21 != 0B) goto ; [INV] else goto ; [INV] : goto ; [INV] : if (pxNextTCB_40 != pxFirstTCB_36) goto ; [INV] else goto ; [INV] : : # pxReturn_22 = PHI _49 = pxReturn_22; : : return _49; } ;; Function xTaskGetHandle (xTaskGetHandle, funcdef_no=30, decl_uid=6190, cgraph_uid=31, symbol_order=52) xTaskGetHandle (const char * pcNameToQuery) { uint32_t ulNewBASEPRI; struct TCB_t * pxTCB; UBaseType_t uxQueue; struct tskTaskControlBlock * D.7832; unsigned int _1; struct List_t * _2; struct List_t * pxDelayedTaskList.52_3; struct List_t * pxOverflowDelayedTaskList.53_4; struct tskTaskControlBlock * _31; : uxQueue_15 = 5; _1 = strlen (pcNameToQuery_17(D)); if (_1 > 9) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_32 : "i" 16 : "memory"); : : goto ; [INV] : vTaskSuspendAll (); : # uxQueue_5 = PHI uxQueue_19 = uxQueue_5 + 4294967295; _2 = &pxReadyTasksLists[uxQueue_19]; pxTCB_21 = prvSearchForNameWithinSingleList (_2, pcNameToQuery_17(D)); if (pxTCB_21 != 0B) goto ; [INV] else goto ; [INV] : goto ; [INV] : if (uxQueue_19 != 0) goto ; [INV] else goto ; [INV] : if (pxTCB_21 == 0B) goto ; [INV] else goto ; [INV] : pxDelayedTaskList.52_3 ={v} pxDelayedTaskList; pxTCB_23 = prvSearchForNameWithinSingleList (pxDelayedTaskList.52_3, pcNameToQuery_17(D)); : # pxTCB_6 = PHI if (pxTCB_6 == 0B) goto ; [INV] else goto ; [INV] : pxOverflowDelayedTaskList.53_4 ={v} pxOverflowDelayedTaskList; pxTCB_25 = prvSearchForNameWithinSingleList (pxOverflowDelayedTaskList.53_4, pcNameToQuery_17(D)); : # pxTCB_7 = PHI if (pxTCB_7 == 0B) goto ; [INV] else goto ; [INV] : pxTCB_27 = prvSearchForNameWithinSingleList (&xSuspendedTaskList, pcNameToQuery_17(D)); : # pxTCB_8 = PHI if (pxTCB_8 == 0B) goto ; [INV] else goto ; [INV] : pxTCB_29 = prvSearchForNameWithinSingleList (&xTasksWaitingTermination, pcNameToQuery_17(D)); : # pxTCB_9 = PHI xTaskResumeAll (); _31 = pxTCB_9; : : return _31; } ;; Function uxTaskGetSystemState (uxTaskGetSystemState, funcdef_no=31, decl_uid=6203, cgraph_uid=32, symbol_order=53) uxTaskGetSystemState (struct TaskStatus_t * const pxTaskStatusArray, const UBaseType_t uxArraySize, uint32_t * const pulTotalRunTime) { UBaseType_t uxQueue; UBaseType_t uxTask; UBaseType_t D.7844; long unsigned int D.7840; long unsigned int D.7839; long unsigned int D.7838; long unsigned int D.7837; long unsigned int D.7836; long unsigned int uxCurrentNumberOfTasks.54_1; long unsigned int _2; struct TaskStatus_t * _3; struct List_t * _4; long unsigned int _5; struct TaskStatus_t * _6; struct List_t * pxDelayedTaskList.55_7; long unsigned int _8; struct TaskStatus_t * _9; struct List_t * pxOverflowDelayedTaskList.56_10; long unsigned int _11; struct TaskStatus_t * _12; long unsigned int _13; struct TaskStatus_t * _14; long unsigned int _28; long unsigned int _31; long unsigned int _34; long unsigned int _37; long unsigned int _40; UBaseType_t _45; : uxTask_20 = 0; uxQueue_21 = 5; vTaskSuspendAll (); uxCurrentNumberOfTasks.54_1 ={v} uxCurrentNumberOfTasks; if (uxArraySize_24(D) >= uxCurrentNumberOfTasks.54_1) goto ; [INV] else goto ; [INV] : # uxTask_15 = PHI # uxQueue_17 = PHI uxQueue_25 = uxQueue_17 + 4294967295; _2 = uxTask_15 * 36; _3 = pxTaskStatusArray_26(D) + _2; _4 = &pxReadyTasksLists[uxQueue_25]; _28 = prvListTasksWithinSingleList (_3, _4, 1); uxTask_29 = _28 + uxTask_15; if (uxQueue_25 != 0) goto ; [INV] else goto ; [INV] : _5 = uxTask_29 * 36; _6 = pxTaskStatusArray_26(D) + _5; pxDelayedTaskList.55_7 ={v} pxDelayedTaskList; _31 = prvListTasksWithinSingleList (_6, pxDelayedTaskList.55_7, 2); uxTask_32 = _31 + uxTask_29; _8 = uxTask_32 * 36; _9 = pxTaskStatusArray_26(D) + _8; pxOverflowDelayedTaskList.56_10 ={v} pxOverflowDelayedTaskList; _34 = prvListTasksWithinSingleList (_9, pxOverflowDelayedTaskList.56_10, 2); uxTask_35 = _34 + uxTask_32; _11 = uxTask_35 * 36; _12 = pxTaskStatusArray_26(D) + _11; _37 = prvListTasksWithinSingleList (_12, &xTasksWaitingTermination, 4); uxTask_38 = _37 + uxTask_35; _13 = uxTask_38 * 36; _14 = pxTaskStatusArray_26(D) + _13; _40 = prvListTasksWithinSingleList (_14, &xSuspendedTaskList, 3); uxTask_41 = _40 + uxTask_38; if (pulTotalRunTime_42(D) != 0B) goto ; [INV] else goto ; [INV] : *pulTotalRunTime_42(D) = 0; : # uxTask_16 = PHI xTaskResumeAll (); _45 = uxTask_16; : : return _45; } ;; Function xTaskCatchUpTicks (xTaskCatchUpTicks, funcdef_no=32, decl_uid=6250, cgraph_uid=33, symbol_order=54) xTaskCatchUpTicks (TickType_t xTicksToCatchUp) { uint32_t ulNewBASEPRI; BaseType_t xYieldOccurred; BaseType_t D.7848; long unsigned int uxSchedulerSuspended.57_1; long unsigned int xPendedTicks.58_2; long unsigned int _3; BaseType_t _10; : uxSchedulerSuspended.57_1 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.57_1 != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_11 : "i" 16 : "memory"); : : goto ; [INV] : vTaskSuspendAll (); xPendedTicks.58_2 ={v} xPendedTicks; _3 = xTicksToCatchUp_6(D) + xPendedTicks.58_2; xPendedTicks ={v} _3; xYieldOccurred_9 = xTaskResumeAll (); _10 = xYieldOccurred_9; : : return _10; } ;; Function xTaskAbortDelay (xTaskAbortDelay, funcdef_no=33, decl_uid=6152, cgraph_uid=34, symbol_order=55) xTaskAbortDelay (struct tskTaskControlBlock * xTask) { uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; BaseType_t xReturn; struct TCB_t * pxTCB; BaseType_t D.7863; _1; struct ListItem_t * _2; struct xLIST * _3; struct ListItem_t * _4; long unsigned int _5; long unsigned int uxTopReadyPriority.59_6; long unsigned int _7; long unsigned int _8; struct xLIST_ITEM * _9; struct xLIST_ITEM * _10; struct ListItem_t * _11; struct ListItem_t * _12; long unsigned int _13; struct List_t * _14; long unsigned int _15; long unsigned int _16; long unsigned int _17; long unsigned int _18; struct TCB_t * pxCurrentTCB.60_19; long unsigned int _20; BaseType_t _47; : pxTCB_26 = xTask_25(D); if (pxTCB_26 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_48 : "i" 16 : "memory"); : : goto ; [INV] : vTaskSuspendAll (); _1 = eTaskGetState (xTask_25(D)); if (_1 == 2) goto ; [INV] else goto ; [INV] : xReturn_31 = 1; _2 = &pxTCB_26->xStateListItem; uxListRemove (_2); vPortEnterCritical (); _3 = pxTCB_26->xEventListItem.pvContainer; if (_3 != 0B) goto ; [INV] else goto ; [INV] : _4 = &pxTCB_26->xEventListItem; uxListRemove (_4); pxTCB_26->ucDelayAborted = 1; : vPortExitCritical (); _5 = pxTCB_26->uxPriority; uxTopReadyPriority.59_6 ={v} uxTopReadyPriority; if (_5 > uxTopReadyPriority.59_6) goto ; [INV] else goto ; [INV] : _7 = pxTCB_26->uxPriority; uxTopReadyPriority ={v} _7; : _8 = pxTCB_26->uxPriority; pxIndex_38 = pxReadyTasksLists[_8].pxIndex; pxTCB_26->xStateListItem.pxNext = pxIndex_38; _9 = pxIndex_38->pxPrevious; pxTCB_26->xStateListItem.pxPrevious = _9; _10 = pxIndex_38->pxPrevious; _11 = &pxTCB_26->xStateListItem; _10->pxNext = _11; _12 = &pxTCB_26->xStateListItem; pxIndex_38->pxPrevious = _12; _13 = pxTCB_26->uxPriority; _14 = &pxReadyTasksLists[_13]; pxTCB_26->xStateListItem.pvContainer = _14; _15 = pxTCB_26->uxPriority; _16 ={v} pxReadyTasksLists[_15].uxNumberOfItems; _17 = _16 + 1; pxReadyTasksLists[_15].uxNumberOfItems ={v} _17; _18 = pxTCB_26->uxPriority; pxCurrentTCB.60_19 ={v} pxCurrentTCB; _20 = pxCurrentTCB.60_19->uxPriority; if (_18 > _20) goto ; [INV] else goto ; [INV] : xYieldPending ={v} 1; goto ; [INV] : xReturn_30 = 0; : # xReturn_21 = PHI xTaskResumeAll (); _47 = xReturn_21; : : return _47; } ;; Function xTaskIncrementTick (xTaskIncrementTick, funcdef_no=34, decl_uid=6252, cgraph_uid=35, symbol_order=56) xTaskIncrementTick () { uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; struct List_t * const pxList; struct List_t * const pxList; struct List_t * pxTemp; const TickType_t xConstTickCount; BaseType_t xSwitchRequired; TickType_t xItemValue; struct TCB_t * pxTCB; BaseType_t D.7897; long unsigned int uxSchedulerSuspended.61_1; long unsigned int xTickCount.62_2; struct List_t * pxDelayedTaskList.63_3; long unsigned int _4; struct List_t * pxOverflowDelayedTaskList.64_5; long int xNumOfOverflows.65_6; long int _7; long unsigned int xNextTaskUnblockTime.66_8; struct List_t * pxDelayedTaskList.67_9; long unsigned int _10; struct List_t * pxDelayedTaskList.68_11; struct xLIST_ITEM * _12; struct xLIST_ITEM * _13; struct xLIST_ITEM * _14; struct xLIST_ITEM * _15; struct xLIST_ITEM * _16; struct ListItem_t * _17; struct ListItem_t * _18; struct xLIST_ITEM * _19; long unsigned int _20; long unsigned int _21; struct xLIST * _22; struct xLIST_ITEM * _23; struct xLIST_ITEM * _24; struct xLIST_ITEM * _25; struct xLIST_ITEM * _26; struct ListItem_t * _27; struct ListItem_t * _28; struct xLIST_ITEM * _29; long unsigned int _30; long unsigned int _31; long unsigned int _32; long unsigned int uxTopReadyPriority.69_33; long unsigned int _34; long unsigned int _35; struct xLIST_ITEM * _36; struct xLIST_ITEM * _37; struct ListItem_t * _38; struct ListItem_t * _39; long unsigned int _40; struct List_t * _41; long unsigned int _42; long unsigned int _43; long unsigned int _44; long unsigned int _45; struct TCB_t * pxCurrentTCB.70_46; long unsigned int _47; struct TCB_t * pxCurrentTCB.71_48; long unsigned int _49; long unsigned int _50; long int xYieldPending.72_51; long unsigned int xPendedTicks.73_52; long unsigned int _53; BaseType_t _104; : xSwitchRequired_67 = 0; uxSchedulerSuspended.61_1 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.61_1 == 0) goto ; [INV] else goto ; [INV] : xTickCount.62_2 ={v} xTickCount; xConstTickCount_70 = xTickCount.62_2 + 1; xTickCount ={v} xConstTickCount_70; if (xConstTickCount_70 == 0) goto ; [INV] else goto ; [INV] : pxDelayedTaskList.63_3 ={v} pxDelayedTaskList; _4 ={v} pxDelayedTaskList.63_3->uxNumberOfItems; if (_4 != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_105 : "i" 16 : "memory"); : : goto ; [INV] : pxTemp_72 ={v} pxDelayedTaskList; pxOverflowDelayedTaskList.64_5 ={v} pxOverflowDelayedTaskList; pxDelayedTaskList ={v} pxOverflowDelayedTaskList.64_5; pxOverflowDelayedTaskList ={v} pxTemp_72; xNumOfOverflows.65_6 ={v} xNumOfOverflows; _7 = xNumOfOverflows.65_6 + 1; xNumOfOverflows ={v} _7; prvResetNextTaskUnblockTime (); : xNextTaskUnblockTime.66_8 ={v} xNextTaskUnblockTime; if (xConstTickCount_70 >= xNextTaskUnblockTime.66_8) goto ; [INV] else goto ; [INV] : # xSwitchRequired_54 = PHI pxDelayedTaskList.67_9 ={v} pxDelayedTaskList; _10 ={v} pxDelayedTaskList.67_9->uxNumberOfItems; if (_10 == 0) goto ; [INV] else goto ; [INV] : xNextTaskUnblockTime ={v} 4294967295; goto ; [INV] : pxDelayedTaskList.68_11 ={v} pxDelayedTaskList; _12 = pxDelayedTaskList.68_11->xListEnd.pxNext; pxTCB_77 = _12->pvOwner; xItemValue_78 = pxTCB_77->xStateListItem.xItemValue; if (xConstTickCount_70 < xItemValue_78) goto ; [INV] else goto ; [INV] : xNextTaskUnblockTime ={v} xItemValue_78; goto ; [INV] : pxList_79 = pxTCB_77->xStateListItem.pvContainer; _13 = pxTCB_77->xStateListItem.pxNext; _14 = pxTCB_77->xStateListItem.pxPrevious; _13->pxPrevious = _14; _15 = pxTCB_77->xStateListItem.pxPrevious; _16 = pxTCB_77->xStateListItem.pxNext; _15->pxNext = _16; _17 = pxList_79->pxIndex; _18 = &pxTCB_77->xStateListItem; if (_17 == _18) goto ; [INV] else goto ; [INV] : _19 = pxTCB_77->xStateListItem.pxPrevious; pxList_79->pxIndex = _19; : pxTCB_77->xStateListItem.pvContainer = 0B; _20 ={v} pxList_79->uxNumberOfItems; _21 = _20 + 4294967295; pxList_79->uxNumberOfItems ={v} _21; _22 = pxTCB_77->xEventListItem.pvContainer; if (_22 != 0B) goto ; [INV] else goto ; [INV] : pxList_85 = pxTCB_77->xEventListItem.pvContainer; _23 = pxTCB_77->xEventListItem.pxNext; _24 = pxTCB_77->xEventListItem.pxPrevious; _23->pxPrevious = _24; _25 = pxTCB_77->xEventListItem.pxPrevious; _26 = pxTCB_77->xEventListItem.pxNext; _25->pxNext = _26; _27 = pxList_85->pxIndex; _28 = &pxTCB_77->xEventListItem; if (_27 == _28) goto ; [INV] else goto ; [INV] : _29 = pxTCB_77->xEventListItem.pxPrevious; pxList_85->pxIndex = _29; : pxTCB_77->xEventListItem.pvContainer = 0B; _30 ={v} pxList_85->uxNumberOfItems; _31 = _30 + 4294967295; pxList_85->uxNumberOfItems ={v} _31; : _32 = pxTCB_77->uxPriority; uxTopReadyPriority.69_33 ={v} uxTopReadyPriority; if (_32 > uxTopReadyPriority.69_33) goto ; [INV] else goto ; [INV] : _34 = pxTCB_77->uxPriority; uxTopReadyPriority ={v} _34; : _35 = pxTCB_77->uxPriority; pxIndex_92 = pxReadyTasksLists[_35].pxIndex; pxTCB_77->xStateListItem.pxNext = pxIndex_92; _36 = pxIndex_92->pxPrevious; pxTCB_77->xStateListItem.pxPrevious = _36; _37 = pxIndex_92->pxPrevious; _38 = &pxTCB_77->xStateListItem; _37->pxNext = _38; _39 = &pxTCB_77->xStateListItem; pxIndex_92->pxPrevious = _39; _40 = pxTCB_77->uxPriority; _41 = &pxReadyTasksLists[_40]; pxTCB_77->xStateListItem.pvContainer = _41; _42 = pxTCB_77->uxPriority; _43 ={v} pxReadyTasksLists[_42].uxNumberOfItems; _44 = _43 + 1; pxReadyTasksLists[_42].uxNumberOfItems ={v} _44; _45 = pxTCB_77->uxPriority; pxCurrentTCB.70_46 ={v} pxCurrentTCB; _47 = pxCurrentTCB.70_46->uxPriority; if (_45 >= _47) goto ; [INV] else goto ; [INV] : xSwitchRequired_99 = 1; : # xSwitchRequired_55 = PHI goto ; [INV] : # xSwitchRequired_56 = PHI pxCurrentTCB.71_48 ={v} pxCurrentTCB; _49 = pxCurrentTCB.71_48->uxPriority; _50 ={v} pxReadyTasksLists[_49].uxNumberOfItems; if (_50 > 1) goto ; [INV] else goto ; [INV] : xSwitchRequired_102 = 1; : # xSwitchRequired_57 = PHI xYieldPending.72_51 ={v} xYieldPending; if (xYieldPending.72_51 != 0) goto ; [INV] else goto ; [INV] : xSwitchRequired_103 = 1; goto ; [INV] : xPendedTicks.73_52 ={v} xPendedTicks; _53 = xPendedTicks.73_52 + 1; xPendedTicks ={v} _53; : # xSwitchRequired_58 = PHI _104 = xSwitchRequired_58; : : return _104; } ;; Function vTaskSwitchContext (vTaskSwitchContext, funcdef_no=35, decl_uid=6270, cgraph_uid=36, symbol_order=57) __attribute__((used)) vTaskSwitchContext () { uint32_t ulNewBASEPRI; struct List_t * const pxConstList; UBaseType_t uxTopPriority; long unsigned int uxSchedulerSuspended.74_1; long unsigned int _2; struct ListItem_t * _3; struct xLIST_ITEM * _4; struct ListItem_t * _5; struct MiniListItem_t * _6; struct ListItem_t * _7; struct xLIST_ITEM * _8; struct ListItem_t * _9; void * _10; : uxSchedulerSuspended.74_1 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.74_1 != 0) goto ; [INV] else goto ; [INV] : xYieldPending ={v} 1; goto ; [INV] : xYieldPending ={v} 0; uxTopPriority_16 ={v} uxTopReadyPriority; goto ; [INV] : if (uxTopPriority_11 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_24 : "i" 16 : "memory"); : : goto ; [INV] : uxTopPriority_22 = uxTopPriority_11 + 4294967295; : # uxTopPriority_11 = PHI _2 ={v} pxReadyTasksLists[uxTopPriority_11].uxNumberOfItems; if (_2 == 0) goto ; [INV] else goto ; [INV] : pxConstList_17 = &pxReadyTasksLists[uxTopPriority_11]; _3 = pxConstList_17->pxIndex; _4 = _3->pxNext; pxConstList_17->pxIndex = _4; _5 = pxConstList_17->pxIndex; _6 = &pxConstList_17->xListEnd; if (_5 == _6) goto ; [INV] else goto ; [INV] : _7 = pxConstList_17->pxIndex; _8 = _7->pxNext; pxConstList_17->pxIndex = _8; : _9 = pxConstList_17->pxIndex; _10 = _9->pvOwner; pxCurrentTCB ={v} _10; uxTopReadyPriority ={v} uxTopPriority_11; : return; } ;; Function vTaskPlaceOnEventList (vTaskPlaceOnEventList, funcdef_no=36, decl_uid=6255, cgraph_uid=37, symbol_order=58) vTaskPlaceOnEventList (struct List_t * const pxEventList, const TickType_t xTicksToWait) { uint32_t ulNewBASEPRI; struct TCB_t * pxCurrentTCB.75_1; struct ListItem_t * _2; : if (pxEventList_3(D) == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory"); : : goto ; [INV] : pxCurrentTCB.75_1 ={v} pxCurrentTCB; _2 = &pxCurrentTCB.75_1->xEventListItem; vListInsert (pxEventList_3(D), _2); prvAddCurrentTaskToDelayedList (xTicksToWait_6(D), 1); return; } ;; Function vTaskPlaceOnUnorderedEventList (vTaskPlaceOnUnorderedEventList, funcdef_no=37, decl_uid=6259, cgraph_uid=38, symbol_order=59) vTaskPlaceOnUnorderedEventList (struct List_t * pxEventList, const TickType_t xItemValue, const TickType_t xTicksToWait) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; long unsigned int uxSchedulerSuspended.76_1; struct TCB_t * pxCurrentTCB.77_2; long unsigned int _3; struct TCB_t * pxCurrentTCB.78_4; struct TCB_t * pxCurrentTCB.79_5; struct xLIST_ITEM * _6; struct TCB_t * pxCurrentTCB.80_7; struct xLIST_ITEM * _8; struct ListItem_t * _9; struct TCB_t * pxCurrentTCB.81_10; struct ListItem_t * _11; struct TCB_t * pxCurrentTCB.82_12; long unsigned int _13; long unsigned int _14; : if (pxEventList_15(D) == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_28 : "i" 16 : "memory"); : : goto ; [INV] : uxSchedulerSuspended.76_1 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.76_1 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_29 : "i" 16 : "memory"); : : goto ; [INV] : pxCurrentTCB.77_2 ={v} pxCurrentTCB; _3 = xItemValue_17(D) | 2147483648; pxCurrentTCB.77_2->xEventListItem.xItemValue = _3; pxIndex_19 = pxEventList_15(D)->pxIndex; pxCurrentTCB.78_4 ={v} pxCurrentTCB; pxCurrentTCB.78_4->xEventListItem.pxNext = pxIndex_19; pxCurrentTCB.79_5 ={v} pxCurrentTCB; _6 = pxIndex_19->pxPrevious; pxCurrentTCB.79_5->xEventListItem.pxPrevious = _6; pxCurrentTCB.80_7 ={v} pxCurrentTCB; _8 = pxIndex_19->pxPrevious; _9 = &pxCurrentTCB.80_7->xEventListItem; _8->pxNext = _9; pxCurrentTCB.81_10 ={v} pxCurrentTCB; _11 = &pxCurrentTCB.81_10->xEventListItem; pxIndex_19->pxPrevious = _11; pxCurrentTCB.82_12 ={v} pxCurrentTCB; pxCurrentTCB.82_12->xEventListItem.pvContainer = pxEventList_15(D); _13 ={v} pxEventList_15(D)->uxNumberOfItems; _14 = _13 + 1; pxEventList_15(D)->uxNumberOfItems ={v} _14; prvAddCurrentTaskToDelayedList (xTicksToWait_26(D), 1); return; } ;; Function vTaskPlaceOnEventListRestricted (vTaskPlaceOnEventListRestricted, funcdef_no=38, decl_uid=6263, cgraph_uid=39, symbol_order=60) vTaskPlaceOnEventListRestricted (struct List_t * const pxEventList, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely) { uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; struct TCB_t * pxCurrentTCB.83_1; struct TCB_t * pxCurrentTCB.84_2; struct xLIST_ITEM * _3; struct TCB_t * pxCurrentTCB.85_4; struct xLIST_ITEM * _5; struct ListItem_t * _6; struct TCB_t * pxCurrentTCB.86_7; struct ListItem_t * _8; struct TCB_t * pxCurrentTCB.87_9; long unsigned int _10; long unsigned int _11; : if (pxEventList_13(D) == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_26 : "i" 16 : "memory"); : : goto ; [INV] : pxIndex_15 = pxEventList_13(D)->pxIndex; pxCurrentTCB.83_1 ={v} pxCurrentTCB; pxCurrentTCB.83_1->xEventListItem.pxNext = pxIndex_15; pxCurrentTCB.84_2 ={v} pxCurrentTCB; _3 = pxIndex_15->pxPrevious; pxCurrentTCB.84_2->xEventListItem.pxPrevious = _3; pxCurrentTCB.85_4 ={v} pxCurrentTCB; _5 = pxIndex_15->pxPrevious; _6 = &pxCurrentTCB.85_4->xEventListItem; _5->pxNext = _6; pxCurrentTCB.86_7 ={v} pxCurrentTCB; _8 = &pxCurrentTCB.86_7->xEventListItem; pxIndex_15->pxPrevious = _8; pxCurrentTCB.87_9 ={v} pxCurrentTCB; pxCurrentTCB.87_9->xEventListItem.pvContainer = pxEventList_13(D); _10 ={v} pxEventList_13(D)->uxNumberOfItems; _11 = _10 + 1; pxEventList_13(D)->uxNumberOfItems ={v} _11; if (xWaitIndefinitely_22(D) != 0) goto ; [INV] else goto ; [INV] : xTicksToWait_24 = 4294967295; : # xTicksToWait_12 = PHI prvAddCurrentTaskToDelayedList (xTicksToWait_12, xWaitIndefinitely_22(D)); return; } ;; Function xTaskRemoveFromEventList (xTaskRemoveFromEventList, funcdef_no=39, decl_uid=6265, cgraph_uid=40, symbol_order=61) xTaskRemoveFromEventList (const struct List_t * const pxEventList) { uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; struct ListItem_t * const pxIndex; struct List_t * const pxList; struct List_t * const pxList; BaseType_t xReturn; struct TCB_t * pxUnblockedTCB; BaseType_t D.7930; struct xLIST_ITEM * _1; struct xLIST_ITEM * _2; struct xLIST_ITEM * _3; struct xLIST_ITEM * _4; struct xLIST_ITEM * _5; struct ListItem_t * _6; struct ListItem_t * _7; struct xLIST_ITEM * _8; long unsigned int _9; long unsigned int _10; long unsigned int uxSchedulerSuspended.88_11; struct xLIST_ITEM * _12; struct xLIST_ITEM * _13; struct xLIST_ITEM * _14; struct xLIST_ITEM * _15; struct ListItem_t * _16; struct ListItem_t * _17; struct xLIST_ITEM * _18; long unsigned int _19; long unsigned int _20; long unsigned int _21; long unsigned int uxTopReadyPriority.89_22; long unsigned int _23; long unsigned int _24; struct xLIST_ITEM * _25; struct xLIST_ITEM * _26; struct ListItem_t * _27; struct ListItem_t * _28; long unsigned int _29; struct List_t * _30; long unsigned int _31; long unsigned int _32; long unsigned int _33; struct xLIST_ITEM * _34; struct xLIST_ITEM * _35; struct ListItem_t * _36; struct ListItem_t * _37; long unsigned int _38; long unsigned int _39; long unsigned int _40; struct TCB_t * pxCurrentTCB.90_41; long unsigned int _42; BaseType_t _82; : _1 = pxEventList_50(D)->xListEnd.pxNext; pxUnblockedTCB_51 = _1->pvOwner; if (pxUnblockedTCB_51 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_83 : "i" 16 : "memory"); : : goto ; [INV] : pxList_52 = pxUnblockedTCB_51->xEventListItem.pvContainer; _2 = pxUnblockedTCB_51->xEventListItem.pxNext; _3 = pxUnblockedTCB_51->xEventListItem.pxPrevious; _2->pxPrevious = _3; _4 = pxUnblockedTCB_51->xEventListItem.pxPrevious; _5 = pxUnblockedTCB_51->xEventListItem.pxNext; _4->pxNext = _5; _6 = pxList_52->pxIndex; _7 = &pxUnblockedTCB_51->xEventListItem; if (_6 == _7) goto ; [INV] else goto ; [INV] : _8 = pxUnblockedTCB_51->xEventListItem.pxPrevious; pxList_52->pxIndex = _8; : pxUnblockedTCB_51->xEventListItem.pvContainer = 0B; _9 ={v} pxList_52->uxNumberOfItems; _10 = _9 + 4294967295; pxList_52->uxNumberOfItems ={v} _10; uxSchedulerSuspended.88_11 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.88_11 == 0) goto ; [INV] else goto ; [INV] : pxList_65 = pxUnblockedTCB_51->xStateListItem.pvContainer; _12 = pxUnblockedTCB_51->xStateListItem.pxNext; _13 = pxUnblockedTCB_51->xStateListItem.pxPrevious; _12->pxPrevious = _13; _14 = pxUnblockedTCB_51->xStateListItem.pxPrevious; _15 = pxUnblockedTCB_51->xStateListItem.pxNext; _14->pxNext = _15; _16 = pxList_65->pxIndex; _17 = &pxUnblockedTCB_51->xStateListItem; if (_16 == _17) goto ; [INV] else goto ; [INV] : _18 = pxUnblockedTCB_51->xStateListItem.pxPrevious; pxList_65->pxIndex = _18; : pxUnblockedTCB_51->xStateListItem.pvContainer = 0B; _19 ={v} pxList_65->uxNumberOfItems; _20 = _19 + 4294967295; pxList_65->uxNumberOfItems ={v} _20; _21 = pxUnblockedTCB_51->uxPriority; uxTopReadyPriority.89_22 ={v} uxTopReadyPriority; if (_21 > uxTopReadyPriority.89_22) goto ; [INV] else goto ; [INV] : _23 = pxUnblockedTCB_51->uxPriority; uxTopReadyPriority ={v} _23; : _24 = pxUnblockedTCB_51->uxPriority; pxIndex_72 = pxReadyTasksLists[_24].pxIndex; pxUnblockedTCB_51->xStateListItem.pxNext = pxIndex_72; _25 = pxIndex_72->pxPrevious; pxUnblockedTCB_51->xStateListItem.pxPrevious = _25; _26 = pxIndex_72->pxPrevious; _27 = &pxUnblockedTCB_51->xStateListItem; _26->pxNext = _27; _28 = &pxUnblockedTCB_51->xStateListItem; pxIndex_72->pxPrevious = _28; _29 = pxUnblockedTCB_51->uxPriority; _30 = &pxReadyTasksLists[_29]; pxUnblockedTCB_51->xStateListItem.pvContainer = _30; _31 = pxUnblockedTCB_51->uxPriority; _32 ={v} pxReadyTasksLists[_31].uxNumberOfItems; _33 = _32 + 1; pxReadyTasksLists[_31].uxNumberOfItems ={v} _33; goto ; [INV] : pxIndex_58 = xPendingReadyList.pxIndex; pxUnblockedTCB_51->xEventListItem.pxNext = pxIndex_58; _34 = pxIndex_58->pxPrevious; pxUnblockedTCB_51->xEventListItem.pxPrevious = _34; _35 = pxIndex_58->pxPrevious; _36 = &pxUnblockedTCB_51->xEventListItem; _35->pxNext = _36; _37 = &pxUnblockedTCB_51->xEventListItem; pxIndex_58->pxPrevious = _37; pxUnblockedTCB_51->xEventListItem.pvContainer = &xPendingReadyList; _38 ={v} xPendingReadyList.uxNumberOfItems; _39 = _38 + 1; xPendingReadyList.uxNumberOfItems ={v} _39; : _40 = pxUnblockedTCB_51->uxPriority; pxCurrentTCB.90_41 ={v} pxCurrentTCB; _42 = pxCurrentTCB.90_41->uxPriority; if (_40 > _42) goto ; [INV] else goto ; [INV] : xReturn_80 = 1; xYieldPending ={v} 1; goto ; [INV] : xReturn_79 = 0; : # xReturn_43 = PHI _82 = xReturn_43; : : return _82; } ;; Function vTaskRemoveFromUnorderedEventList (vTaskRemoveFromUnorderedEventList, funcdef_no=40, decl_uid=6268, cgraph_uid=41, symbol_order=62) vTaskRemoveFromUnorderedEventList (struct ListItem_t * pxEventListItem, const TickType_t xItemValue) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; struct List_t * const pxList; struct List_t * const pxList; struct TCB_t * pxUnblockedTCB; long unsigned int uxSchedulerSuspended.91_1; long unsigned int _2; struct xLIST_ITEM * _3; struct xLIST_ITEM * _4; struct xLIST_ITEM * _5; struct xLIST_ITEM * _6; struct ListItem_t * _7; struct xLIST_ITEM * _8; long unsigned int _9; long unsigned int _10; struct xLIST_ITEM * _11; struct xLIST_ITEM * _12; struct xLIST_ITEM * _13; struct xLIST_ITEM * _14; struct ListItem_t * _15; struct ListItem_t * _16; struct xLIST_ITEM * _17; long unsigned int _18; long unsigned int _19; long unsigned int _20; long unsigned int uxTopReadyPriority.92_21; long unsigned int _22; long unsigned int _23; struct xLIST_ITEM * _24; struct xLIST_ITEM * _25; struct ListItem_t * _26; struct ListItem_t * _27; long unsigned int _28; struct List_t * _29; long unsigned int _30; long unsigned int _31; long unsigned int _32; long unsigned int _33; struct TCB_t * pxCurrentTCB.93_34; long unsigned int _35; : uxSchedulerSuspended.91_1 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.91_1 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_66 : "i" 16 : "memory"); : : goto ; [INV] : _2 = xItemValue_41(D) | 2147483648; pxEventListItem_42(D)->xItemValue = _2; pxUnblockedTCB_44 = pxEventListItem_42(D)->pvOwner; if (pxUnblockedTCB_44 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_67 : "i" 16 : "memory"); : : goto ; [INV] : pxList_45 = pxEventListItem_42(D)->pvContainer; _3 = pxEventListItem_42(D)->pxNext; _4 = pxEventListItem_42(D)->pxPrevious; _3->pxPrevious = _4; _5 = pxEventListItem_42(D)->pxPrevious; _6 = pxEventListItem_42(D)->pxNext; _5->pxNext = _6; _7 = pxList_45->pxIndex; if (pxEventListItem_42(D) == _7) goto ; [INV] else goto ; [INV] : _8 = pxEventListItem_42(D)->pxPrevious; pxList_45->pxIndex = _8; : pxEventListItem_42(D)->pvContainer = 0B; _9 ={v} pxList_45->uxNumberOfItems; _10 = _9 + 4294967295; pxList_45->uxNumberOfItems ={v} _10; pxList_51 = pxUnblockedTCB_44->xStateListItem.pvContainer; _11 = pxUnblockedTCB_44->xStateListItem.pxNext; _12 = pxUnblockedTCB_44->xStateListItem.pxPrevious; _11->pxPrevious = _12; _13 = pxUnblockedTCB_44->xStateListItem.pxPrevious; _14 = pxUnblockedTCB_44->xStateListItem.pxNext; _13->pxNext = _14; _15 = pxList_51->pxIndex; _16 = &pxUnblockedTCB_44->xStateListItem; if (_15 == _16) goto ; [INV] else goto ; [INV] : _17 = pxUnblockedTCB_44->xStateListItem.pxPrevious; pxList_51->pxIndex = _17; : pxUnblockedTCB_44->xStateListItem.pvContainer = 0B; _18 ={v} pxList_51->uxNumberOfItems; _19 = _18 + 4294967295; pxList_51->uxNumberOfItems ={v} _19; _20 = pxUnblockedTCB_44->uxPriority; uxTopReadyPriority.92_21 ={v} uxTopReadyPriority; if (_20 > uxTopReadyPriority.92_21) goto ; [INV] else goto ; [INV] : _22 = pxUnblockedTCB_44->uxPriority; uxTopReadyPriority ={v} _22; : _23 = pxUnblockedTCB_44->uxPriority; pxIndex_58 = pxReadyTasksLists[_23].pxIndex; pxUnblockedTCB_44->xStateListItem.pxNext = pxIndex_58; _24 = pxIndex_58->pxPrevious; pxUnblockedTCB_44->xStateListItem.pxPrevious = _24; _25 = pxIndex_58->pxPrevious; _26 = &pxUnblockedTCB_44->xStateListItem; _25->pxNext = _26; _27 = &pxUnblockedTCB_44->xStateListItem; pxIndex_58->pxPrevious = _27; _28 = pxUnblockedTCB_44->uxPriority; _29 = &pxReadyTasksLists[_28]; pxUnblockedTCB_44->xStateListItem.pvContainer = _29; _30 = pxUnblockedTCB_44->uxPriority; _31 ={v} pxReadyTasksLists[_30].uxNumberOfItems; _32 = _31 + 1; pxReadyTasksLists[_30].uxNumberOfItems ={v} _32; _33 = pxUnblockedTCB_44->uxPriority; pxCurrentTCB.93_34 ={v} pxCurrentTCB; _35 = pxCurrentTCB.93_34->uxPriority; if (_33 > _35) goto ; [INV] else goto ; [INV] : xYieldPending ={v} 1; : return; } ;; Function vTaskSetTimeOutState (vTaskSetTimeOutState, funcdef_no=41, decl_uid=6245, cgraph_uid=42, symbol_order=63) vTaskSetTimeOutState (struct TimeOut_t * const pxTimeOut) { uint32_t ulNewBASEPRI; long int xNumOfOverflows.94_1; long unsigned int xTickCount.95_2; : if (pxTimeOut_3(D) == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_9 : "i" 16 : "memory"); : : goto ; [INV] : vPortEnterCritical (); xNumOfOverflows.94_1 ={v} xNumOfOverflows; pxTimeOut_3(D)->xOverflowCount = xNumOfOverflows.94_1; xTickCount.95_2 ={v} xTickCount; pxTimeOut_3(D)->xTimeOnEntering = xTickCount.95_2; vPortExitCritical (); return; } ;; Function vTaskInternalSetTimeOutState (vTaskInternalSetTimeOutState, funcdef_no=42, decl_uid=6298, cgraph_uid=43, symbol_order=64) vTaskInternalSetTimeOutState (struct TimeOut_t * const pxTimeOut) { long int xNumOfOverflows.96_1; long unsigned int xTickCount.97_2; : xNumOfOverflows.96_1 ={v} xNumOfOverflows; pxTimeOut_4(D)->xOverflowCount = xNumOfOverflows.96_1; xTickCount.97_2 ={v} xTickCount; pxTimeOut_4(D)->xTimeOnEntering = xTickCount.97_2; return; } ;; Function xTaskCheckForTimeOut (xTaskCheckForTimeOut, funcdef_no=43, decl_uid=6248, cgraph_uid=44, symbol_order=65) xTaskCheckForTimeOut (struct TimeOut_t * const pxTimeOut, TickType_t * const pxTicksToWait) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; const TickType_t xElapsedTime; const TickType_t xConstTickCount; BaseType_t xReturn; BaseType_t D.7963; long unsigned int _1; struct TCB_t * pxCurrentTCB.98_2; unsigned char _3; struct TCB_t * pxCurrentTCB.99_4; long unsigned int _5; long int _6; long int xNumOfOverflows.100_7; long unsigned int _8; long unsigned int _9; long unsigned int _10; long unsigned int _11; BaseType_t _31; : if (pxTimeOut_14(D) == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_32 : "i" 16 : "memory"); : : goto ; [INV] : if (pxTicksToWait_15(D) == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_33 : "i" 16 : "memory"); : : goto ; [INV] : vPortEnterCritical (); xConstTickCount_18 ={v} xTickCount; _1 = pxTimeOut_14(D)->xTimeOnEntering; xElapsedTime_19 = xConstTickCount_18 - _1; pxCurrentTCB.98_2 ={v} pxCurrentTCB; _3 = pxCurrentTCB.98_2->ucDelayAborted; if (_3 != 0) goto ; [INV] else goto ; [INV] : pxCurrentTCB.99_4 ={v} pxCurrentTCB; pxCurrentTCB.99_4->ucDelayAborted = 0; xReturn_29 = 1; goto ; [INV] : _5 = *pxTicksToWait_15(D); if (_5 == 4294967295) goto ; [INV] else goto ; [INV] : xReturn_27 = 0; goto ; [INV] : _6 = pxTimeOut_14(D)->xOverflowCount; xNumOfOverflows.100_7 ={v} xNumOfOverflows; if (_6 != xNumOfOverflows.100_7) goto ; [INV] else goto ; [INV] : _8 = pxTimeOut_14(D)->xTimeOnEntering; if (xConstTickCount_18 >= _8) goto ; [INV] else goto ; [INV] : xReturn_20 = 1; *pxTicksToWait_15(D) = 0; goto ; [INV] : _9 = *pxTicksToWait_15(D); if (xElapsedTime_19 < _9) goto ; [INV] else goto ; [INV] : _10 = *pxTicksToWait_15(D); _11 = _10 - xElapsedTime_19; *pxTicksToWait_15(D) = _11; vTaskInternalSetTimeOutState (pxTimeOut_14(D)); xReturn_26 = 0; goto ; [INV] : *pxTicksToWait_15(D) = 0; xReturn_23 = 1; : # xReturn_12 = PHI vPortExitCritical (); _31 = xReturn_12; : : return _31; } ;; Function vTaskMissedYield (vTaskMissedYield, funcdef_no=44, decl_uid=6276, cgraph_uid=45, symbol_order=66) vTaskMissedYield () { : xYieldPending ={v} 1; return; } ;; Function uxTaskGetTaskNumber (uxTaskGetTaskNumber, funcdef_no=45, decl_uid=6287, cgraph_uid=46, symbol_order=67) uxTaskGetTaskNumber (struct tskTaskControlBlock * xTask) { const struct TCB_t * pxTCB; UBaseType_t uxReturn; UBaseType_t D.7968; UBaseType_t _7; : if (xTask_2(D) != 0B) goto ; [INV] else goto ; [INV] : pxTCB_4 = xTask_2(D); uxReturn_6 = pxTCB_4->uxTaskNumber; goto ; [INV] : uxReturn_3 = 0; : # uxReturn_1 = PHI _7 = uxReturn_1; : : return _7; } ;; Function vTaskSetTaskNumber (vTaskSetTaskNumber, funcdef_no=46, decl_uid=6290, cgraph_uid=47, symbol_order=68) vTaskSetTaskNumber (struct tskTaskControlBlock * xTask, const UBaseType_t uxHandle) { struct TCB_t * pxTCB; : if (xTask_2(D) != 0B) goto ; [INV] else goto ; [INV] : pxTCB_4 = xTask_2(D); pxTCB_4->uxTaskNumber = uxHandle_5(D); : return; } ;; Function prvIdleTask (prvIdleTask, funcdef_no=47, decl_uid=6945, cgraph_uid=48, symbol_order=69) prvIdleTask (void * pvParameters) { long unsigned int _1; volatile uint32_t * _2; : prvCheckTasksWaitingTermination (); _1 ={v} pxReadyTasksLists[0].uxNumberOfItems; if (_1 > 1) goto ; [INV] else goto ; [INV] : _2 = 3758157060B; *_2 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : goto ; [INV] } ;; Function prvInitialiseTaskLists (prvInitialiseTaskLists, funcdef_no=48, decl_uid=6943, cgraph_uid=49, symbol_order=70) prvInitialiseTaskLists () { UBaseType_t uxPriority; struct List_t * _1; : uxPriority_4 = 0; goto ; [INV] : _1 = &pxReadyTasksLists[uxPriority_2]; vListInitialise (_1); uxPriority_14 = uxPriority_2 + 1; : # uxPriority_2 = PHI if (uxPriority_2 <= 4) goto ; [INV] else goto ; [INV] : vListInitialise (&xDelayedTaskList1); vListInitialise (&xDelayedTaskList2); vListInitialise (&xPendingReadyList); vListInitialise (&xTasksWaitingTermination); vListInitialise (&xSuspendedTaskList); pxDelayedTaskList ={v} &xDelayedTaskList1; pxOverflowDelayedTaskList ={v} &xDelayedTaskList2; return; } ;; Function prvCheckTasksWaitingTermination (prvCheckTasksWaitingTermination, funcdef_no=49, decl_uid=6949, cgraph_uid=50, symbol_order=71) prvCheckTasksWaitingTermination () { struct TCB_t * pxTCB; struct xLIST_ITEM * _1; struct ListItem_t * _2; long unsigned int uxCurrentNumberOfTasks.101_3; long unsigned int _4; long unsigned int uxDeletedTasksWaitingCleanUp.102_5; long unsigned int _6; long unsigned int uxDeletedTasksWaitingCleanUp.103_7; : goto ; [INV] : vPortEnterCritical (); _1 = xTasksWaitingTermination.xListEnd.pxNext; pxTCB_11 = _1->pvOwner; _2 = &pxTCB_11->xStateListItem; uxListRemove (_2); uxCurrentNumberOfTasks.101_3 ={v} uxCurrentNumberOfTasks; _4 = uxCurrentNumberOfTasks.101_3 + 4294967295; uxCurrentNumberOfTasks ={v} _4; uxDeletedTasksWaitingCleanUp.102_5 ={v} uxDeletedTasksWaitingCleanUp; _6 = uxDeletedTasksWaitingCleanUp.102_5 + 4294967295; uxDeletedTasksWaitingCleanUp ={v} _6; vPortExitCritical (); prvDeleteTCB (pxTCB_11); : uxDeletedTasksWaitingCleanUp.103_7 ={v} uxDeletedTasksWaitingCleanUp; if (uxDeletedTasksWaitingCleanUp.103_7 != 0) goto ; [INV] else goto ; [INV] : return; } ;; Function vTaskGetInfo (vTaskGetInfo, funcdef_no=50, decl_uid=6163, cgraph_uid=51, symbol_order=72) vTaskGetInfo (struct tskTaskControlBlock * xTask, struct TaskStatus_t * pxTaskStatus, BaseType_t xGetFreeStackSpace, eTaskState eState) { struct TCB_t * pxTCB; struct TCB_t * iftmp.104; char * _1; long unsigned int _2; StackType_t * _3; long unsigned int _4; long unsigned int _5; struct TCB_t * pxCurrentTCB.105_6; struct xLIST * _7; _8; StackType_t * _9; short unsigned int _10; struct TCB_t * iftmp.104_11; struct TCB_t * iftmp.104_16; struct TCB_t * iftmp.104_18; : if (xTask_15(D) == 0B) goto ; [INV] else goto ; [INV] : iftmp.104_18 ={v} pxCurrentTCB; goto ; [INV] : iftmp.104_16 = xTask_15(D); : # iftmp.104_11 = PHI pxTCB_19 = iftmp.104_11; pxTaskStatus_20(D)->xHandle = pxTCB_19; _1 = &pxTCB_19->pcTaskName[0]; pxTaskStatus_20(D)->pcTaskName = _1; _2 = pxTCB_19->uxPriority; pxTaskStatus_20(D)->uxCurrentPriority = _2; _3 = pxTCB_19->pxStack; pxTaskStatus_20(D)->pxStackBase = _3; _4 = pxTCB_19->uxTCBNumber; pxTaskStatus_20(D)->xTaskNumber = _4; _5 = pxTCB_19->uxBasePriority; pxTaskStatus_20(D)->uxBasePriority = _5; pxTaskStatus_20(D)->ulRunTimeCounter = 0; if (eState_28(D) != 5) goto ; [INV] else goto ; [INV] : pxCurrentTCB.105_6 ={v} pxCurrentTCB; if (pxTCB_19 == pxCurrentTCB.105_6) goto ; [INV] else goto ; [INV] : pxTaskStatus_20(D)->eCurrentState = 0; goto ; [INV] : pxTaskStatus_20(D)->eCurrentState = eState_28(D); if (eState_28(D) == 3) goto ; [INV] else goto ; [INV] : vTaskSuspendAll (); _7 = pxTCB_19->xEventListItem.pvContainer; if (_7 != 0B) goto ; [INV] else goto ; [INV] : pxTaskStatus_20(D)->eCurrentState = 2; : xTaskResumeAll (); goto ; [INV] : _8 = eTaskGetState (pxTCB_19); pxTaskStatus_20(D)->eCurrentState = _8; : if (xGetFreeStackSpace_36(D) != 0) goto ; [INV] else goto ; [INV] : _9 = pxTCB_19->pxStack; _10 = prvTaskCheckFreeStackSpace (_9); pxTaskStatus_20(D)->usStackHighWaterMark = _10; goto ; [INV] : pxTaskStatus_20(D)->usStackHighWaterMark = 0; : return; } ;; Function prvListTasksWithinSingleList (prvListTasksWithinSingleList, funcdef_no=51, decl_uid=6956, cgraph_uid=52, symbol_order=73) prvListTasksWithinSingleList (struct TaskStatus_t * pxTaskStatusArray, struct List_t * pxList, eTaskState eState) { struct List_t * const pxConstList; struct List_t * const pxConstList; UBaseType_t uxTask; struct TCB_t * pxFirstTCB; struct TCB_t * pxNextTCB; UBaseType_t D.7999; long unsigned int _1; struct ListItem_t * _2; struct xLIST_ITEM * _3; struct ListItem_t * _4; struct MiniListItem_t * _5; struct ListItem_t * _6; struct xLIST_ITEM * _7; struct ListItem_t * _8; struct ListItem_t * _9; struct xLIST_ITEM * _10; struct ListItem_t * _11; struct MiniListItem_t * _12; struct ListItem_t * _13; struct xLIST_ITEM * _14; struct ListItem_t * _15; long unsigned int _16; struct TaskStatus_t * _17; UBaseType_t _39; : uxTask_24 = 0; _1 ={v} pxList_26(D)->uxNumberOfItems; if (_1 != 0) goto ; [INV] else goto ; [INV] : pxConstList_27 = pxList_26(D); _2 = pxConstList_27->pxIndex; _3 = _2->pxNext; pxConstList_27->pxIndex = _3; _4 = pxConstList_27->pxIndex; _5 = &pxConstList_27->xListEnd; if (_4 == _5) goto ; [INV] else goto ; [INV] : _6 = pxConstList_27->pxIndex; _7 = _6->pxNext; pxConstList_27->pxIndex = _7; : _8 = pxConstList_27->pxIndex; pxFirstTCB_30 = _8->pvOwner; : # uxTask_18 = PHI pxConstList_31 = pxList_26(D); _9 = pxConstList_31->pxIndex; _10 = _9->pxNext; pxConstList_31->pxIndex = _10; _11 = pxConstList_31->pxIndex; _12 = &pxConstList_31->xListEnd; if (_11 == _12) goto ; [INV] else goto ; [INV] : _13 = pxConstList_31->pxIndex; _14 = _13->pxNext; pxConstList_31->pxIndex = _14; : _15 = pxConstList_31->pxIndex; pxNextTCB_34 = _15->pvOwner; _16 = uxTask_18 * 36; _17 = pxTaskStatusArray_35(D) + _16; vTaskGetInfo (pxNextTCB_34, _17, 1, eState_36(D)); uxTask_38 = uxTask_18 + 1; if (pxNextTCB_34 != pxFirstTCB_30) goto ; [INV] else goto ; [INV] : # uxTask_19 = PHI _39 = uxTask_19; : : return _39; } ;; Function prvTaskCheckFreeStackSpace (prvTaskCheckFreeStackSpace, funcdef_no=52, decl_uid=6961, cgraph_uid=53, symbol_order=74) prvTaskCheckFreeStackSpace (const uint8_t * pucStackByte) { uint32_t ulCount; uint16_t D.8001; unsigned char _1; uint16_t _8; : ulCount_4 = 0; goto ; [INV] : pucStackByte_9 = pucStackByte_2 + 1; ulCount_10 = ulCount_3 + 1; : # pucStackByte_2 = PHI # ulCount_3 = PHI _1 = *pucStackByte_2; if (_1 == 165) goto ; [INV] else goto ; [INV] : ulCount_7 = ulCount_3 / 4; _8 = (uint16_t) ulCount_7; : : return _8; } ;; Function uxTaskGetStackHighWaterMark (uxTaskGetStackHighWaterMark, funcdef_no=53, decl_uid=6192, cgraph_uid=54, symbol_order=75) uxTaskGetStackHighWaterMark (struct tskTaskControlBlock * xTask) { UBaseType_t uxReturn; uint8_t * pucEndOfStack; struct TCB_t * pxTCB; UBaseType_t D.8007; struct TCB_t * iftmp.106; short unsigned int _1; struct TCB_t * iftmp.106_2; struct TCB_t * iftmp.106_4; struct TCB_t * iftmp.106_6; UBaseType_t _11; : if (xTask_3(D) == 0B) goto ; [INV] else goto ; [INV] : iftmp.106_6 ={v} pxCurrentTCB; goto ; [INV] : iftmp.106_4 = xTask_3(D); : # iftmp.106_2 = PHI pxTCB_7 = iftmp.106_2; pucEndOfStack_8 = pxTCB_7->pxStack; _1 = prvTaskCheckFreeStackSpace (pucEndOfStack_8); uxReturn_10 = (UBaseType_t) _1; _11 = uxReturn_10; : : return _11; } ;; Function prvDeleteTCB (prvDeleteTCB, funcdef_no=54, decl_uid=6947, cgraph_uid=55, symbol_order=76) prvDeleteTCB (struct TCB_t * pxTCB) { StackType_t * _1; : _1 = pxTCB_3(D)->pxStack; vPortFree (_1); vPortFree (pxTCB_3(D)); return; } ;; Function prvResetNextTaskUnblockTime (prvResetNextTaskUnblockTime, funcdef_no=55, decl_uid=6963, cgraph_uid=56, symbol_order=77) prvResetNextTaskUnblockTime () { struct List_t * pxDelayedTaskList.107_1; long unsigned int _2; struct List_t * pxDelayedTaskList.108_3; struct xLIST_ITEM * _4; long unsigned int _5; : pxDelayedTaskList.107_1 ={v} pxDelayedTaskList; _2 ={v} pxDelayedTaskList.107_1->uxNumberOfItems; if (_2 == 0) goto ; [INV] else goto ; [INV] : xNextTaskUnblockTime ={v} 4294967295; goto ; [INV] : pxDelayedTaskList.108_3 ={v} pxDelayedTaskList; _4 = pxDelayedTaskList.108_3->xListEnd.pxNext; _5 = _4->xItemValue; xNextTaskUnblockTime ={v} _5; : return; } ;; Function xTaskGetCurrentTaskHandle (xTaskGetCurrentTaskHandle, funcdef_no=56, decl_uid=6274, cgraph_uid=57, symbol_order=78) xTaskGetCurrentTaskHandle () { struct tskTaskControlBlock * xReturn; struct tskTaskControlBlock * D.8012; struct tskTaskControlBlock * _3; : xReturn_2 ={v} pxCurrentTCB; _3 = xReturn_2; : : return _3; } ;; Function xTaskGetSchedulerState (xTaskGetSchedulerState, funcdef_no=57, decl_uid=6278, cgraph_uid=58, symbol_order=79) xTaskGetSchedulerState () { BaseType_t xReturn; BaseType_t D.8020; long int xSchedulerRunning.109_1; long unsigned int uxSchedulerSuspended.110_2; BaseType_t _8; : xSchedulerRunning.109_1 ={v} xSchedulerRunning; if (xSchedulerRunning.109_1 == 0) goto ; [INV] else goto ; [INV] : xReturn_7 = 1; goto ; [INV] : uxSchedulerSuspended.110_2 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.110_2 == 0) goto ; [INV] else goto ; [INV] : xReturn_6 = 2; goto ; [INV] : xReturn_5 = 0; : # xReturn_3 = PHI _8 = xReturn_3; : : return _8; } ;; Function xTaskPriorityInherit (xTaskPriorityInherit, funcdef_no=58, decl_uid=6280, cgraph_uid=59, symbol_order=80) xTaskPriorityInherit (struct tskTaskControlBlock * const pxMutexHolder) { struct ListItem_t * const pxIndex; BaseType_t xReturn; struct TCB_t * const pxMutexHolderTCB; BaseType_t D.8042; long unsigned int _1; struct TCB_t * pxCurrentTCB.111_2; long unsigned int _3; long unsigned int _4; signed int _5; struct TCB_t * pxCurrentTCB.112_6; long unsigned int _7; long unsigned int _8; struct xLIST * _9; long unsigned int _10; struct List_t * _11; struct ListItem_t * _12; long unsigned int _13; struct TCB_t * pxCurrentTCB.113_14; long unsigned int _15; long unsigned int _16; long unsigned int uxTopReadyPriority.114_17; long unsigned int _18; long unsigned int _19; struct xLIST_ITEM * _20; struct xLIST_ITEM * _21; struct ListItem_t * _22; struct ListItem_t * _23; long unsigned int _24; struct List_t * _25; long unsigned int _26; long unsigned int _27; long unsigned int _28; struct TCB_t * pxCurrentTCB.115_29; long unsigned int _30; long unsigned int _31; struct TCB_t * pxCurrentTCB.116_32; long unsigned int _33; BaseType_t _57; : pxMutexHolderTCB_40 = pxMutexHolder_39(D); xReturn_41 = 0; if (pxMutexHolder_39(D) != 0B) goto ; [INV] else goto ; [INV] : _1 = pxMutexHolderTCB_40->uxPriority; pxCurrentTCB.111_2 ={v} pxCurrentTCB; _3 = pxCurrentTCB.111_2->uxPriority; if (_1 < _3) goto ; [INV] else goto ; [INV] : _4 = pxMutexHolderTCB_40->xEventListItem.xItemValue; _5 = (signed int) _4; if (_5 >= 0) goto ; [INV] else goto ; [INV] : pxCurrentTCB.112_6 ={v} pxCurrentTCB; _7 = pxCurrentTCB.112_6->uxPriority; _8 = 5 - _7; pxMutexHolderTCB_40->xEventListItem.xItemValue = _8; : _9 = pxMutexHolderTCB_40->xStateListItem.pvContainer; _10 = pxMutexHolderTCB_40->uxPriority; _11 = &pxReadyTasksLists[_10]; if (_9 == _11) goto ; [INV] else goto ; [INV] : _12 = &pxMutexHolderTCB_40->xStateListItem; _13 = uxListRemove (_12); : pxCurrentTCB.113_14 ={v} pxCurrentTCB; _15 = pxCurrentTCB.113_14->uxPriority; pxMutexHolderTCB_40->uxPriority = _15; _16 = pxMutexHolderTCB_40->uxPriority; uxTopReadyPriority.114_17 ={v} uxTopReadyPriority; if (_16 > uxTopReadyPriority.114_17) goto ; [INV] else goto ; [INV] : _18 = pxMutexHolderTCB_40->uxPriority; uxTopReadyPriority ={v} _18; : _19 = pxMutexHolderTCB_40->uxPriority; pxIndex_49 = pxReadyTasksLists[_19].pxIndex; pxMutexHolderTCB_40->xStateListItem.pxNext = pxIndex_49; _20 = pxIndex_49->pxPrevious; pxMutexHolderTCB_40->xStateListItem.pxPrevious = _20; _21 = pxIndex_49->pxPrevious; _22 = &pxMutexHolderTCB_40->xStateListItem; _21->pxNext = _22; _23 = &pxMutexHolderTCB_40->xStateListItem; pxIndex_49->pxPrevious = _23; _24 = pxMutexHolderTCB_40->uxPriority; _25 = &pxReadyTasksLists[_24]; pxMutexHolderTCB_40->xStateListItem.pvContainer = _25; _26 = pxMutexHolderTCB_40->uxPriority; _27 ={v} pxReadyTasksLists[_26].uxNumberOfItems; _28 = _27 + 1; pxReadyTasksLists[_26].uxNumberOfItems ={v} _28; goto ; [INV] : pxCurrentTCB.115_29 ={v} pxCurrentTCB; _30 = pxCurrentTCB.115_29->uxPriority; pxMutexHolderTCB_40->uxPriority = _30; : xReturn_56 = 1; goto ; [INV] : _31 = pxMutexHolderTCB_40->uxBasePriority; pxCurrentTCB.116_32 ={v} pxCurrentTCB; _33 = pxCurrentTCB.116_32->uxPriority; if (_31 < _33) goto ; [INV] else goto ; [INV] : xReturn_43 = 1; : # xReturn_34 = PHI _57 = xReturn_34; : : return _57; } ;; Function xTaskPriorityDisinherit (xTaskPriorityDisinherit, funcdef_no=59, decl_uid=6282, cgraph_uid=60, symbol_order=81) xTaskPriorityDisinherit (struct tskTaskControlBlock * const pxMutexHolder) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; BaseType_t xReturn; struct TCB_t * const pxTCB; BaseType_t D.8062; struct TCB_t * pxCurrentTCB.117_1; long unsigned int _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; long unsigned int _6; long unsigned int _7; struct ListItem_t * _8; long unsigned int _9; long unsigned int _10; long unsigned int _11; long unsigned int _12; long unsigned int _13; long unsigned int uxTopReadyPriority.118_14; long unsigned int _15; long unsigned int _16; struct xLIST_ITEM * _17; struct xLIST_ITEM * _18; struct ListItem_t * _19; struct ListItem_t * _20; long unsigned int _21; struct List_t * _22; long unsigned int _23; long unsigned int _24; long unsigned int _25; BaseType_t _46; : pxTCB_30 = pxMutexHolder_29(D); xReturn_31 = 0; if (pxMutexHolder_29(D) != 0B) goto ; [INV] else goto ; [INV] : pxCurrentTCB.117_1 ={v} pxCurrentTCB; if (pxTCB_30 != pxCurrentTCB.117_1) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_47 : "i" 16 : "memory"); : : goto ; [INV] : _2 = pxTCB_30->uxMutexesHeld; if (_2 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_48 : "i" 16 : "memory"); : : goto ; [INV] : _3 = pxTCB_30->uxMutexesHeld; _4 = _3 + 4294967295; pxTCB_30->uxMutexesHeld = _4; _5 = pxTCB_30->uxPriority; _6 = pxTCB_30->uxBasePriority; if (_5 != _6) goto ; [INV] else goto ; [INV] : _7 = pxTCB_30->uxMutexesHeld; if (_7 == 0) goto ; [INV] else goto ; [INV] : _8 = &pxTCB_30->xStateListItem; _9 = uxListRemove (_8); : _10 = pxTCB_30->uxBasePriority; pxTCB_30->uxPriority = _10; _11 = pxTCB_30->uxPriority; _12 = 5 - _11; pxTCB_30->xEventListItem.xItemValue = _12; _13 = pxTCB_30->uxPriority; uxTopReadyPriority.118_14 ={v} uxTopReadyPriority; if (_13 > uxTopReadyPriority.118_14) goto ; [INV] else goto ; [INV] : _15 = pxTCB_30->uxPriority; uxTopReadyPriority ={v} _15; : _16 = pxTCB_30->uxPriority; pxIndex_38 = pxReadyTasksLists[_16].pxIndex; pxTCB_30->xStateListItem.pxNext = pxIndex_38; _17 = pxIndex_38->pxPrevious; pxTCB_30->xStateListItem.pxPrevious = _17; _18 = pxIndex_38->pxPrevious; _19 = &pxTCB_30->xStateListItem; _18->pxNext = _19; _20 = &pxTCB_30->xStateListItem; pxIndex_38->pxPrevious = _20; _21 = pxTCB_30->uxPriority; _22 = &pxReadyTasksLists[_21]; pxTCB_30->xStateListItem.pvContainer = _22; _23 = pxTCB_30->uxPriority; _24 ={v} pxReadyTasksLists[_23].uxNumberOfItems; _25 = _24 + 1; pxReadyTasksLists[_23].uxNumberOfItems ={v} _25; xReturn_45 = 1; : # xReturn_26 = PHI _46 = xReturn_26; : : return _46; } ;; Function vTaskPriorityDisinheritAfterTimeout (vTaskPriorityDisinheritAfterTimeout, funcdef_no=60, decl_uid=6285, cgraph_uid=61, symbol_order=82) vTaskPriorityDisinheritAfterTimeout (struct tskTaskControlBlock * const pxMutexHolder, UBaseType_t uxHighestPriorityWaitingTask) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; const UBaseType_t uxOnlyOneMutexHeld; UBaseType_t uxPriorityToUse; UBaseType_t uxPriorityUsedOnEntry; struct TCB_t * const pxTCB; long unsigned int _1; long unsigned int _2; long unsigned int _3; long unsigned int _4; struct TCB_t * pxCurrentTCB.119_5; long unsigned int _6; signed int _7; long unsigned int _8; struct xLIST * _9; struct List_t * _10; struct ListItem_t * _11; long unsigned int _12; long unsigned int _13; long unsigned int uxTopReadyPriority.120_14; long unsigned int _15; long unsigned int _16; struct xLIST_ITEM * _17; struct xLIST_ITEM * _18; struct ListItem_t * _19; struct ListItem_t * _20; long unsigned int _21; struct List_t * _22; long unsigned int _23; long unsigned int _24; long unsigned int _25; : pxTCB_31 = pxMutexHolder_30(D); uxOnlyOneMutexHeld_32 = 1; if (pxMutexHolder_30(D) != 0B) goto ; [INV] else goto ; [INV] : _1 = pxTCB_31->uxMutexesHeld; if (_1 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_49 : "i" 16 : "memory"); : : goto ; [INV] : _2 = pxTCB_31->uxBasePriority; if (uxHighestPriorityWaitingTask_34(D) > _2) goto ; [INV] else goto ; [INV] : uxPriorityToUse_36 = uxHighestPriorityWaitingTask_34(D); goto ; [INV] : uxPriorityToUse_35 = pxTCB_31->uxBasePriority; : # uxPriorityToUse_26 = PHI _3 = pxTCB_31->uxPriority; if (uxPriorityToUse_26 != _3) goto ; [INV] else goto ; [INV] : _4 = pxTCB_31->uxMutexesHeld; if (uxOnlyOneMutexHeld_32 == _4) goto ; [INV] else goto ; [INV] : pxCurrentTCB.119_5 ={v} pxCurrentTCB; if (pxTCB_31 == pxCurrentTCB.119_5) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_50 : "i" 16 : "memory"); : : goto ; [INV] : uxPriorityUsedOnEntry_37 = pxTCB_31->uxPriority; pxTCB_31->uxPriority = uxPriorityToUse_26; _6 = pxTCB_31->xEventListItem.xItemValue; _7 = (signed int) _6; if (_7 >= 0) goto ; [INV] else goto ; [INV] : _8 = 5 - uxPriorityToUse_26; pxTCB_31->xEventListItem.xItemValue = _8; : _9 = pxTCB_31->xStateListItem.pvContainer; _10 = &pxReadyTasksLists[uxPriorityUsedOnEntry_37]; if (_9 == _10) goto ; [INV] else goto ; [INV] : _11 = &pxTCB_31->xStateListItem; _12 = uxListRemove (_11); : _13 = pxTCB_31->uxPriority; uxTopReadyPriority.120_14 ={v} uxTopReadyPriority; if (_13 > uxTopReadyPriority.120_14) goto ; [INV] else goto ; [INV] : _15 = pxTCB_31->uxPriority; uxTopReadyPriority ={v} _15; : _16 = pxTCB_31->uxPriority; pxIndex_42 = pxReadyTasksLists[_16].pxIndex; pxTCB_31->xStateListItem.pxNext = pxIndex_42; _17 = pxIndex_42->pxPrevious; pxTCB_31->xStateListItem.pxPrevious = _17; _18 = pxIndex_42->pxPrevious; _19 = &pxTCB_31->xStateListItem; _18->pxNext = _19; _20 = &pxTCB_31->xStateListItem; pxIndex_42->pxPrevious = _20; _21 = pxTCB_31->uxPriority; _22 = &pxReadyTasksLists[_21]; pxTCB_31->xStateListItem.pvContainer = _22; _23 = pxTCB_31->uxPriority; _24 ={v} pxReadyTasksLists[_23].uxNumberOfItems; _25 = _24 + 1; pxReadyTasksLists[_23].uxNumberOfItems ={v} _25; : return; } ;; Function prvWriteNameToBuffer (prvWriteNameToBuffer, funcdef_no=61, decl_uid=6966, cgraph_uid=62, symbol_order=83) prvWriteNameToBuffer (char * pcBuffer, const char * pcTaskName) { size_t x; char * D.8091; char * _1; char * _2; char * _11; : strcpy (pcBuffer_6(D), pcTaskName_7(D)); x_9 = strlen (pcBuffer_6(D)); goto ; [INV] : _1 = pcBuffer_6(D) + x_3; *_1 = 32; x_13 = x_3 + 1; : # x_3 = PHI if (x_3 <= 8) goto ; [INV] else goto ; [INV] : _2 = pcBuffer_6(D) + x_3; *_2 = 0; _11 = pcBuffer_6(D) + x_3; : : return _11; } ;; Function vTaskList (vTaskList, funcdef_no=62, decl_uid=6205, cgraph_uid=63, symbol_order=84) vTaskList (char * pcWriteBuffer) { char cStatus; UBaseType_t x; UBaseType_t uxArraySize; struct TaskStatus_t * pxTaskStatusArray; long unsigned int uxCurrentNumberOfTasks.121_1; long unsigned int _2; long unsigned int _3; struct TaskStatus_t * _4; _5; long unsigned int _6; struct TaskStatus_t * _7; const char * _8; int _9; long unsigned int _10; struct TaskStatus_t * _11; long unsigned int _12; long unsigned int _13; struct TaskStatus_t * _14; short unsigned int _15; unsigned int _16; long unsigned int _17; struct TaskStatus_t * _18; long unsigned int _19; unsigned int _20; : *pcWriteBuffer_27(D) = 0; uxArraySize_29 ={v} uxCurrentNumberOfTasks; uxCurrentNumberOfTasks.121_1 ={v} uxCurrentNumberOfTasks; _2 = uxCurrentNumberOfTasks.121_1 * 36; pxTaskStatusArray_31 = pvPortMalloc (_2); if (pxTaskStatusArray_31 != 0B) goto ; [INV] else goto ; [INV] : uxArraySize_33 = uxTaskGetSystemState (pxTaskStatusArray_31, uxArraySize_29, 0B); x_34 = 0; goto ; [INV] : _3 = x_22 * 36; _4 = pxTaskStatusArray_31 + _3; _5 = _4->eCurrentState; switch (_5) [INV], case 0: [INV], case 1: [INV], case 2: [INV], case 3: [INV], case 4: [INV]> : : cStatus_40 = 88; goto ; [INV] : : cStatus_39 = 82; goto ; [INV] : : cStatus_38 = 66; goto ; [INV] : : cStatus_37 = 83; goto ; [INV] : : cStatus_36 = 68; goto ; [INV] : : cStatus_41 = 0; : # cStatus_23 = PHI _6 = x_22 * 36; _7 = pxTaskStatusArray_31 + _6; _8 = _7->pcTaskName; pcWriteBuffer_43 = prvWriteNameToBuffer (pcWriteBuffer_21, _8); _9 = (int) cStatus_23; _10 = x_22 * 36; _11 = pxTaskStatusArray_31 + _10; _12 = _11->uxCurrentPriority; _13 = x_22 * 36; _14 = pxTaskStatusArray_31 + _13; _15 = _14->usStackHighWaterMark; _16 = (unsigned int) _15; _17 = x_22 * 36; _18 = pxTaskStatusArray_31 + _17; _19 = _18->xTaskNumber; sprintf (pcWriteBuffer_43, "\t%c\t%u\t%u\t%u\r\n", _9, _12, _16, _19); _20 = strlen (pcWriteBuffer_43); pcWriteBuffer_45 = pcWriteBuffer_43 + _20; x_46 = x_22 + 1; : # pcWriteBuffer_21 = PHI # x_22 = PHI if (x_22 < uxArraySize_33) goto ; [INV] else goto ; [INV] : vPortFree (pxTaskStatusArray_31); : return; } ;; Function uxTaskResetEventItemValue (uxTaskResetEventItemValue, funcdef_no=63, decl_uid=6272, cgraph_uid=64, symbol_order=85) uxTaskResetEventItemValue () { TickType_t uxReturn; TickType_t D.8096; struct TCB_t * pxCurrentTCB.122_1; struct TCB_t * pxCurrentTCB.123_2; long unsigned int _3; struct TCB_t * pxCurrentTCB.124_4; long unsigned int _5; TickType_t _9; : pxCurrentTCB.122_1 ={v} pxCurrentTCB; uxReturn_7 = pxCurrentTCB.122_1->xEventListItem.xItemValue; pxCurrentTCB.123_2 ={v} pxCurrentTCB; _3 = pxCurrentTCB.123_2->uxPriority; pxCurrentTCB.124_4 ={v} pxCurrentTCB; _5 = 5 - _3; pxCurrentTCB.124_4->xEventListItem.xItemValue = _5; _9 = uxReturn_7; : : return _9; } ;; Function pvTaskIncrementMutexHeldCount (pvTaskIncrementMutexHeldCount, funcdef_no=64, decl_uid=6296, cgraph_uid=65, symbol_order=86) pvTaskIncrementMutexHeldCount () { struct tskTaskControlBlock * D.8100; struct TCB_t * pxCurrentTCB.125_1; struct TCB_t * pxCurrentTCB.126_2; long unsigned int _3; long unsigned int _4; struct tskTaskControlBlock * _8; : pxCurrentTCB.125_1 ={v} pxCurrentTCB; if (pxCurrentTCB.125_1 != 0B) goto ; [INV] else goto ; [INV] : pxCurrentTCB.126_2 ={v} pxCurrentTCB; _3 = pxCurrentTCB.126_2->uxMutexesHeld; _4 = _3 + 1; pxCurrentTCB.126_2->uxMutexesHeld = _4; : _8 ={v} pxCurrentTCB; : : return _8; } ;; Function ulTaskGenericNotifyTake (ulTaskGenericNotifyTake, funcdef_no=65, decl_uid=6236, cgraph_uid=66, symbol_order=87) ulTaskGenericNotifyTake (UBaseType_t uxIndexToWait, BaseType_t xClearCountOnExit, TickType_t xTicksToWait) { uint32_t ulNewBASEPRI; uint32_t ulReturn; uint32_t D.8116; struct TCB_t * pxCurrentTCB.127_1; long unsigned int _2; struct TCB_t * pxCurrentTCB.128_3; volatile uint32_t * _4; struct TCB_t * pxCurrentTCB.129_5; struct TCB_t * pxCurrentTCB.130_6; struct TCB_t * pxCurrentTCB.131_7; long unsigned int _8; struct TCB_t * pxCurrentTCB.132_9; uint32_t _29; : if (uxIndexToWait_12(D) != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_30 : "i" 16 : "memory"); : : goto ; [INV] : vPortEnterCritical (); pxCurrentTCB.127_1 ={v} pxCurrentTCB; _2 ={v} pxCurrentTCB.127_1->ulNotifiedValue[uxIndexToWait_12(D)]; if (_2 == 0) goto ; [INV] else goto ; [INV] : pxCurrentTCB.128_3 ={v} pxCurrentTCB; pxCurrentTCB.128_3->ucNotifyState[uxIndexToWait_12(D)] ={v} 1; if (xTicksToWait_16(D) != 0) goto ; [INV] else goto ; [INV] : prvAddCurrentTaskToDelayedList (xTicksToWait_16(D), 1); _4 = 3758157060B; *_4 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : vPortExitCritical (); vPortEnterCritical (); pxCurrentTCB.129_5 ={v} pxCurrentTCB; ulReturn_23 ={v} pxCurrentTCB.129_5->ulNotifiedValue[uxIndexToWait_12(D)]; if (ulReturn_23 != 0) goto ; [INV] else goto ; [INV] : if (xClearCountOnExit_24(D) != 0) goto ; [INV] else goto ; [INV] : pxCurrentTCB.130_6 ={v} pxCurrentTCB; pxCurrentTCB.130_6->ulNotifiedValue[uxIndexToWait_12(D)] ={v} 0; goto ; [INV] : pxCurrentTCB.131_7 ={v} pxCurrentTCB; _8 = ulReturn_23 + 4294967295; pxCurrentTCB.131_7->ulNotifiedValue[uxIndexToWait_12(D)] ={v} _8; : pxCurrentTCB.132_9 ={v} pxCurrentTCB; pxCurrentTCB.132_9->ucNotifyState[uxIndexToWait_12(D)] ={v} 0; vPortExitCritical (); _29 = ulReturn_23; : : return _29; } ;; Function xTaskGenericNotifyWait (xTaskGenericNotifyWait, funcdef_no=66, decl_uid=6228, cgraph_uid=67, symbol_order=88) xTaskGenericNotifyWait (UBaseType_t uxIndexToWait, uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t * pulNotificationValue, TickType_t xTicksToWait) { uint32_t ulNewBASEPRI; BaseType_t xReturn; BaseType_t D.8133; struct TCB_t * pxCurrentTCB.138; struct TCB_t * pxCurrentTCB.134; struct TCB_t * pxCurrentTCB.133_1; unsigned char _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; struct TCB_t * pxCurrentTCB.135_6; volatile uint32_t * _7; struct TCB_t * pxCurrentTCB.136_8; long unsigned int _9; struct TCB_t * pxCurrentTCB.137_10; unsigned char _11; long unsigned int _12; long unsigned int _13; long unsigned int _14; struct TCB_t * pxCurrentTCB.139_15; struct TCB_t * pxCurrentTCB.134_23; struct TCB_t * pxCurrentTCB.138_36; BaseType_t _43; : if (uxIndexToWait_20(D) != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_44 : "i" 16 : "memory"); : : goto ; [INV] : vPortEnterCritical (); pxCurrentTCB.133_1 ={v} pxCurrentTCB; _2 ={v} pxCurrentTCB.133_1->ucNotifyState[uxIndexToWait_20(D)]; if (_2 != 2) goto ; [INV] else goto ; [INV] : pxCurrentTCB.134_23 ={v} pxCurrentTCB; _3 ={v} pxCurrentTCB.134_23->ulNotifiedValue[uxIndexToWait_20(D)]; _4 = ~ulBitsToClearOnEntry_24(D); _5 = _3 & _4; pxCurrentTCB.134_23->ulNotifiedValue[uxIndexToWait_20(D)] ={v} _5; pxCurrentTCB.135_6 ={v} pxCurrentTCB; pxCurrentTCB.135_6->ucNotifyState[uxIndexToWait_20(D)] ={v} 1; if (xTicksToWait_27(D) != 0) goto ; [INV] else goto ; [INV] : prvAddCurrentTaskToDelayedList (xTicksToWait_27(D), 1); _7 = 3758157060B; *_7 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : vPortExitCritical (); vPortEnterCritical (); if (pulNotificationValue_34(D) != 0B) goto ; [INV] else goto ; [INV] : pxCurrentTCB.136_8 ={v} pxCurrentTCB; _9 ={v} pxCurrentTCB.136_8->ulNotifiedValue[uxIndexToWait_20(D)]; *pulNotificationValue_34(D) = _9; : pxCurrentTCB.137_10 ={v} pxCurrentTCB; _11 ={v} pxCurrentTCB.137_10->ucNotifyState[uxIndexToWait_20(D)]; if (_11 != 2) goto ; [INV] else goto ; [INV] : xReturn_40 = 0; goto ; [INV] : pxCurrentTCB.138_36 ={v} pxCurrentTCB; _12 ={v} pxCurrentTCB.138_36->ulNotifiedValue[uxIndexToWait_20(D)]; _13 = ~ulBitsToClearOnExit_37(D); _14 = _12 & _13; pxCurrentTCB.138_36->ulNotifiedValue[uxIndexToWait_20(D)] ={v} _14; xReturn_39 = 1; : # xReturn_16 = PHI pxCurrentTCB.139_15 ={v} pxCurrentTCB; pxCurrentTCB.139_15->ucNotifyState[uxIndexToWait_20(D)] ={v} 0; vPortExitCritical (); _43 = xReturn_16; : : return _43; } ;; Function xTaskGenericNotify (xTaskGenericNotify, funcdef_no=67, decl_uid=6215, cgraph_uid=68, symbol_order=89) xTaskGenericNotify (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t * pulPreviousNotificationValue) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; struct List_t * const pxList; uint8_t ucOriginalNotifyState; BaseType_t xReturn; struct TCB_t * pxTCB; BaseType_t D.8158; long unsigned int _1; long unsigned int _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; long unsigned int xTickCount.140_6; struct xLIST_ITEM * _7; struct xLIST_ITEM * _8; struct xLIST_ITEM * _9; struct xLIST_ITEM * _10; struct ListItem_t * _11; struct ListItem_t * _12; struct xLIST_ITEM * _13; long unsigned int _14; long unsigned int _15; long unsigned int _16; long unsigned int uxTopReadyPriority.141_17; long unsigned int _18; long unsigned int _19; struct xLIST_ITEM * _20; struct xLIST_ITEM * _21; struct ListItem_t * _22; struct ListItem_t * _23; long unsigned int _24; struct List_t * _25; long unsigned int _26; long unsigned int _27; long unsigned int _28; struct xLIST * _29; long unsigned int _30; struct TCB_t * pxCurrentTCB.142_31; long unsigned int _32; volatile uint32_t * _33; BaseType_t _77; : xReturn_42 = 1; if (uxIndexToNotify_43(D) != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_78 : "i" 16 : "memory"); : : goto ; [INV] : if (xTaskToNotify_44(D) == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_79 : "i" 16 : "memory"); : : goto ; [INV] : pxTCB_45 = xTaskToNotify_44(D); vPortEnterCritical (); if (pulPreviousNotificationValue_48(D) != 0B) goto ; [INV] else goto ; [INV] : _1 ={v} pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)]; *pulPreviousNotificationValue_48(D) = _1; : ucOriginalNotifyState_50 ={v} pxTCB_45->ucNotifyState[uxIndexToNotify_43(D)]; pxTCB_45->ucNotifyState[uxIndexToNotify_43(D)] ={v} 2; switch (eAction_52(D)) [INV], case 0: [INV], case 1: [INV], case 2: [INV], case 3: [INV], case 4: [INV]> : : _2 ={v} pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)]; _3 = ulValue_54(D) | _2; pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)] ={v} _3; goto ; [INV] : : _4 ={v} pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)]; _5 = _4 + 1; pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)] ={v} _5; goto ; [INV] : : pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)] ={v} ulValue_54(D); goto ; [INV] : : if (ucOriginalNotifyState_50 != 2) goto ; [INV] else goto ; [INV] : pxTCB_45->ulNotifiedValue[uxIndexToNotify_43(D)] ={v} ulValue_54(D); goto ; [INV] : xReturn_53 = 0; : # xReturn_34 = PHI goto ; [INV] : : goto ; [INV] : : xTickCount.140_6 ={v} xTickCount; if (xTickCount.140_6 != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_80 : "i" 16 : "memory"); : : goto ; [INV] : : # xReturn_35 = PHI if (ucOriginalNotifyState_50 == 1) goto ; [INV] else goto ; [INV] : pxList_59 = pxTCB_45->xStateListItem.pvContainer; _7 = pxTCB_45->xStateListItem.pxNext; _8 = pxTCB_45->xStateListItem.pxPrevious; _7->pxPrevious = _8; _9 = pxTCB_45->xStateListItem.pxPrevious; _10 = pxTCB_45->xStateListItem.pxNext; _9->pxNext = _10; _11 = pxList_59->pxIndex; _12 = &pxTCB_45->xStateListItem; if (_11 == _12) goto ; [INV] else goto ; [INV] : _13 = pxTCB_45->xStateListItem.pxPrevious; pxList_59->pxIndex = _13; : pxTCB_45->xStateListItem.pvContainer = 0B; _14 ={v} pxList_59->uxNumberOfItems; _15 = _14 + 4294967295; pxList_59->uxNumberOfItems ={v} _15; _16 = pxTCB_45->uxPriority; uxTopReadyPriority.141_17 ={v} uxTopReadyPriority; if (_16 > uxTopReadyPriority.141_17) goto ; [INV] else goto ; [INV] : _18 = pxTCB_45->uxPriority; uxTopReadyPriority ={v} _18; : _19 = pxTCB_45->uxPriority; pxIndex_66 = pxReadyTasksLists[_19].pxIndex; pxTCB_45->xStateListItem.pxNext = pxIndex_66; _20 = pxIndex_66->pxPrevious; pxTCB_45->xStateListItem.pxPrevious = _20; _21 = pxIndex_66->pxPrevious; _22 = &pxTCB_45->xStateListItem; _21->pxNext = _22; _23 = &pxTCB_45->xStateListItem; pxIndex_66->pxPrevious = _23; _24 = pxTCB_45->uxPriority; _25 = &pxReadyTasksLists[_24]; pxTCB_45->xStateListItem.pvContainer = _25; _26 = pxTCB_45->uxPriority; _27 ={v} pxReadyTasksLists[_26].uxNumberOfItems; _28 = _27 + 1; pxReadyTasksLists[_26].uxNumberOfItems ={v} _28; _29 = pxTCB_45->xEventListItem.pvContainer; if (_29 != 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_81 : "i" 16 : "memory"); : : goto ; [INV] : _30 = pxTCB_45->uxPriority; pxCurrentTCB.142_31 ={v} pxCurrentTCB; _32 = pxCurrentTCB.142_31->uxPriority; if (_30 > _32) goto ; [INV] else goto ; [INV] : _33 = 3758157060B; *_33 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : vPortExitCritical (); _77 = xReturn_35; : : return _77; } ;; Function xTaskGenericNotifyFromISR (xTaskGenericNotifyFromISR, funcdef_no=68, decl_uid=6222, cgraph_uid=69, symbol_order=90) xTaskGenericNotifyFromISR (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t * pulPreviousNotificationValue, BaseType_t * pxHigherPriorityTaskWoken) { uint32_t ulNewMaskValue; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t D.8358; uint32_t ulOriginalBASEPRI; uint32_t ulNewBASEPRI; uint32_t D.8357; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; struct ListItem_t * const pxIndex; struct List_t * const pxList; UBaseType_t uxSavedInterruptStatus; BaseType_t xReturn; uint8_t ucOriginalNotifyState; struct TCB_t * pxTCB; BaseType_t D.8187; long unsigned int _1; long unsigned int _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; long unsigned int xTickCount.143_6; struct xLIST * _7; long unsigned int uxSchedulerSuspended.144_8; struct xLIST_ITEM * _9; struct xLIST_ITEM * _10; struct xLIST_ITEM * _11; struct xLIST_ITEM * _12; struct ListItem_t * _13; struct ListItem_t * _14; struct xLIST_ITEM * _15; long unsigned int _16; long unsigned int _17; long unsigned int _18; long unsigned int uxTopReadyPriority.145_19; long unsigned int _20; long unsigned int _21; struct xLIST_ITEM * _22; struct xLIST_ITEM * _23; struct ListItem_t * _24; struct ListItem_t * _25; long unsigned int _26; struct List_t * _27; long unsigned int _28; long unsigned int _29; long unsigned int _30; struct xLIST_ITEM * _31; struct xLIST_ITEM * _32; struct ListItem_t * _33; struct ListItem_t * _34; long unsigned int _35; long unsigned int _36; long unsigned int _37; struct TCB_t * pxCurrentTCB.146_38; long unsigned int _39; BaseType_t _92; long unsigned int _97; : xReturn_50 = 1; if (xTaskToNotify_51(D) == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_93 : "i" 16 : "memory"); : : goto ; [INV] : if (uxIndexToNotify_52(D) != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_94 : "i" 16 : "memory"); : : goto ; [INV] : vPortValidateInterruptPriority (); pxTCB_55 = xTaskToNotify_51(D); __asm__ __volatile__(" mrs %0, basepri mov %1, %2 msr basepri, %1 isb dsb " : "=r" ulOriginalBASEPRI_95, "=r" ulNewBASEPRI_96 : "i" 16 : "memory"); _97 = ulOriginalBASEPRI_95; : : _102 = _97; : uxSavedInterruptStatus_56 = _102; if (pulPreviousNotificationValue_57(D) != 0B) goto ; [INV] else goto ; [INV] : _1 ={v} pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)]; *pulPreviousNotificationValue_57(D) = _1; : ucOriginalNotifyState_59 ={v} pxTCB_55->ucNotifyState[uxIndexToNotify_52(D)]; pxTCB_55->ucNotifyState[uxIndexToNotify_52(D)] ={v} 2; switch (eAction_61(D)) [INV], case 0: [INV], case 1: [INV], case 2: [INV], case 3: [INV], case 4: [INV]> : : _2 ={v} pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)]; _3 = ulValue_63(D) | _2; pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)] ={v} _3; goto ; [INV] : : _4 ={v} pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)]; _5 = _4 + 1; pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)] ={v} _5; goto ; [INV] : : pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)] ={v} ulValue_63(D); goto ; [INV] : : if (ucOriginalNotifyState_59 != 2) goto ; [INV] else goto ; [INV] : pxTCB_55->ulNotifiedValue[uxIndexToNotify_52(D)] ={v} ulValue_63(D); goto ; [INV] : xReturn_62 = 0; : # xReturn_40 = PHI goto ; [INV] : : goto ; [INV] : : xTickCount.143_6 ={v} xTickCount; if (xTickCount.143_6 != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_98 : "i" 16 : "memory"); : : goto ; [INV] : : # xReturn_41 = PHI if (ucOriginalNotifyState_59 == 1) goto ; [INV] else goto ; [INV] : _7 = pxTCB_55->xEventListItem.pvContainer; if (_7 != 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_99 : "i" 16 : "memory"); : : goto ; [INV] : uxSchedulerSuspended.144_8 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.144_8 == 0) goto ; [INV] else goto ; [INV] : pxList_75 = pxTCB_55->xStateListItem.pvContainer; _9 = pxTCB_55->xStateListItem.pxNext; _10 = pxTCB_55->xStateListItem.pxPrevious; _9->pxPrevious = _10; _11 = pxTCB_55->xStateListItem.pxPrevious; _12 = pxTCB_55->xStateListItem.pxNext; _11->pxNext = _12; _13 = pxList_75->pxIndex; _14 = &pxTCB_55->xStateListItem; if (_13 == _14) goto ; [INV] else goto ; [INV] : _15 = pxTCB_55->xStateListItem.pxPrevious; pxList_75->pxIndex = _15; : pxTCB_55->xStateListItem.pvContainer = 0B; _16 ={v} pxList_75->uxNumberOfItems; _17 = _16 + 4294967295; pxList_75->uxNumberOfItems ={v} _17; _18 = pxTCB_55->uxPriority; uxTopReadyPriority.145_19 ={v} uxTopReadyPriority; if (_18 > uxTopReadyPriority.145_19) goto ; [INV] else goto ; [INV] : _20 = pxTCB_55->uxPriority; uxTopReadyPriority ={v} _20; : _21 = pxTCB_55->uxPriority; pxIndex_82 = pxReadyTasksLists[_21].pxIndex; pxTCB_55->xStateListItem.pxNext = pxIndex_82; _22 = pxIndex_82->pxPrevious; pxTCB_55->xStateListItem.pxPrevious = _22; _23 = pxIndex_82->pxPrevious; _24 = &pxTCB_55->xStateListItem; _23->pxNext = _24; _25 = &pxTCB_55->xStateListItem; pxIndex_82->pxPrevious = _25; _26 = pxTCB_55->uxPriority; _27 = &pxReadyTasksLists[_26]; pxTCB_55->xStateListItem.pvContainer = _27; _28 = pxTCB_55->uxPriority; _29 ={v} pxReadyTasksLists[_28].uxNumberOfItems; _30 = _29 + 1; pxReadyTasksLists[_28].uxNumberOfItems ={v} _30; goto ; [INV] : pxIndex_68 = xPendingReadyList.pxIndex; pxTCB_55->xEventListItem.pxNext = pxIndex_68; _31 = pxIndex_68->pxPrevious; pxTCB_55->xEventListItem.pxPrevious = _31; _32 = pxIndex_68->pxPrevious; _33 = &pxTCB_55->xEventListItem; _32->pxNext = _33; _34 = &pxTCB_55->xEventListItem; pxIndex_68->pxPrevious = _34; pxTCB_55->xEventListItem.pvContainer = &xPendingReadyList; _35 ={v} xPendingReadyList.uxNumberOfItems; _36 = _35 + 1; xPendingReadyList.uxNumberOfItems ={v} _36; : _37 = pxTCB_55->uxPriority; pxCurrentTCB.146_38 ={v} pxCurrentTCB; _39 = pxCurrentTCB.146_38->uxPriority; if (_37 > _39) goto ; [INV] else goto ; [INV] : if (pxHigherPriorityTaskWoken_89(D) != 0B) goto ; [INV] else goto ; [INV] : *pxHigherPriorityTaskWoken_89(D) = 1; : xYieldPending ={v} 1; : ulNewMaskValue_100 = uxSavedInterruptStatus_56; __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue_100 : "memory"); : _92 = xReturn_41; : : return _92; } ;; Function vTaskGenericNotifyGiveFromISR (vTaskGenericNotifyGiveFromISR, funcdef_no=69, decl_uid=6232, cgraph_uid=70, symbol_order=91) vTaskGenericNotifyGiveFromISR (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, BaseType_t * pxHigherPriorityTaskWoken) { uint32_t ulNewMaskValue; uint32_t ulNewBASEPRI; uint32_t D.8368; uint32_t ulOriginalBASEPRI; uint32_t ulNewBASEPRI; uint32_t D.8367; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; struct ListItem_t * const pxIndex; struct List_t * const pxList; UBaseType_t uxSavedInterruptStatus; uint8_t ucOriginalNotifyState; struct TCB_t * pxTCB; long unsigned int _1; long unsigned int _2; struct xLIST * _3; long unsigned int uxSchedulerSuspended.147_4; struct xLIST_ITEM * _5; struct xLIST_ITEM * _6; struct xLIST_ITEM * _7; struct xLIST_ITEM * _8; struct ListItem_t * _9; struct ListItem_t * _10; struct xLIST_ITEM * _11; long unsigned int _12; long unsigned int _13; long unsigned int _14; long unsigned int uxTopReadyPriority.148_15; long unsigned int _16; long unsigned int _17; struct xLIST_ITEM * _18; struct xLIST_ITEM * _19; struct ListItem_t * _20; struct ListItem_t * _21; long unsigned int _22; struct List_t * _23; long unsigned int _24; long unsigned int _25; long unsigned int _26; struct xLIST_ITEM * _27; struct xLIST_ITEM * _28; struct ListItem_t * _29; struct ListItem_t * _30; long unsigned int _31; long unsigned int _32; long unsigned int _33; struct TCB_t * pxCurrentTCB.149_34; long unsigned int _35; long unsigned int _78; : if (xTaskToNotify_41(D) == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_74 : "i" 16 : "memory"); : : goto ; [INV] : if (uxIndexToNotify_42(D) != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_75 : "i" 16 : "memory"); : : goto ; [INV] : vPortValidateInterruptPriority (); pxTCB_45 = xTaskToNotify_41(D); __asm__ __volatile__(" mrs %0, basepri mov %1, %2 msr basepri, %1 isb dsb " : "=r" ulOriginalBASEPRI_76, "=r" ulNewBASEPRI_77 : "i" 16 : "memory"); _78 = ulOriginalBASEPRI_76; : : _82 = _78; : uxSavedInterruptStatus_46 = _82; ucOriginalNotifyState_47 ={v} pxTCB_45->ucNotifyState[uxIndexToNotify_42(D)]; pxTCB_45->ucNotifyState[uxIndexToNotify_42(D)] ={v} 2; _1 ={v} pxTCB_45->ulNotifiedValue[uxIndexToNotify_42(D)]; _2 = _1 + 1; pxTCB_45->ulNotifiedValue[uxIndexToNotify_42(D)] ={v} _2; if (ucOriginalNotifyState_47 == 1) goto ; [INV] else goto ; [INV] : _3 = pxTCB_45->xEventListItem.pvContainer; if (_3 != 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_79 : "i" 16 : "memory"); : : goto ; [INV] : uxSchedulerSuspended.147_4 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.147_4 == 0) goto ; [INV] else goto ; [INV] : pxList_57 = pxTCB_45->xStateListItem.pvContainer; _5 = pxTCB_45->xStateListItem.pxNext; _6 = pxTCB_45->xStateListItem.pxPrevious; _5->pxPrevious = _6; _7 = pxTCB_45->xStateListItem.pxPrevious; _8 = pxTCB_45->xStateListItem.pxNext; _7->pxNext = _8; _9 = pxList_57->pxIndex; _10 = &pxTCB_45->xStateListItem; if (_9 == _10) goto ; [INV] else goto ; [INV] : _11 = pxTCB_45->xStateListItem.pxPrevious; pxList_57->pxIndex = _11; : pxTCB_45->xStateListItem.pvContainer = 0B; _12 ={v} pxList_57->uxNumberOfItems; _13 = _12 + 4294967295; pxList_57->uxNumberOfItems ={v} _13; _14 = pxTCB_45->uxPriority; uxTopReadyPriority.148_15 ={v} uxTopReadyPriority; if (_14 > uxTopReadyPriority.148_15) goto ; [INV] else goto ; [INV] : _16 = pxTCB_45->uxPriority; uxTopReadyPriority ={v} _16; : _17 = pxTCB_45->uxPriority; pxIndex_64 = pxReadyTasksLists[_17].pxIndex; pxTCB_45->xStateListItem.pxNext = pxIndex_64; _18 = pxIndex_64->pxPrevious; pxTCB_45->xStateListItem.pxPrevious = _18; _19 = pxIndex_64->pxPrevious; _20 = &pxTCB_45->xStateListItem; _19->pxNext = _20; _21 = &pxTCB_45->xStateListItem; pxIndex_64->pxPrevious = _21; _22 = pxTCB_45->uxPriority; _23 = &pxReadyTasksLists[_22]; pxTCB_45->xStateListItem.pvContainer = _23; _24 = pxTCB_45->uxPriority; _25 ={v} pxReadyTasksLists[_24].uxNumberOfItems; _26 = _25 + 1; pxReadyTasksLists[_24].uxNumberOfItems ={v} _26; goto ; [INV] : pxIndex_50 = xPendingReadyList.pxIndex; pxTCB_45->xEventListItem.pxNext = pxIndex_50; _27 = pxIndex_50->pxPrevious; pxTCB_45->xEventListItem.pxPrevious = _27; _28 = pxIndex_50->pxPrevious; _29 = &pxTCB_45->xEventListItem; _28->pxNext = _29; _30 = &pxTCB_45->xEventListItem; pxIndex_50->pxPrevious = _30; pxTCB_45->xEventListItem.pvContainer = &xPendingReadyList; _31 ={v} xPendingReadyList.uxNumberOfItems; _32 = _31 + 1; xPendingReadyList.uxNumberOfItems ={v} _32; : _33 = pxTCB_45->uxPriority; pxCurrentTCB.149_34 ={v} pxCurrentTCB; _35 = pxCurrentTCB.149_34->uxPriority; if (_33 > _35) goto ; [INV] else goto ; [INV] : if (pxHigherPriorityTaskWoken_71(D) != 0B) goto ; [INV] else goto ; [INV] : *pxHigherPriorityTaskWoken_71(D) = 1; : xYieldPending ={v} 1; : ulNewMaskValue_80 = uxSavedInterruptStatus_46; __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue_80 : "memory"); : return; } ;; Function xTaskGenericNotifyStateClear (xTaskGenericNotifyStateClear, funcdef_no=70, decl_uid=6239, cgraph_uid=71, symbol_order=92) xTaskGenericNotifyStateClear (struct tskTaskControlBlock * xTask, UBaseType_t uxIndexToClear) { uint32_t ulNewBASEPRI; BaseType_t xReturn; struct TCB_t * pxTCB; BaseType_t D.8218; struct TCB_t * iftmp.150; unsigned char _1; struct TCB_t * iftmp.150_3; struct TCB_t * iftmp.150_7; struct TCB_t * iftmp.150_9; BaseType_t _16; : if (uxIndexToClear_5(D) != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_17 : "i" 16 : "memory"); : : goto ; [INV] : if (xTask_6(D) == 0B) goto ; [INV] else goto ; [INV] : iftmp.150_9 ={v} pxCurrentTCB; goto ; [INV] : iftmp.150_7 = xTask_6(D); : # iftmp.150_3 = PHI pxTCB_10 = iftmp.150_3; vPortEnterCritical (); _1 ={v} pxTCB_10->ucNotifyState[uxIndexToClear_5(D)]; if (_1 == 2) goto ; [INV] else goto ; [INV] : pxTCB_10->ucNotifyState[uxIndexToClear_5(D)] ={v} 0; xReturn_14 = 1; goto ; [INV] : xReturn_12 = 0; : # xReturn_2 = PHI vPortExitCritical (); _16 = xReturn_2; : : return _16; } ;; Function ulTaskGenericNotifyValueClear (ulTaskGenericNotifyValueClear, funcdef_no=71, decl_uid=6243, cgraph_uid=72, symbol_order=93) ulTaskGenericNotifyValueClear (struct tskTaskControlBlock * xTask, UBaseType_t uxIndexToClear, uint32_t ulBitsToClear) { uint32_t ulReturn; struct TCB_t * pxTCB; uint32_t D.8224; struct TCB_t * iftmp.151; long unsigned int _1; long unsigned int _2; long unsigned int _3; struct TCB_t * iftmp.151_4; struct TCB_t * iftmp.151_6; struct TCB_t * iftmp.151_8; uint32_t _16; : if (xTask_5(D) == 0B) goto ; [INV] else goto ; [INV] : iftmp.151_8 ={v} pxCurrentTCB; goto ; [INV] : iftmp.151_6 = xTask_5(D); : # iftmp.151_4 = PHI pxTCB_9 = iftmp.151_4; vPortEnterCritical (); ulReturn_12 ={v} pxTCB_9->ulNotifiedValue[uxIndexToClear_11(D)]; _1 ={v} pxTCB_9->ulNotifiedValue[uxIndexToClear_11(D)]; _2 = ~ulBitsToClear_13(D); _3 = _1 & _2; pxTCB_9->ulNotifiedValue[uxIndexToClear_11(D)] ={v} _3; vPortExitCritical (); _16 = ulReturn_12; : : return _16; } ;; Function prvAddCurrentTaskToDelayedList (prvAddCurrentTaskToDelayedList, funcdef_no=72, decl_uid=6952, cgraph_uid=73, symbol_order=94) prvAddCurrentTaskToDelayedList (TickType_t xTicksToWait, const BaseType_t xCanBlockIndefinitely) { struct ListItem_t * const pxIndex; const TickType_t xConstTickCount; TickType_t xTimeToWake; struct TCB_t * pxCurrentTCB.152_1; struct TCB_t * pxCurrentTCB.153_2; struct ListItem_t * _3; long unsigned int _4; struct TCB_t * pxCurrentTCB.154_5; struct TCB_t * pxCurrentTCB.155_6; struct xLIST_ITEM * _7; struct TCB_t * pxCurrentTCB.156_8; struct xLIST_ITEM * _9; struct ListItem_t * _10; struct TCB_t * pxCurrentTCB.157_11; struct ListItem_t * _12; struct TCB_t * pxCurrentTCB.158_13; long unsigned int _14; long unsigned int _15; struct TCB_t * pxCurrentTCB.159_16; struct List_t * pxOverflowDelayedTaskList.160_17; struct TCB_t * pxCurrentTCB.161_18; struct ListItem_t * _19; struct List_t * pxDelayedTaskList.162_20; struct TCB_t * pxCurrentTCB.163_21; struct ListItem_t * _22; long unsigned int xNextTaskUnblockTime.164_23; : xConstTickCount_26 ={v} xTickCount; pxCurrentTCB.152_1 ={v} pxCurrentTCB; pxCurrentTCB.152_1->ucDelayAborted = 0; pxCurrentTCB.153_2 ={v} pxCurrentTCB; _3 = &pxCurrentTCB.153_2->xStateListItem; _4 = uxListRemove (_3); : if (xTicksToWait_29(D) == 4294967295) goto ; [INV] else goto ; [INV] : if (xCanBlockIndefinitely_30(D) != 0) goto ; [INV] else goto ; [INV] : pxIndex_31 = xSuspendedTaskList.pxIndex; pxCurrentTCB.154_5 ={v} pxCurrentTCB; pxCurrentTCB.154_5->xStateListItem.pxNext = pxIndex_31; pxCurrentTCB.155_6 ={v} pxCurrentTCB; _7 = pxIndex_31->pxPrevious; pxCurrentTCB.155_6->xStateListItem.pxPrevious = _7; pxCurrentTCB.156_8 ={v} pxCurrentTCB; _9 = pxIndex_31->pxPrevious; _10 = &pxCurrentTCB.156_8->xStateListItem; _9->pxNext = _10; pxCurrentTCB.157_11 ={v} pxCurrentTCB; _12 = &pxCurrentTCB.157_11->xStateListItem; pxIndex_31->pxPrevious = _12; pxCurrentTCB.158_13 ={v} pxCurrentTCB; pxCurrentTCB.158_13->xStateListItem.pvContainer = &xSuspendedTaskList; _14 ={v} xSuspendedTaskList.uxNumberOfItems; _15 = _14 + 1; xSuspendedTaskList.uxNumberOfItems ={v} _15; goto ; [INV] : xTimeToWake_38 = xConstTickCount_26 + xTicksToWait_29(D); pxCurrentTCB.159_16 ={v} pxCurrentTCB; pxCurrentTCB.159_16->xStateListItem.xItemValue = xTimeToWake_38; if (xTimeToWake_38 < xConstTickCount_26) goto ; [INV] else goto ; [INV] : pxOverflowDelayedTaskList.160_17 ={v} pxOverflowDelayedTaskList; pxCurrentTCB.161_18 ={v} pxCurrentTCB; _19 = &pxCurrentTCB.161_18->xStateListItem; vListInsert (pxOverflowDelayedTaskList.160_17, _19); goto ; [INV] : pxDelayedTaskList.162_20 ={v} pxDelayedTaskList; pxCurrentTCB.163_21 ={v} pxCurrentTCB; _22 = &pxCurrentTCB.163_21->xStateListItem; vListInsert (pxDelayedTaskList.162_20, _22); xNextTaskUnblockTime.164_23 ={v} xNextTaskUnblockTime; if (xTimeToWake_38 < xNextTaskUnblockTime.164_23) goto ; [INV] else goto ; [INV] : xNextTaskUnblockTime ={v} xTimeToWake_38; : return; }