Marking local functions: vPortSetBASEPRI ulPortRaiseBASEPRI vPortRaiseBASEPRI Marking externally visible functions: ulTaskGenericNotifyValueClear xTaskGenericNotifyStateClear vTaskGenericNotifyGiveFromISR xTaskGenericNotifyFromISR xTaskGenericNotify xTaskGenericNotifyWait ulTaskGenericNotifyTake pvTaskIncrementMutexHeldCount uxTaskResetEventItemValue vTaskList vTaskPriorityDisinheritAfterTimeout xTaskPriorityDisinherit xTaskPriorityInherit xTaskGetSchedulerState xTaskGetCurrentTaskHandle uxTaskGetStackHighWaterMark vTaskGetInfo vTaskSetTaskNumber uxTaskGetTaskNumber vTaskMissedYield xTaskCheckForTimeOut vTaskInternalSetTimeOutState vTaskSetTimeOutState vTaskRemoveFromUnorderedEventList xTaskRemoveFromEventList vTaskPlaceOnEventListRestricted vTaskPlaceOnUnorderedEventList vTaskPlaceOnEventList vTaskSwitchContext xTaskIncrementTick xTaskAbortDelay xTaskCatchUpTicks uxTaskGetSystemState xTaskGetHandle pcTaskGetName uxTaskGetNumberOfTasks xTaskGetTickCountFromISR xTaskGetTickCount xTaskResumeAll vTaskSuspendAll vTaskEndScheduler vTaskStartScheduler xTaskResumeFromISR vTaskResume vTaskSuspend vTaskPrioritySet uxTaskPriorityGetFromISR uxTaskPriorityGet eTaskGetState vTaskDelay xTaskDelayUntil vTaskDelete xTaskCreate Marking externally visible variables: uxTopUsedPriority pxCurrentTCB Reclaiming functions: Reclaiming variables: Clearing address taken flags: 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: prvAddCurrentTaskToDelayedList/94 prvAddCurrentTaskToDelayedList/94 vTaskPlaceOnEventList/58 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: xTaskResumeFromISR/42 vTaskSuspend/39 vTaskDelete/32 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 prvCheckTasksWaitingTermination/71 xTaskAbortDelay/55 xTaskAbortDelay/55 xTaskResumeFromISR/42 vTaskResume/41 vTaskSuspend/39 vTaskSuspend/39 vTaskPrioritySet/38 vTaskDelete/32 vTaskDelete/32 Calls: vPortExitCritical/101 (vPortExitCritical) @06d5b000 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: ulTaskGenericNotifyValueClear/93 xTaskGenericNotifyStateClear/92 xTaskGenericNotify/89 xTaskGenericNotifyWait/88 xTaskGenericNotifyWait/88 ulTaskGenericNotifyTake/87 ulTaskGenericNotifyTake/87 prvCheckTasksWaitingTermination/71 xTaskCheckForTimeOut/65 vTaskSetTimeOutState/63 xTaskAbortDelay/55 xTaskResumeAll/46 vTaskResume/41 vTaskSuspend/39 vTaskSuspend/39 vTaskPrioritySet/38 uxTaskPriorityGet/36 eTaskGetState/35 vTaskDelete/32 prvAddNewTaskToReadyList/31 Calls: vPortEnterCritical/100 (vPortEnterCritical) @06d5be00 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: ulTaskGenericNotifyValueClear/93 xTaskGenericNotifyStateClear/92 xTaskGenericNotify/89 xTaskGenericNotifyWait/88 xTaskGenericNotifyWait/88 ulTaskGenericNotifyTake/87 ulTaskGenericNotifyTake/87 prvCheckTasksWaitingTermination/71 xTaskCheckForTimeOut/65 vTaskSetTimeOutState/63 xTaskAbortDelay/55 xTaskResumeAll/46 vTaskResume/41 vTaskSuspend/39 vTaskSuspend/39 vTaskPrioritySet/38 uxTaskPriorityGet/36 eTaskGetState/35 vTaskDelete/32 prvAddNewTaskToReadyList/31 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 vPortRaiseBASEPRI/1 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: vPortSetBASEPRI/3 vPortRaiseBASEPRI/1 ulPortRaiseBASEPRI/2 vPortValidateInterruptPriority/104 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 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: vPortSetBASEPRI/3 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 ulPortRaiseBASEPRI/2 vPortValidateInterruptPriority/104 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 vPortEnterCritical/100 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 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: xTaskIncrementTick/56 xTaskResumeAll/46 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: prvCheckTasksWaitingTermination/71 vTaskDelete/32 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: uxTaskGetStackHighWaterMark/75 vTaskGetInfo/72 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 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1 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: vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 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: vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1 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: vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1 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: vPortRaiseBASEPRI/1 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: vTaskGetInfo/72 xTaskAbortDelay/55 xTaskCatchUpTicks/54 uxTaskGetSystemState/53 xTaskGetHandle/52 vTaskDelay/34 xTaskDelayUntil/33 Calls: vPortExitCritical/101 xTaskIncrementTick/56 prvResetNextTaskUnblockTime/77 vPortEnterCritical/100 vPortRaiseBASEPRI/1 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: vTaskGetInfo/72 xTaskAbortDelay/55 xTaskCatchUpTicks/54 uxTaskGetSystemState/53 xTaskGetHandle/52 vTaskDelay/34 xTaskDelayUntil/33 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 vPortRaiseBASEPRI/1 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: vPortRaiseBASEPRI/1 xPortStartScheduler/106 vPortRaiseBASEPRI/1 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: vPortSetBASEPRI/3 vListInsertEnd/103 uxListRemove/102 prvTaskIsTaskSuspended/40 ulPortRaiseBASEPRI/2 vPortValidateInterruptPriority/104 vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1 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: vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1 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: vPortSetBASEPRI/3 ulPortRaiseBASEPRI/2 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 vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 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: vPortRaiseBASEPRI/1 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 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 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: vTaskDelete/32 (read)xTaskDelayUntil/33 (read)vTaskDelay/34 (read)vTaskSuspend/39 (read)xTaskResumeFromISR/42 (read)vTaskSuspendAll/45 (read)vTaskSuspendAll/45 (write)xTaskResumeAll/46 (read)xTaskResumeAll/46 (read)xTaskResumeAll/46 (write)xTaskResumeAll/46 (read)xTaskCatchUpTicks/54 (read)xTaskIncrementTick/56 (read)vTaskSwitchContext/57 (read)vTaskPlaceOnUnorderedEventList/59 (read)xTaskRemoveFromEventList/61 (read)vTaskRemoveFromUnorderedEventList/62 (read)xTaskGetSchedulerState/79 (read)xTaskGenericNotifyFromISR/90 (read)vTaskGenericNotifyGiveFromISR/91 (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: vTaskStartScheduler/43 (write)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)xTaskIncrementTick/56 (write)prvResetNextTaskUnblockTime/77 (write)prvResetNextTaskUnblockTime/77 (write)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: xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)vTaskSetTimeOutState/63 (read)vTaskInternalSetTimeOutState/64 (read)xTaskCheckForTimeOut/65 (read) Availability: available Varpool flags: initialized xYieldPending/22 (xYieldPending) @06c112d0 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: xTaskResumeFromISR/42 (write)xTaskResumeAll/46 (write)xTaskResumeAll/46 (write)xTaskResumeAll/46 (read)xTaskAbortDelay/55 (write)xTaskIncrementTick/56 (read)vTaskSwitchContext/57 (write)vTaskSwitchContext/57 (write)xTaskRemoveFromEventList/61 (write)vTaskRemoveFromUnorderedEventList/62 (write)vTaskMissedYield/66 (write)xTaskGenericNotifyFromISR/90 (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)xTaskCatchUpTicks/54 (read)xTaskCatchUpTicks/54 (write)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write) Availability: available Varpool flags: initialized xSchedulerRunning/20 (xSchedulerRunning) @06c111b0 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (read)vTaskDelete/32 (read)vTaskSuspend/39 (read)vTaskSuspend/39 (read)vTaskStartScheduler/43 (write)vTaskEndScheduler/44 (write)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: prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (write)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (write)vTaskResume/41 (read)vTaskResume/41 (write)xTaskResumeFromISR/42 (read)xTaskResumeFromISR/42 (write)xTaskResumeAll/46 (read)xTaskResumeAll/46 (write)xTaskAbortDelay/55 (read)xTaskAbortDelay/55 (write)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)vTaskSwitchContext/57 (read)vTaskSwitchContext/57 (write)xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (write)vTaskRemoveFromUnorderedEventList/62 (read)vTaskRemoveFromUnorderedEventList/62 (write)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (write)xTaskPriorityDisinherit/81 (read)xTaskPriorityDisinherit/81 (write)vTaskPriorityDisinheritAfterTimeout/82 (read)vTaskPriorityDisinheritAfterTimeout/82 (write)xTaskGenericNotify/89 (read)xTaskGenericNotify/89 (write)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (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: xTaskDelayUntil/33 (read)vTaskStartScheduler/43 (write)xTaskGetTickCount/47 (read)xTaskGetTickCountFromISR/48 (read)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)vTaskSetTimeOutState/63 (read)vTaskInternalSetTimeOutState/64 (read)xTaskCheckForTimeOut/65 (read)xTaskGenericNotify/89 (read)xTaskGenericNotifyFromISR/90 (read)prvAddCurrentTaskToDelayedList/94 (read) Availability: available Varpool flags: initialized uxCurrentNumberOfTasks/17 (uxCurrentNumberOfTasks) @06c11090 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)vTaskSuspend/39 (read)xTaskResumeAll/46 (read)uxTaskGetNumberOfTasks/49 (read)uxTaskGetSystemState/53 (read)prvCheckTasksWaitingTermination/71 (read)prvCheckTasksWaitingTermination/71 (write)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: eTaskGetState/35 (addr)vTaskSuspend/39 (addr)vTaskSuspend/39 (read)prvTaskIsTaskSuspended/40 (addr)xTaskGetHandle/52 (addr)uxTaskGetSystemState/53 (addr)prvInitialiseTaskLists/70 (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: vTaskDelete/32 (read)vTaskDelete/32 (write)prvCheckTasksWaitingTermination/71 (read)prvCheckTasksWaitingTermination/71 (write)prvCheckTasksWaitingTermination/71 (read) Availability: available Varpool flags: initialized xTasksWaitingTermination/14 (xTasksWaitingTermination) @06c0ee58 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: vTaskDelete/32 (addr)eTaskGetState/35 (addr)xTaskGetHandle/52 (addr)uxTaskGetSystemState/53 (addr)prvInitialiseTaskLists/70 (addr)prvCheckTasksWaitingTermination/71 (read) Availability: available Varpool flags: xPendingReadyList/13 (xPendingReadyList) @06c0edc8 Type: variable definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: prvTaskIsTaskSuspended/40 (addr)xTaskResumeFromISR/42 (addr)xTaskResumeAll/46 (read)xTaskResumeAll/46 (read)xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (addr)xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (write)prvInitialiseTaskLists/70 (addr)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (addr)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (write)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: eTaskGetState/35 (read)xTaskGetHandle/52 (read)uxTaskGetSystemState/53 (read)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)prvInitialiseTaskLists/70 (write)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: eTaskGetState/35 (read)xTaskGetHandle/52 (read)uxTaskGetSystemState/53 (read)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (read)prvInitialiseTaskLists/70 (write)prvResetNextTaskUnblockTime/77 (read)prvResetNextTaskUnblockTime/77 (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: prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (addr)prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (write)vTaskPrioritySet/38 (addr)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (addr)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (write)vTaskResume/41 (read)vTaskResume/41 (addr)vTaskResume/41 (read)vTaskResume/41 (write)xTaskResumeFromISR/42 (read)xTaskResumeFromISR/42 (addr)xTaskResumeFromISR/42 (read)xTaskResumeFromISR/42 (write)xTaskResumeAll/46 (read)xTaskResumeAll/46 (addr)xTaskResumeAll/46 (read)xTaskResumeAll/46 (write)xTaskGetHandle/52 (addr)uxTaskGetSystemState/53 (addr)xTaskAbortDelay/55 (read)xTaskAbortDelay/55 (addr)xTaskAbortDelay/55 (read)xTaskAbortDelay/55 (write)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (addr)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)xTaskIncrementTick/56 (read)vTaskSwitchContext/57 (read)vTaskSwitchContext/57 (addr)xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (addr)xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (write)vTaskRemoveFromUnorderedEventList/62 (read)vTaskRemoveFromUnorderedEventList/62 (addr)vTaskRemoveFromUnorderedEventList/62 (read)vTaskRemoveFromUnorderedEventList/62 (write)prvIdleTask/69 (read)prvInitialiseTaskLists/70 (addr)xTaskPriorityInherit/80 (addr)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 (addr)vTaskPriorityDisinheritAfterTimeout/82 (read)vTaskPriorityDisinheritAfterTimeout/82 (addr)vTaskPriorityDisinheritAfterTimeout/82 (read)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)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)prvAddNewTaskToReadyList/31 (write)prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (write)prvAddNewTaskToReadyList/31 (read)vTaskDelete/32 (read)vTaskDelete/32 (read)vTaskDelete/32 (read)eTaskGetState/35 (read)uxTaskPriorityGet/36 (read)uxTaskPriorityGetFromISR/37 (read)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (read)vTaskSuspend/39 (read)vTaskSuspend/39 (read)vTaskSuspend/39 (write)vTaskResume/41 (read)vTaskResume/41 (read)xTaskResumeFromISR/42 (read)xTaskResumeAll/46 (read)pcTaskGetName/50 (read)xTaskAbortDelay/55 (read)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (read)vTaskSwitchContext/57 (write)vTaskPlaceOnEventList/58 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)xTaskRemoveFromEventList/61 (read)vTaskRemoveFromUnorderedEventList/62 (read)xTaskCheckForTimeOut/65 (read)xTaskCheckForTimeOut/65 (read)vTaskGetInfo/72 (read)vTaskGetInfo/72 (read)uxTaskGetStackHighWaterMark/75 (read)xTaskGetCurrentTaskHandle/78 (read)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (read)xTaskPriorityDisinherit/81 (read)vTaskPriorityDisinheritAfterTimeout/82 (read)uxTaskResetEventItemValue/85 (read)uxTaskResetEventItemValue/85 (read)uxTaskResetEventItemValue/85 (read)pvTaskIncrementMutexHeldCount/86 (read)pvTaskIncrementMutexHeldCount/86 (read)pvTaskIncrementMutexHeldCount/86 (read)ulTaskGenericNotifyTake/87 (read)ulTaskGenericNotifyTake/87 (read)ulTaskGenericNotifyTake/87 (read)ulTaskGenericNotifyTake/87 (read)ulTaskGenericNotifyTake/87 (read)ulTaskGenericNotifyTake/87 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotify/89 (read)xTaskGenericNotifyFromISR/90 (read)vTaskGenericNotifyGiveFromISR/91 (read)xTaskGenericNotifyStateClear/92 (read)ulTaskGenericNotifyValueClear/93 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read) Availability: available Varpool flags: initialized vPortSetBASEPRI/3 (vPortSetBASEPRI) @06b3cb60 Type: function definition analyzed Visibility: no_reorder prevailing_def_ironly References: Referring: Availability: local Function flags: body local Called by: vTaskGenericNotifyGiveFromISR/91 xTaskGenericNotifyFromISR/90 xTaskResumeFromISR/42 uxTaskPriorityGetFromISR/37 Calls: ulPortRaiseBASEPRI/2 (ulPortRaiseBASEPRI) @06b3c8c0 Type: function definition analyzed Visibility: no_reorder prevailing_def_ironly References: Referring: Availability: local Function flags: body local Called by: vTaskGenericNotifyGiveFromISR/91 xTaskGenericNotifyFromISR/90 xTaskResumeFromISR/42 uxTaskPriorityGetFromISR/37 Calls: vPortRaiseBASEPRI/1 (vPortRaiseBASEPRI) @06b3c540 Type: function definition analyzed Visibility: no_reorder prevailing_def_ironly References: Referring: Availability: local Function flags: body local Called by: xTaskGenericNotifyStateClear/92 vTaskGenericNotifyGiveFromISR/91 vTaskGenericNotifyGiveFromISR/91 vTaskGenericNotifyGiveFromISR/91 xTaskGenericNotifyFromISR/90 xTaskGenericNotifyFromISR/90 xTaskGenericNotifyFromISR/90 xTaskGenericNotifyFromISR/90 xTaskGenericNotify/89 xTaskGenericNotify/89 xTaskGenericNotify/89 xTaskGenericNotify/89 xTaskGenericNotifyWait/88 ulTaskGenericNotifyTake/87 vTaskPriorityDisinheritAfterTimeout/82 vTaskPriorityDisinheritAfterTimeout/82 xTaskPriorityDisinherit/81 xTaskPriorityDisinherit/81 xTaskCheckForTimeOut/65 xTaskCheckForTimeOut/65 vTaskSetTimeOutState/63 vTaskRemoveFromUnorderedEventList/62 vTaskRemoveFromUnorderedEventList/62 xTaskRemoveFromEventList/61 vTaskPlaceOnEventListRestricted/60 vTaskPlaceOnUnorderedEventList/59 vTaskPlaceOnUnorderedEventList/59 vTaskPlaceOnEventList/58 vTaskSwitchContext/57 xTaskIncrementTick/56 xTaskAbortDelay/55 xTaskCatchUpTicks/54 xTaskGetHandle/52 pcTaskGetName/50 xTaskResumeAll/46 vTaskEndScheduler/44 vTaskStartScheduler/43 vTaskStartScheduler/43 xTaskResumeFromISR/42 vTaskResume/41 prvTaskIsTaskSuspended/40 vTaskSuspend/39 vTaskPrioritySet/38 eTaskGetState/35 vTaskDelay/34 xTaskDelayUntil/33 xTaskDelayUntil/33 xTaskDelayUntil/33 vTaskDelete/32 prvInitialiseNewTask/30 prvInitialiseNewTask/30 Calls: prvAddCurrentTaskToDelayedList (TickType_t xTicksToWait, const BaseType_t xCanBlockIndefinitely) { struct ListItem_t * const pxIndex; const TickType_t xConstTickCount; TickType_t xTimeToWake; : xConstTickCount = xTickCount; pxCurrentTCB.152_1 = pxCurrentTCB; pxCurrentTCB.152_1->ucDelayAborted = 0; pxCurrentTCB.153_2 = pxCurrentTCB; _3 = &pxCurrentTCB.153_2->xStateListItem; _4 = uxListRemove (_3); : if (xTicksToWait == 4294967295) goto ; [INV] else goto ; [INV] : if (xCanBlockIndefinitely != 0) goto ; [INV] else goto ; [INV] : pxIndex = xSuspendedTaskList.pxIndex; pxCurrentTCB.154_5 = pxCurrentTCB; pxCurrentTCB.154_5->xStateListItem.pxNext = pxIndex; pxCurrentTCB.155_6 = pxCurrentTCB; _7 = pxIndex->pxPrevious; pxCurrentTCB.155_6->xStateListItem.pxPrevious = _7; pxCurrentTCB.156_8 = pxCurrentTCB; _9 = pxIndex->pxPrevious; _10 = &pxCurrentTCB.156_8->xStateListItem; _9->pxNext = _10; pxCurrentTCB.157_11 = pxCurrentTCB; _12 = &pxCurrentTCB.157_11->xStateListItem; pxIndex->pxPrevious = _12; pxCurrentTCB.158_13 = pxCurrentTCB; pxCurrentTCB.158_13->xStateListItem.pvContainer = &xSuspendedTaskList; _14 = xSuspendedTaskList.uxNumberOfItems; _15 = _14 + 1; xSuspendedTaskList.uxNumberOfItems = _15; goto ; [INV] : xTimeToWake = xConstTickCount + xTicksToWait; pxCurrentTCB.159_16 = pxCurrentTCB; pxCurrentTCB.159_16->xStateListItem.xItemValue = xTimeToWake; if (xTimeToWake < xConstTickCount) goto ; [INV] else goto ; [INV] : pxOverflowDelayedTaskList.160_17 = pxOverflowDelayedTaskList; pxCurrentTCB.161_18 = pxCurrentTCB; _19 = &pxCurrentTCB.161_18->xStateListItem; vListInsert (pxOverflowDelayedTaskList.160_17, _19); goto ; [INV] : pxDelayedTaskList.162_20 = pxDelayedTaskList; pxCurrentTCB.163_21 = pxCurrentTCB; _22 = &pxCurrentTCB.163_21->xStateListItem; vListInsert (pxDelayedTaskList.162_20, _22); xNextTaskUnblockTime.164_23 = xNextTaskUnblockTime; if (xTimeToWake < xNextTaskUnblockTime.164_23) goto ; [INV] else goto ; [INV] : xNextTaskUnblockTime = xTimeToWake; : return; } 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; : if (xTask == 0B) goto ; [INV] else goto ; [INV] : iftmp.151 = pxCurrentTCB; goto ; [INV] : iftmp.151 = xTask; : pxTCB = iftmp.151; vPortEnterCritical (); ulReturn = pxTCB->ulNotifiedValue[uxIndexToClear]; _1 = pxTCB->ulNotifiedValue[uxIndexToClear]; _2 = ~ulBitsToClear; _3 = _1 & _2; pxTCB->ulNotifiedValue[uxIndexToClear] = _3; vPortExitCritical (); D.8224 = ulReturn; : : return D.8224; } xTaskGenericNotifyStateClear (struct tskTaskControlBlock * xTask, UBaseType_t uxIndexToClear) { BaseType_t xReturn; struct TCB_t * pxTCB; BaseType_t D.8218; struct TCB_t * iftmp.150; : if (uxIndexToClear != 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (xTask == 0B) goto ; [INV] else goto ; [INV] : iftmp.150 = pxCurrentTCB; goto ; [INV] : iftmp.150 = xTask; : pxTCB = iftmp.150; vPortEnterCritical (); _1 = pxTCB->ucNotifyState[uxIndexToClear]; if (_1 == 2) goto ; [INV] else goto ; [INV] : pxTCB->ucNotifyState[uxIndexToClear] = 0; xReturn = 1; goto ; [INV] : xReturn = 0; : vPortExitCritical (); D.8218 = xReturn; : : return D.8218; } vTaskGenericNotifyGiveFromISR (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, BaseType_t * pxHigherPriorityTaskWoken) { 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; : if (xTaskToNotify == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (uxIndexToNotify != 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vPortValidateInterruptPriority (); pxTCB = xTaskToNotify; uxSavedInterruptStatus = ulPortRaiseBASEPRI (); ucOriginalNotifyState = pxTCB->ucNotifyState[uxIndexToNotify]; pxTCB->ucNotifyState[uxIndexToNotify] = 2; _1 = pxTCB->ulNotifiedValue[uxIndexToNotify]; _2 = _1 + 1; pxTCB->ulNotifiedValue[uxIndexToNotify] = _2; if (ucOriginalNotifyState == 1) goto ; [INV] else goto ; [INV] : _3 = pxTCB->xEventListItem.pvContainer; if (_3 != 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : uxSchedulerSuspended.147_4 = uxSchedulerSuspended; if (uxSchedulerSuspended.147_4 == 0) goto ; [INV] else goto ; [INV] : pxList = pxTCB->xStateListItem.pvContainer; _5 = pxTCB->xStateListItem.pxNext; _6 = pxTCB->xStateListItem.pxPrevious; _5->pxPrevious = _6; _7 = pxTCB->xStateListItem.pxPrevious; _8 = pxTCB->xStateListItem.pxNext; _7->pxNext = _8; _9 = pxList->pxIndex; _10 = &pxTCB->xStateListItem; if (_9 == _10) goto ; [INV] else goto ; [INV] : _11 = pxTCB->xStateListItem.pxPrevious; pxList->pxIndex = _11; : pxTCB->xStateListItem.pvContainer = 0B; _12 = pxList->uxNumberOfItems; _13 = _12 + 4294967295; pxList->uxNumberOfItems = _13; _14 = pxTCB->uxPriority; uxTopReadyPriority.148_15 = uxTopReadyPriority; if (_14 > uxTopReadyPriority.148_15) goto ; [INV] else goto ; [INV] : _16 = pxTCB->uxPriority; uxTopReadyPriority = _16; : _17 = pxTCB->uxPriority; pxIndex = pxReadyTasksLists[_17].pxIndex; pxTCB->xStateListItem.pxNext = pxIndex; _18 = pxIndex->pxPrevious; pxTCB->xStateListItem.pxPrevious = _18; _19 = pxIndex->pxPrevious; _20 = &pxTCB->xStateListItem; _19->pxNext = _20; _21 = &pxTCB->xStateListItem; pxIndex->pxPrevious = _21; _22 = pxTCB->uxPriority; _23 = &pxReadyTasksLists[_22]; pxTCB->xStateListItem.pvContainer = _23; _24 = pxTCB->uxPriority; _25 = pxReadyTasksLists[_24].uxNumberOfItems; _26 = _25 + 1; pxReadyTasksLists[_24].uxNumberOfItems = _26; goto ; [INV] : pxIndex = xPendingReadyList.pxIndex; pxTCB->xEventListItem.pxNext = pxIndex; _27 = pxIndex->pxPrevious; pxTCB->xEventListItem.pxPrevious = _27; _28 = pxIndex->pxPrevious; _29 = &pxTCB->xEventListItem; _28->pxNext = _29; _30 = &pxTCB->xEventListItem; pxIndex->pxPrevious = _30; pxTCB->xEventListItem.pvContainer = &xPendingReadyList; _31 = xPendingReadyList.uxNumberOfItems; _32 = _31 + 1; xPendingReadyList.uxNumberOfItems = _32; : _33 = pxTCB->uxPriority; pxCurrentTCB.149_34 = pxCurrentTCB; _35 = pxCurrentTCB.149_34->uxPriority; if (_33 > _35) goto ; [INV] else goto ; [INV] : if (pxHigherPriorityTaskWoken != 0B) goto ; [INV] else goto ; [INV] : *pxHigherPriorityTaskWoken = 1; : xYieldPending = 1; : vPortSetBASEPRI (uxSavedInterruptStatus); return; } xTaskGenericNotifyFromISR (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t * pulPreviousNotificationValue, BaseType_t * pxHigherPriorityTaskWoken) { 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; : xReturn = 1; if (xTaskToNotify == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (uxIndexToNotify != 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vPortValidateInterruptPriority (); pxTCB = xTaskToNotify; uxSavedInterruptStatus = ulPortRaiseBASEPRI (); if (pulPreviousNotificationValue != 0B) goto ; [INV] else goto ; [INV] : _1 = pxTCB->ulNotifiedValue[uxIndexToNotify]; *pulPreviousNotificationValue = _1; : ucOriginalNotifyState = pxTCB->ucNotifyState[uxIndexToNotify]; pxTCB->ucNotifyState[uxIndexToNotify] = 2; switch (eAction) [INV], case 0: [INV], case 1: [INV], case 2: [INV], case 3: [INV], case 4: [INV]> : : _2 = pxTCB->ulNotifiedValue[uxIndexToNotify]; _3 = ulValue | _2; pxTCB->ulNotifiedValue[uxIndexToNotify] = _3; goto ; [INV] : : _4 = pxTCB->ulNotifiedValue[uxIndexToNotify]; _5 = _4 + 1; pxTCB->ulNotifiedValue[uxIndexToNotify] = _5; goto ; [INV] : : pxTCB->ulNotifiedValue[uxIndexToNotify] = ulValue; goto ; [INV] : : if (ucOriginalNotifyState != 2) goto ; [INV] else goto ; [INV] : pxTCB->ulNotifiedValue[uxIndexToNotify] = ulValue; goto ; [INV] : xReturn = 0; : goto ; [INV] : : goto ; [INV] : : xTickCount.143_6 = xTickCount; if (xTickCount.143_6 != 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : : if (ucOriginalNotifyState == 1) goto ; [INV] else goto ; [INV] : _7 = pxTCB->xEventListItem.pvContainer; if (_7 != 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : uxSchedulerSuspended.144_8 = uxSchedulerSuspended; if (uxSchedulerSuspended.144_8 == 0) goto ; [INV] else goto ; [INV] : pxList = pxTCB->xStateListItem.pvContainer; _9 = pxTCB->xStateListItem.pxNext; _10 = pxTCB->xStateListItem.pxPrevious; _9->pxPrevious = _10; _11 = pxTCB->xStateListItem.pxPrevious; _12 = pxTCB->xStateListItem.pxNext; _11->pxNext = _12; _13 = pxList->pxIndex; _14 = &pxTCB->xStateListItem; if (_13 == _14) goto ; [INV] else goto ; [INV] : _15 = pxTCB->xStateListItem.pxPrevious; pxList->pxIndex = _15; : pxTCB->xStateListItem.pvContainer = 0B; _16 = pxList->uxNumberOfItems; _17 = _16 + 4294967295; pxList->uxNumberOfItems = _17; _18 = pxTCB->uxPriority; uxTopReadyPriority.145_19 = uxTopReadyPriority; if (_18 > uxTopReadyPriority.145_19) goto ; [INV] else goto ; [INV] : _20 = pxTCB->uxPriority; uxTopReadyPriority = _20; : _21 = pxTCB->uxPriority; pxIndex = pxReadyTasksLists[_21].pxIndex; pxTCB->xStateListItem.pxNext = pxIndex; _22 = pxIndex->pxPrevious; pxTCB->xStateListItem.pxPrevious = _22; _23 = pxIndex->pxPrevious; _24 = &pxTCB->xStateListItem; _23->pxNext = _24; _25 = &pxTCB->xStateListItem; pxIndex->pxPrevious = _25; _26 = pxTCB->uxPriority; _27 = &pxReadyTasksLists[_26]; pxTCB->xStateListItem.pvContainer = _27; _28 = pxTCB->uxPriority; _29 = pxReadyTasksLists[_28].uxNumberOfItems; _30 = _29 + 1; pxReadyTasksLists[_28].uxNumberOfItems = _30; goto ; [INV] : pxIndex = xPendingReadyList.pxIndex; pxTCB->xEventListItem.pxNext = pxIndex; _31 = pxIndex->pxPrevious; pxTCB->xEventListItem.pxPrevious = _31; _32 = pxIndex->pxPrevious; _33 = &pxTCB->xEventListItem; _32->pxNext = _33; _34 = &pxTCB->xEventListItem; pxIndex->pxPrevious = _34; pxTCB->xEventListItem.pvContainer = &xPendingReadyList; _35 = xPendingReadyList.uxNumberOfItems; _36 = _35 + 1; xPendingReadyList.uxNumberOfItems = _36; : _37 = pxTCB->uxPriority; pxCurrentTCB.146_38 = pxCurrentTCB; _39 = pxCurrentTCB.146_38->uxPriority; if (_37 > _39) goto ; [INV] else goto ; [INV] : if (pxHigherPriorityTaskWoken != 0B) goto ; [INV] else goto ; [INV] : *pxHigherPriorityTaskWoken = 1; : xYieldPending = 1; : vPortSetBASEPRI (uxSavedInterruptStatus); D.8187 = xReturn; : : return D.8187; } xTaskGenericNotify (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t * pulPreviousNotificationValue) { struct ListItem_t * const pxIndex; struct List_t * const pxList; uint8_t ucOriginalNotifyState; BaseType_t xReturn; struct TCB_t * pxTCB; BaseType_t D.8158; : xReturn = 1; if (uxIndexToNotify != 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (xTaskToNotify == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : pxTCB = xTaskToNotify; vPortEnterCritical (); if (pulPreviousNotificationValue != 0B) goto ; [INV] else goto ; [INV] : _1 = pxTCB->ulNotifiedValue[uxIndexToNotify]; *pulPreviousNotificationValue = _1; : ucOriginalNotifyState = pxTCB->ucNotifyState[uxIndexToNotify]; pxTCB->ucNotifyState[uxIndexToNotify] = 2; switch (eAction) [INV], case 0: [INV], case 1: [INV], case 2: [INV], case 3: [INV], case 4: [INV]> : : _2 = pxTCB->ulNotifiedValue[uxIndexToNotify]; _3 = ulValue | _2; pxTCB->ulNotifiedValue[uxIndexToNotify] = _3; goto ; [INV] : : _4 = pxTCB->ulNotifiedValue[uxIndexToNotify]; _5 = _4 + 1; pxTCB->ulNotifiedValue[uxIndexToNotify] = _5; goto ; [INV] : : pxTCB->ulNotifiedValue[uxIndexToNotify] = ulValue; goto ; [INV] : : if (ucOriginalNotifyState != 2) goto ; [INV] else goto ; [INV] : pxTCB->ulNotifiedValue[uxIndexToNotify] = ulValue; goto ; [INV] : xReturn = 0; : goto ; [INV] : : goto ; [INV] : : xTickCount.140_6 = xTickCount; if (xTickCount.140_6 != 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : : if (ucOriginalNotifyState == 1) goto ; [INV] else goto ; [INV] : pxList = pxTCB->xStateListItem.pvContainer; _7 = pxTCB->xStateListItem.pxNext; _8 = pxTCB->xStateListItem.pxPrevious; _7->pxPrevious = _8; _9 = pxTCB->xStateListItem.pxPrevious; _10 = pxTCB->xStateListItem.pxNext; _9->pxNext = _10; _11 = pxList->pxIndex; _12 = &pxTCB->xStateListItem; if (_11 == _12) goto ; [INV] else goto ; [INV] : _13 = pxTCB->xStateListItem.pxPrevious; pxList->pxIndex = _13; : pxTCB->xStateListItem.pvContainer = 0B; _14 = pxList->uxNumberOfItems; _15 = _14 + 4294967295; pxList->uxNumberOfItems = _15; _16 = pxTCB->uxPriority; uxTopReadyPriority.141_17 = uxTopReadyPriority; if (_16 > uxTopReadyPriority.141_17) goto ; [INV] else goto ; [INV] : _18 = pxTCB->uxPriority; uxTopReadyPriority = _18; : _19 = pxTCB->uxPriority; pxIndex = pxReadyTasksLists[_19].pxIndex; pxTCB->xStateListItem.pxNext = pxIndex; _20 = pxIndex->pxPrevious; pxTCB->xStateListItem.pxPrevious = _20; _21 = pxIndex->pxPrevious; _22 = &pxTCB->xStateListItem; _21->pxNext = _22; _23 = &pxTCB->xStateListItem; pxIndex->pxPrevious = _23; _24 = pxTCB->uxPriority; _25 = &pxReadyTasksLists[_24]; pxTCB->xStateListItem.pvContainer = _25; _26 = pxTCB->uxPriority; _27 = pxReadyTasksLists[_26].uxNumberOfItems; _28 = _27 + 1; pxReadyTasksLists[_26].uxNumberOfItems = _28; _29 = pxTCB->xEventListItem.pvContainer; if (_29 != 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _30 = pxTCB->uxPriority; pxCurrentTCB.142_31 = pxCurrentTCB; _32 = pxCurrentTCB.142_31->uxPriority; if (_30 > _32) goto ; [INV] else goto ; [INV] : _33 = 3758157060B; *_33 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : vPortExitCritical (); D.8158 = xReturn; : : return D.8158; } xTaskGenericNotifyWait (UBaseType_t uxIndexToWait, uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t * pulNotificationValue, TickType_t xTicksToWait) { BaseType_t xReturn; BaseType_t D.8133; struct TCB_t * pxCurrentTCB.138; struct TCB_t * pxCurrentTCB.134; : if (uxIndexToWait != 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vPortEnterCritical (); pxCurrentTCB.133_1 = pxCurrentTCB; _2 = pxCurrentTCB.133_1->ucNotifyState[uxIndexToWait]; if (_2 != 2) goto ; [INV] else goto ; [INV] : pxCurrentTCB.134 = pxCurrentTCB; _3 = pxCurrentTCB.134->ulNotifiedValue[uxIndexToWait]; _4 = ~ulBitsToClearOnEntry; _5 = _3 & _4; pxCurrentTCB.134->ulNotifiedValue[uxIndexToWait] = _5; pxCurrentTCB.135_6 = pxCurrentTCB; pxCurrentTCB.135_6->ucNotifyState[uxIndexToWait] = 1; if (xTicksToWait != 0) goto ; [INV] else goto ; [INV] : prvAddCurrentTaskToDelayedList (xTicksToWait, 1); _7 = 3758157060B; *_7 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : vPortExitCritical (); vPortEnterCritical (); if (pulNotificationValue != 0B) goto ; [INV] else goto ; [INV] : pxCurrentTCB.136_8 = pxCurrentTCB; _9 = pxCurrentTCB.136_8->ulNotifiedValue[uxIndexToWait]; *pulNotificationValue = _9; : pxCurrentTCB.137_10 = pxCurrentTCB; _11 = pxCurrentTCB.137_10->ucNotifyState[uxIndexToWait]; if (_11 != 2) goto ; [INV] else goto ; [INV] : xReturn = 0; goto ; [INV] : pxCurrentTCB.138 = pxCurrentTCB; _12 = pxCurrentTCB.138->ulNotifiedValue[uxIndexToWait]; _13 = ~ulBitsToClearOnExit; _14 = _12 & _13; pxCurrentTCB.138->ulNotifiedValue[uxIndexToWait] = _14; xReturn = 1; : pxCurrentTCB.139_15 = pxCurrentTCB; pxCurrentTCB.139_15->ucNotifyState[uxIndexToWait] = 0; vPortExitCritical (); D.8133 = xReturn; : : return D.8133; } ulTaskGenericNotifyTake (UBaseType_t uxIndexToWait, BaseType_t xClearCountOnExit, TickType_t xTicksToWait) { uint32_t ulReturn; uint32_t D.8116; : if (uxIndexToWait != 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vPortEnterCritical (); pxCurrentTCB.127_1 = pxCurrentTCB; _2 = pxCurrentTCB.127_1->ulNotifiedValue[uxIndexToWait]; if (_2 == 0) goto ; [INV] else goto ; [INV] : pxCurrentTCB.128_3 = pxCurrentTCB; pxCurrentTCB.128_3->ucNotifyState[uxIndexToWait] = 1; if (xTicksToWait != 0) goto ; [INV] else goto ; [INV] : prvAddCurrentTaskToDelayedList (xTicksToWait, 1); _4 = 3758157060B; *_4 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : vPortExitCritical (); vPortEnterCritical (); pxCurrentTCB.129_5 = pxCurrentTCB; ulReturn = pxCurrentTCB.129_5->ulNotifiedValue[uxIndexToWait]; if (ulReturn != 0) goto ; [INV] else goto ; [INV] : if (xClearCountOnExit != 0) goto ; [INV] else goto ; [INV] : pxCurrentTCB.130_6 = pxCurrentTCB; pxCurrentTCB.130_6->ulNotifiedValue[uxIndexToWait] = 0; goto ; [INV] : pxCurrentTCB.131_7 = pxCurrentTCB; _8 = ulReturn + 4294967295; pxCurrentTCB.131_7->ulNotifiedValue[uxIndexToWait] = _8; : pxCurrentTCB.132_9 = pxCurrentTCB; pxCurrentTCB.132_9->ucNotifyState[uxIndexToWait] = 0; vPortExitCritical (); D.8116 = ulReturn; : : return D.8116; } pvTaskIncrementMutexHeldCount () { struct tskTaskControlBlock * D.8100; : pxCurrentTCB.125_1 = pxCurrentTCB; if (pxCurrentTCB.125_1 != 0B) goto ; [INV] else goto ; [INV] : pxCurrentTCB.126_2 = pxCurrentTCB; _3 = pxCurrentTCB.126_2->uxMutexesHeld; _4 = _3 + 1; pxCurrentTCB.126_2->uxMutexesHeld = _4; : D.8100 = pxCurrentTCB; : : return D.8100; } uxTaskResetEventItemValue () { TickType_t uxReturn; TickType_t D.8096; : pxCurrentTCB.122_1 = pxCurrentTCB; uxReturn = pxCurrentTCB.122_1->xEventListItem.xItemValue; pxCurrentTCB.123_2 = pxCurrentTCB; _3 = pxCurrentTCB.123_2->uxPriority; pxCurrentTCB.124_4 = pxCurrentTCB; _5 = 5 - _3; pxCurrentTCB.124_4->xEventListItem.xItemValue = _5; D.8096 = uxReturn; : : return D.8096; } vTaskList (char * pcWriteBuffer) { char cStatus; UBaseType_t x; UBaseType_t uxArraySize; struct TaskStatus_t * pxTaskStatusArray; : *pcWriteBuffer = 0; uxArraySize = uxCurrentNumberOfTasks; uxCurrentNumberOfTasks.121_1 = uxCurrentNumberOfTasks; _2 = uxCurrentNumberOfTasks.121_1 * 36; pxTaskStatusArray = pvPortMalloc (_2); if (pxTaskStatusArray != 0B) goto ; [INV] else goto ; [INV] : uxArraySize = uxTaskGetSystemState (pxTaskStatusArray, uxArraySize, 0B); x = 0; goto ; [INV] : _3 = x * 36; _4 = pxTaskStatusArray + _3; _5 = _4->eCurrentState; switch (_5) [INV], case 0: [INV], case 1: [INV], case 2: [INV], case 3: [INV], case 4: [INV]> : : cStatus = 88; goto ; [INV] : : cStatus = 82; goto ; [INV] : : cStatus = 66; goto ; [INV] : : cStatus = 83; goto ; [INV] : : cStatus = 68; goto ; [INV] : : cStatus = 0; : _6 = x * 36; _7 = pxTaskStatusArray + _6; _8 = _7->pcTaskName; pcWriteBuffer = prvWriteNameToBuffer (pcWriteBuffer, _8); _9 = (int) cStatus; _10 = x * 36; _11 = pxTaskStatusArray + _10; _12 = _11->uxCurrentPriority; _13 = x * 36; _14 = pxTaskStatusArray + _13; _15 = _14->usStackHighWaterMark; _16 = (unsigned int) _15; _17 = x * 36; _18 = pxTaskStatusArray + _17; _19 = _18->xTaskNumber; sprintf (pcWriteBuffer, "\t%c\t%u\t%u\t%u\r\n", _9, _12, _16, _19); _20 = strlen (pcWriteBuffer); pcWriteBuffer = pcWriteBuffer + _20; x = x + 1; : if (x < uxArraySize) goto ; [INV] else goto ; [INV] : vPortFree (pxTaskStatusArray); : return; } prvWriteNameToBuffer (char * pcBuffer, const char * pcTaskName) { size_t x; char * D.8091; : strcpy (pcBuffer, pcTaskName); x = strlen (pcBuffer); goto ; [INV] : _1 = pcBuffer + x; *_1 = 32; x = x + 1; : if (x <= 8) goto ; [INV] else goto ; [INV] : _2 = pcBuffer + x; *_2 = 0; D.8091 = pcBuffer + x; : : return D.8091; } vTaskPriorityDisinheritAfterTimeout (struct tskTaskControlBlock * const pxMutexHolder, UBaseType_t uxHighestPriorityWaitingTask) { struct ListItem_t * const pxIndex; const UBaseType_t uxOnlyOneMutexHeld; UBaseType_t uxPriorityToUse; UBaseType_t uxPriorityUsedOnEntry; struct TCB_t * const pxTCB; : pxTCB = pxMutexHolder; uxOnlyOneMutexHeld = 1; if (pxMutexHolder != 0B) goto ; [INV] else goto ; [INV] : _1 = pxTCB->uxMutexesHeld; if (_1 == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _2 = pxTCB->uxBasePriority; if (uxHighestPriorityWaitingTask > _2) goto ; [INV] else goto ; [INV] : uxPriorityToUse = uxHighestPriorityWaitingTask; goto ; [INV] : uxPriorityToUse = pxTCB->uxBasePriority; : _3 = pxTCB->uxPriority; if (uxPriorityToUse != _3) goto ; [INV] else goto ; [INV] : _4 = pxTCB->uxMutexesHeld; if (uxOnlyOneMutexHeld == _4) goto ; [INV] else goto ; [INV] : pxCurrentTCB.119_5 = pxCurrentTCB; if (pxTCB == pxCurrentTCB.119_5) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : uxPriorityUsedOnEntry = pxTCB->uxPriority; pxTCB->uxPriority = uxPriorityToUse; _6 = pxTCB->xEventListItem.xItemValue; _7 = (signed int) _6; if (_7 >= 0) goto ; [INV] else goto ; [INV] : _8 = 5 - uxPriorityToUse; pxTCB->xEventListItem.xItemValue = _8; : _9 = pxTCB->xStateListItem.pvContainer; _10 = &pxReadyTasksLists[uxPriorityUsedOnEntry]; if (_9 == _10) goto ; [INV] else goto ; [INV] : _11 = &pxTCB->xStateListItem; _12 = uxListRemove (_11); : _13 = pxTCB->uxPriority; uxTopReadyPriority.120_14 = uxTopReadyPriority; if (_13 > uxTopReadyPriority.120_14) goto ; [INV] else goto ; [INV] : _15 = pxTCB->uxPriority; uxTopReadyPriority = _15; : _16 = pxTCB->uxPriority; pxIndex = pxReadyTasksLists[_16].pxIndex; pxTCB->xStateListItem.pxNext = pxIndex; _17 = pxIndex->pxPrevious; pxTCB->xStateListItem.pxPrevious = _17; _18 = pxIndex->pxPrevious; _19 = &pxTCB->xStateListItem; _18->pxNext = _19; _20 = &pxTCB->xStateListItem; pxIndex->pxPrevious = _20; _21 = pxTCB->uxPriority; _22 = &pxReadyTasksLists[_21]; pxTCB->xStateListItem.pvContainer = _22; _23 = pxTCB->uxPriority; _24 = pxReadyTasksLists[_23].uxNumberOfItems; _25 = _24 + 1; pxReadyTasksLists[_23].uxNumberOfItems = _25; : return; } xTaskPriorityDisinherit (struct tskTaskControlBlock * const pxMutexHolder) { struct ListItem_t * const pxIndex; BaseType_t xReturn; struct TCB_t * const pxTCB; BaseType_t D.8062; : pxTCB = pxMutexHolder; xReturn = 0; if (pxMutexHolder != 0B) goto ; [INV] else goto ; [INV] : pxCurrentTCB.117_1 = pxCurrentTCB; if (pxTCB != pxCurrentTCB.117_1) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _2 = pxTCB->uxMutexesHeld; if (_2 == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _3 = pxTCB->uxMutexesHeld; _4 = _3 + 4294967295; pxTCB->uxMutexesHeld = _4; _5 = pxTCB->uxPriority; _6 = pxTCB->uxBasePriority; if (_5 != _6) goto ; [INV] else goto ; [INV] : _7 = pxTCB->uxMutexesHeld; if (_7 == 0) goto ; [INV] else goto ; [INV] : _8 = &pxTCB->xStateListItem; _9 = uxListRemove (_8); : _10 = pxTCB->uxBasePriority; pxTCB->uxPriority = _10; _11 = pxTCB->uxPriority; _12 = 5 - _11; pxTCB->xEventListItem.xItemValue = _12; _13 = pxTCB->uxPriority; uxTopReadyPriority.118_14 = uxTopReadyPriority; if (_13 > uxTopReadyPriority.118_14) goto ; [INV] else goto ; [INV] : _15 = pxTCB->uxPriority; uxTopReadyPriority = _15; : _16 = pxTCB->uxPriority; pxIndex = pxReadyTasksLists[_16].pxIndex; pxTCB->xStateListItem.pxNext = pxIndex; _17 = pxIndex->pxPrevious; pxTCB->xStateListItem.pxPrevious = _17; _18 = pxIndex->pxPrevious; _19 = &pxTCB->xStateListItem; _18->pxNext = _19; _20 = &pxTCB->xStateListItem; pxIndex->pxPrevious = _20; _21 = pxTCB->uxPriority; _22 = &pxReadyTasksLists[_21]; pxTCB->xStateListItem.pvContainer = _22; _23 = pxTCB->uxPriority; _24 = pxReadyTasksLists[_23].uxNumberOfItems; _25 = _24 + 1; pxReadyTasksLists[_23].uxNumberOfItems = _25; xReturn = 1; : D.8062 = xReturn; : : return D.8062; } xTaskPriorityInherit (struct tskTaskControlBlock * const pxMutexHolder) { struct ListItem_t * const pxIndex; BaseType_t xReturn; struct TCB_t * const pxMutexHolderTCB; BaseType_t D.8042; : pxMutexHolderTCB = pxMutexHolder; xReturn = 0; if (pxMutexHolder != 0B) goto ; [INV] else goto ; [INV] : _1 = pxMutexHolderTCB->uxPriority; pxCurrentTCB.111_2 = pxCurrentTCB; _3 = pxCurrentTCB.111_2->uxPriority; if (_1 < _3) goto ; [INV] else goto ; [INV] : _4 = pxMutexHolderTCB->xEventListItem.xItemValue; _5 = (signed int) _4; if (_5 >= 0) goto ; [INV] else goto ; [INV] : pxCurrentTCB.112_6 = pxCurrentTCB; _7 = pxCurrentTCB.112_6->uxPriority; _8 = 5 - _7; pxMutexHolderTCB->xEventListItem.xItemValue = _8; : _9 = pxMutexHolderTCB->xStateListItem.pvContainer; _10 = pxMutexHolderTCB->uxPriority; _11 = &pxReadyTasksLists[_10]; if (_9 == _11) goto ; [INV] else goto ; [INV] : _12 = &pxMutexHolderTCB->xStateListItem; _13 = uxListRemove (_12); : pxCurrentTCB.113_14 = pxCurrentTCB; _15 = pxCurrentTCB.113_14->uxPriority; pxMutexHolderTCB->uxPriority = _15; _16 = pxMutexHolderTCB->uxPriority; uxTopReadyPriority.114_17 = uxTopReadyPriority; if (_16 > uxTopReadyPriority.114_17) goto ; [INV] else goto ; [INV] : _18 = pxMutexHolderTCB->uxPriority; uxTopReadyPriority = _18; : _19 = pxMutexHolderTCB->uxPriority; pxIndex = pxReadyTasksLists[_19].pxIndex; pxMutexHolderTCB->xStateListItem.pxNext = pxIndex; _20 = pxIndex->pxPrevious; pxMutexHolderTCB->xStateListItem.pxPrevious = _20; _21 = pxIndex->pxPrevious; _22 = &pxMutexHolderTCB->xStateListItem; _21->pxNext = _22; _23 = &pxMutexHolderTCB->xStateListItem; pxIndex->pxPrevious = _23; _24 = pxMutexHolderTCB->uxPriority; _25 = &pxReadyTasksLists[_24]; pxMutexHolderTCB->xStateListItem.pvContainer = _25; _26 = pxMutexHolderTCB->uxPriority; _27 = pxReadyTasksLists[_26].uxNumberOfItems; _28 = _27 + 1; pxReadyTasksLists[_26].uxNumberOfItems = _28; goto ; [INV] : pxCurrentTCB.115_29 = pxCurrentTCB; _30 = pxCurrentTCB.115_29->uxPriority; pxMutexHolderTCB->uxPriority = _30; : xReturn = 1; goto ; [INV] : _31 = pxMutexHolderTCB->uxBasePriority; pxCurrentTCB.116_32 = pxCurrentTCB; _33 = pxCurrentTCB.116_32->uxPriority; if (_31 < _33) goto ; [INV] else goto ; [INV] : xReturn = 1; : D.8042 = xReturn; : : return D.8042; } xTaskGetSchedulerState () { BaseType_t xReturn; BaseType_t D.8020; : xSchedulerRunning.109_1 = xSchedulerRunning; if (xSchedulerRunning.109_1 == 0) goto ; [INV] else goto ; [INV] : xReturn = 1; goto ; [INV] : uxSchedulerSuspended.110_2 = uxSchedulerSuspended; if (uxSchedulerSuspended.110_2 == 0) goto ; [INV] else goto ; [INV] : xReturn = 2; goto ; [INV] : xReturn = 0; : D.8020 = xReturn; : : return D.8020; } xTaskGetCurrentTaskHandle () { struct tskTaskControlBlock * xReturn; struct tskTaskControlBlock * D.8012; : xReturn = pxCurrentTCB; D.8012 = xReturn; : : return D.8012; } prvResetNextTaskUnblockTime () { : pxDelayedTaskList.107_1 = pxDelayedTaskList; _2 = pxDelayedTaskList.107_1->uxNumberOfItems; if (_2 == 0) goto ; [INV] else goto ; [INV] : xNextTaskUnblockTime = 4294967295; goto ; [INV] : pxDelayedTaskList.108_3 = pxDelayedTaskList; _4 = pxDelayedTaskList.108_3->xListEnd.pxNext; _5 = _4->xItemValue; xNextTaskUnblockTime = _5; : return; } prvDeleteTCB (struct TCB_t * pxTCB) { : _1 = pxTCB->pxStack; vPortFree (_1); vPortFree (pxTCB); return; } uxTaskGetStackHighWaterMark (struct tskTaskControlBlock * xTask) { UBaseType_t uxReturn; uint8_t * pucEndOfStack; struct TCB_t * pxTCB; UBaseType_t D.8007; struct TCB_t * iftmp.106; : if (xTask == 0B) goto ; [INV] else goto ; [INV] : iftmp.106 = pxCurrentTCB; goto ; [INV] : iftmp.106 = xTask; : pxTCB = iftmp.106; pucEndOfStack = pxTCB->pxStack; _1 = prvTaskCheckFreeStackSpace (pucEndOfStack); uxReturn = (UBaseType_t) _1; D.8007 = uxReturn; : : return D.8007; } prvTaskCheckFreeStackSpace (const uint8_t * pucStackByte) { uint32_t ulCount; uint16_t D.8001; : ulCount = 0; goto ; [INV] : pucStackByte = pucStackByte + 1; ulCount = ulCount + 1; : _1 = *pucStackByte; if (_1 == 165) goto ; [INV] else goto ; [INV] : ulCount = ulCount / 4; D.8001 = (uint16_t) ulCount; : : return D.8001; } 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; : uxTask = 0; _1 = pxList->uxNumberOfItems; if (_1 != 0) goto ; [INV] else goto ; [INV] : pxConstList = pxList; _2 = pxConstList->pxIndex; _3 = _2->pxNext; pxConstList->pxIndex = _3; _4 = pxConstList->pxIndex; _5 = &pxConstList->xListEnd; if (_4 == _5) goto ; [INV] else goto ; [INV] : _6 = pxConstList->pxIndex; _7 = _6->pxNext; pxConstList->pxIndex = _7; : _8 = pxConstList->pxIndex; pxFirstTCB = _8->pvOwner; : pxConstList = pxList; _9 = pxConstList->pxIndex; _10 = _9->pxNext; pxConstList->pxIndex = _10; _11 = pxConstList->pxIndex; _12 = &pxConstList->xListEnd; if (_11 == _12) goto ; [INV] else goto ; [INV] : _13 = pxConstList->pxIndex; _14 = _13->pxNext; pxConstList->pxIndex = _14; : _15 = pxConstList->pxIndex; pxNextTCB = _15->pvOwner; _16 = uxTask * 36; _17 = pxTaskStatusArray + _16; vTaskGetInfo (pxNextTCB, _17, 1, eState); uxTask = uxTask + 1; if (pxNextTCB != pxFirstTCB) goto ; [INV] else goto ; [INV] : D.7999 = uxTask; : : return D.7999; } vTaskGetInfo (struct tskTaskControlBlock * xTask, struct TaskStatus_t * pxTaskStatus, BaseType_t xGetFreeStackSpace, eTaskState eState) { struct TCB_t * pxTCB; struct TCB_t * iftmp.104; : if (xTask == 0B) goto ; [INV] else goto ; [INV] : iftmp.104 = pxCurrentTCB; goto ; [INV] : iftmp.104 = xTask; : pxTCB = iftmp.104; pxTaskStatus->xHandle = pxTCB; _1 = &pxTCB->pcTaskName[0]; pxTaskStatus->pcTaskName = _1; _2 = pxTCB->uxPriority; pxTaskStatus->uxCurrentPriority = _2; _3 = pxTCB->pxStack; pxTaskStatus->pxStackBase = _3; _4 = pxTCB->uxTCBNumber; pxTaskStatus->xTaskNumber = _4; _5 = pxTCB->uxBasePriority; pxTaskStatus->uxBasePriority = _5; pxTaskStatus->ulRunTimeCounter = 0; if (eState != 5) goto ; [INV] else goto ; [INV] : pxCurrentTCB.105_6 = pxCurrentTCB; if (pxTCB == pxCurrentTCB.105_6) goto ; [INV] else goto ; [INV] : pxTaskStatus->eCurrentState = 0; goto ; [INV] : pxTaskStatus->eCurrentState = eState; if (eState == 3) goto ; [INV] else goto ; [INV] : vTaskSuspendAll (); _7 = pxTCB->xEventListItem.pvContainer; if (_7 != 0B) goto ; [INV] else goto ; [INV] : pxTaskStatus->eCurrentState = 2; : xTaskResumeAll (); goto ; [INV] : _8 = eTaskGetState (pxTCB); pxTaskStatus->eCurrentState = _8; : if (xGetFreeStackSpace != 0) goto ; [INV] else goto ; [INV] : _9 = pxTCB->pxStack; _10 = prvTaskCheckFreeStackSpace (_9); pxTaskStatus->usStackHighWaterMark = _10; goto ; [INV] : pxTaskStatus->usStackHighWaterMark = 0; : return; } prvCheckTasksWaitingTermination () { struct TCB_t * pxTCB; : goto ; [INV] : vPortEnterCritical (); _1 = xTasksWaitingTermination.xListEnd.pxNext; pxTCB = _1->pvOwner; _2 = &pxTCB->xStateListItem; uxListRemove (_2); uxCurrentNumberOfTasks.101_3 = uxCurrentNumberOfTasks; _4 = uxCurrentNumberOfTasks.101_3 + 4294967295; uxCurrentNumberOfTasks = _4; uxDeletedTasksWaitingCleanUp.102_5 = uxDeletedTasksWaitingCleanUp; _6 = uxDeletedTasksWaitingCleanUp.102_5 + 4294967295; uxDeletedTasksWaitingCleanUp = _6; vPortExitCritical (); prvDeleteTCB (pxTCB); : uxDeletedTasksWaitingCleanUp.103_7 = uxDeletedTasksWaitingCleanUp; if (uxDeletedTasksWaitingCleanUp.103_7 != 0) goto ; [INV] else goto ; [INV] : return; } prvInitialiseTaskLists () { UBaseType_t uxPriority; : uxPriority = 0; goto ; [INV] : _1 = &pxReadyTasksLists[uxPriority]; vListInitialise (_1); uxPriority = uxPriority + 1; : if (uxPriority <= 4) goto ; [INV] else goto ; [INV] : vListInitialise (&xDelayedTaskList1); vListInitialise (&xDelayedTaskList2); vListInitialise (&xPendingReadyList); vListInitialise (&xTasksWaitingTermination); vListInitialise (&xSuspendedTaskList); pxDelayedTaskList = &xDelayedTaskList1; pxOverflowDelayedTaskList = &xDelayedTaskList2; return; } prvIdleTask (void * pvParameters) { : prvCheckTasksWaitingTermination (); _1 = pxReadyTasksLists[0].uxNumberOfItems; if (_1 > 1) goto ; [INV] else goto ; [INV] : _2 = 3758157060B; *_2 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : goto ; [INV] } vTaskSetTaskNumber (struct tskTaskControlBlock * xTask, const UBaseType_t uxHandle) { struct TCB_t * pxTCB; : if (xTask != 0B) goto ; [INV] else goto ; [INV] : pxTCB = xTask; pxTCB->uxTaskNumber = uxHandle; : return; } uxTaskGetTaskNumber (struct tskTaskControlBlock * xTask) { const struct TCB_t * pxTCB; UBaseType_t uxReturn; UBaseType_t D.7968; : if (xTask != 0B) goto ; [INV] else goto ; [INV] : pxTCB = xTask; uxReturn = pxTCB->uxTaskNumber; goto ; [INV] : uxReturn = 0; : D.7968 = uxReturn; : : return D.7968; } vTaskMissedYield () { : xYieldPending = 1; return; } xTaskCheckForTimeOut (struct TimeOut_t * const pxTimeOut, TickType_t * const pxTicksToWait) { const TickType_t xElapsedTime; const TickType_t xConstTickCount; BaseType_t xReturn; BaseType_t D.7963; : if (pxTimeOut == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (pxTicksToWait == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vPortEnterCritical (); xConstTickCount = xTickCount; _1 = pxTimeOut->xTimeOnEntering; xElapsedTime = xConstTickCount - _1; pxCurrentTCB.98_2 = pxCurrentTCB; _3 = pxCurrentTCB.98_2->ucDelayAborted; if (_3 != 0) goto ; [INV] else goto ; [INV] : pxCurrentTCB.99_4 = pxCurrentTCB; pxCurrentTCB.99_4->ucDelayAborted = 0; xReturn = 1; goto ; [INV] : _5 = *pxTicksToWait; if (_5 == 4294967295) goto ; [INV] else goto ; [INV] : xReturn = 0; goto ; [INV] : _6 = pxTimeOut->xOverflowCount; xNumOfOverflows.100_7 = xNumOfOverflows; if (_6 != xNumOfOverflows.100_7) goto ; [INV] else goto ; [INV] : _8 = pxTimeOut->xTimeOnEntering; if (xConstTickCount >= _8) goto ; [INV] else goto ; [INV] : xReturn = 1; *pxTicksToWait = 0; goto ; [INV] : _9 = *pxTicksToWait; if (xElapsedTime < _9) goto ; [INV] else goto ; [INV] : _10 = *pxTicksToWait; _11 = _10 - xElapsedTime; *pxTicksToWait = _11; vTaskInternalSetTimeOutState (pxTimeOut); xReturn = 0; goto ; [INV] : *pxTicksToWait = 0; xReturn = 1; : vPortExitCritical (); D.7963 = xReturn; : : return D.7963; } vTaskInternalSetTimeOutState (struct TimeOut_t * const pxTimeOut) { : xNumOfOverflows.96_1 = xNumOfOverflows; pxTimeOut->xOverflowCount = xNumOfOverflows.96_1; xTickCount.97_2 = xTickCount; pxTimeOut->xTimeOnEntering = xTickCount.97_2; return; } vTaskSetTimeOutState (struct TimeOut_t * const pxTimeOut) { : if (pxTimeOut == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vPortEnterCritical (); xNumOfOverflows.94_1 = xNumOfOverflows; pxTimeOut->xOverflowCount = xNumOfOverflows.94_1; xTickCount.95_2 = xTickCount; pxTimeOut->xTimeOnEntering = xTickCount.95_2; vPortExitCritical (); return; } vTaskRemoveFromUnorderedEventList (struct ListItem_t * pxEventListItem, const TickType_t xItemValue) { struct ListItem_t * const pxIndex; struct List_t * const pxList; struct List_t * const pxList; struct TCB_t * pxUnblockedTCB; : uxSchedulerSuspended.91_1 = uxSchedulerSuspended; if (uxSchedulerSuspended.91_1 == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _2 = xItemValue | 2147483648; pxEventListItem->xItemValue = _2; pxUnblockedTCB = pxEventListItem->pvOwner; if (pxUnblockedTCB == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : pxList = pxEventListItem->pvContainer; _3 = pxEventListItem->pxNext; _4 = pxEventListItem->pxPrevious; _3->pxPrevious = _4; _5 = pxEventListItem->pxPrevious; _6 = pxEventListItem->pxNext; _5->pxNext = _6; _7 = pxList->pxIndex; if (pxEventListItem == _7) goto ; [INV] else goto ; [INV] : _8 = pxEventListItem->pxPrevious; pxList->pxIndex = _8; : pxEventListItem->pvContainer = 0B; _9 = pxList->uxNumberOfItems; _10 = _9 + 4294967295; pxList->uxNumberOfItems = _10; pxList = pxUnblockedTCB->xStateListItem.pvContainer; _11 = pxUnblockedTCB->xStateListItem.pxNext; _12 = pxUnblockedTCB->xStateListItem.pxPrevious; _11->pxPrevious = _12; _13 = pxUnblockedTCB->xStateListItem.pxPrevious; _14 = pxUnblockedTCB->xStateListItem.pxNext; _13->pxNext = _14; _15 = pxList->pxIndex; _16 = &pxUnblockedTCB->xStateListItem; if (_15 == _16) goto ; [INV] else goto ; [INV] : _17 = pxUnblockedTCB->xStateListItem.pxPrevious; pxList->pxIndex = _17; : pxUnblockedTCB->xStateListItem.pvContainer = 0B; _18 = pxList->uxNumberOfItems; _19 = _18 + 4294967295; pxList->uxNumberOfItems = _19; _20 = pxUnblockedTCB->uxPriority; uxTopReadyPriority.92_21 = uxTopReadyPriority; if (_20 > uxTopReadyPriority.92_21) goto ; [INV] else goto ; [INV] : _22 = pxUnblockedTCB->uxPriority; uxTopReadyPriority = _22; : _23 = pxUnblockedTCB->uxPriority; pxIndex = pxReadyTasksLists[_23].pxIndex; pxUnblockedTCB->xStateListItem.pxNext = pxIndex; _24 = pxIndex->pxPrevious; pxUnblockedTCB->xStateListItem.pxPrevious = _24; _25 = pxIndex->pxPrevious; _26 = &pxUnblockedTCB->xStateListItem; _25->pxNext = _26; _27 = &pxUnblockedTCB->xStateListItem; pxIndex->pxPrevious = _27; _28 = pxUnblockedTCB->uxPriority; _29 = &pxReadyTasksLists[_28]; pxUnblockedTCB->xStateListItem.pvContainer = _29; _30 = pxUnblockedTCB->uxPriority; _31 = pxReadyTasksLists[_30].uxNumberOfItems; _32 = _31 + 1; pxReadyTasksLists[_30].uxNumberOfItems = _32; _33 = pxUnblockedTCB->uxPriority; pxCurrentTCB.93_34 = pxCurrentTCB; _35 = pxCurrentTCB.93_34->uxPriority; if (_33 > _35) goto ; [INV] else goto ; [INV] : xYieldPending = 1; : return; } xTaskRemoveFromEventList (const struct List_t * const pxEventList) { 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; : _1 = pxEventList->xListEnd.pxNext; pxUnblockedTCB = _1->pvOwner; if (pxUnblockedTCB == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : pxList = pxUnblockedTCB->xEventListItem.pvContainer; _2 = pxUnblockedTCB->xEventListItem.pxNext; _3 = pxUnblockedTCB->xEventListItem.pxPrevious; _2->pxPrevious = _3; _4 = pxUnblockedTCB->xEventListItem.pxPrevious; _5 = pxUnblockedTCB->xEventListItem.pxNext; _4->pxNext = _5; _6 = pxList->pxIndex; _7 = &pxUnblockedTCB->xEventListItem; if (_6 == _7) goto ; [INV] else goto ; [INV] : _8 = pxUnblockedTCB->xEventListItem.pxPrevious; pxList->pxIndex = _8; : pxUnblockedTCB->xEventListItem.pvContainer = 0B; _9 = pxList->uxNumberOfItems; _10 = _9 + 4294967295; pxList->uxNumberOfItems = _10; uxSchedulerSuspended.88_11 = uxSchedulerSuspended; if (uxSchedulerSuspended.88_11 == 0) goto ; [INV] else goto ; [INV] : pxList = pxUnblockedTCB->xStateListItem.pvContainer; _12 = pxUnblockedTCB->xStateListItem.pxNext; _13 = pxUnblockedTCB->xStateListItem.pxPrevious; _12->pxPrevious = _13; _14 = pxUnblockedTCB->xStateListItem.pxPrevious; _15 = pxUnblockedTCB->xStateListItem.pxNext; _14->pxNext = _15; _16 = pxList->pxIndex; _17 = &pxUnblockedTCB->xStateListItem; if (_16 == _17) goto ; [INV] else goto ; [INV] : _18 = pxUnblockedTCB->xStateListItem.pxPrevious; pxList->pxIndex = _18; : pxUnblockedTCB->xStateListItem.pvContainer = 0B; _19 = pxList->uxNumberOfItems; _20 = _19 + 4294967295; pxList->uxNumberOfItems = _20; _21 = pxUnblockedTCB->uxPriority; uxTopReadyPriority.89_22 = uxTopReadyPriority; if (_21 > uxTopReadyPriority.89_22) goto ; [INV] else goto ; [INV] : _23 = pxUnblockedTCB->uxPriority; uxTopReadyPriority = _23; : _24 = pxUnblockedTCB->uxPriority; pxIndex = pxReadyTasksLists[_24].pxIndex; pxUnblockedTCB->xStateListItem.pxNext = pxIndex; _25 = pxIndex->pxPrevious; pxUnblockedTCB->xStateListItem.pxPrevious = _25; _26 = pxIndex->pxPrevious; _27 = &pxUnblockedTCB->xStateListItem; _26->pxNext = _27; _28 = &pxUnblockedTCB->xStateListItem; pxIndex->pxPrevious = _28; _29 = pxUnblockedTCB->uxPriority; _30 = &pxReadyTasksLists[_29]; pxUnblockedTCB->xStateListItem.pvContainer = _30; _31 = pxUnblockedTCB->uxPriority; _32 = pxReadyTasksLists[_31].uxNumberOfItems; _33 = _32 + 1; pxReadyTasksLists[_31].uxNumberOfItems = _33; goto ; [INV] : pxIndex = xPendingReadyList.pxIndex; pxUnblockedTCB->xEventListItem.pxNext = pxIndex; _34 = pxIndex->pxPrevious; pxUnblockedTCB->xEventListItem.pxPrevious = _34; _35 = pxIndex->pxPrevious; _36 = &pxUnblockedTCB->xEventListItem; _35->pxNext = _36; _37 = &pxUnblockedTCB->xEventListItem; pxIndex->pxPrevious = _37; pxUnblockedTCB->xEventListItem.pvContainer = &xPendingReadyList; _38 = xPendingReadyList.uxNumberOfItems; _39 = _38 + 1; xPendingReadyList.uxNumberOfItems = _39; : _40 = pxUnblockedTCB->uxPriority; pxCurrentTCB.90_41 = pxCurrentTCB; _42 = pxCurrentTCB.90_41->uxPriority; if (_40 > _42) goto ; [INV] else goto ; [INV] : xReturn = 1; xYieldPending = 1; goto ; [INV] : xReturn = 0; : D.7930 = xReturn; : : return D.7930; } vTaskPlaceOnEventListRestricted (struct List_t * const pxEventList, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely) { struct ListItem_t * const pxIndex; : if (pxEventList == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : pxIndex = pxEventList->pxIndex; pxCurrentTCB.83_1 = pxCurrentTCB; pxCurrentTCB.83_1->xEventListItem.pxNext = pxIndex; pxCurrentTCB.84_2 = pxCurrentTCB; _3 = pxIndex->pxPrevious; pxCurrentTCB.84_2->xEventListItem.pxPrevious = _3; pxCurrentTCB.85_4 = pxCurrentTCB; _5 = pxIndex->pxPrevious; _6 = &pxCurrentTCB.85_4->xEventListItem; _5->pxNext = _6; pxCurrentTCB.86_7 = pxCurrentTCB; _8 = &pxCurrentTCB.86_7->xEventListItem; pxIndex->pxPrevious = _8; pxCurrentTCB.87_9 = pxCurrentTCB; pxCurrentTCB.87_9->xEventListItem.pvContainer = pxEventList; _10 = pxEventList->uxNumberOfItems; _11 = _10 + 1; pxEventList->uxNumberOfItems = _11; if (xWaitIndefinitely != 0) goto ; [INV] else goto ; [INV] : xTicksToWait = 4294967295; : prvAddCurrentTaskToDelayedList (xTicksToWait, xWaitIndefinitely); return; } vTaskPlaceOnUnorderedEventList (struct List_t * pxEventList, const TickType_t xItemValue, const TickType_t xTicksToWait) { struct ListItem_t * const pxIndex; : if (pxEventList == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : uxSchedulerSuspended.76_1 = uxSchedulerSuspended; if (uxSchedulerSuspended.76_1 == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : pxCurrentTCB.77_2 = pxCurrentTCB; _3 = xItemValue | 2147483648; pxCurrentTCB.77_2->xEventListItem.xItemValue = _3; pxIndex = pxEventList->pxIndex; pxCurrentTCB.78_4 = pxCurrentTCB; pxCurrentTCB.78_4->xEventListItem.pxNext = pxIndex; pxCurrentTCB.79_5 = pxCurrentTCB; _6 = pxIndex->pxPrevious; pxCurrentTCB.79_5->xEventListItem.pxPrevious = _6; pxCurrentTCB.80_7 = pxCurrentTCB; _8 = pxIndex->pxPrevious; _9 = &pxCurrentTCB.80_7->xEventListItem; _8->pxNext = _9; pxCurrentTCB.81_10 = pxCurrentTCB; _11 = &pxCurrentTCB.81_10->xEventListItem; pxIndex->pxPrevious = _11; pxCurrentTCB.82_12 = pxCurrentTCB; pxCurrentTCB.82_12->xEventListItem.pvContainer = pxEventList; _13 = pxEventList->uxNumberOfItems; _14 = _13 + 1; pxEventList->uxNumberOfItems = _14; prvAddCurrentTaskToDelayedList (xTicksToWait, 1); return; } vTaskPlaceOnEventList (struct List_t * const pxEventList, const TickType_t xTicksToWait) { : if (pxEventList == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : pxCurrentTCB.75_1 = pxCurrentTCB; _2 = &pxCurrentTCB.75_1->xEventListItem; vListInsert (pxEventList, _2); prvAddCurrentTaskToDelayedList (xTicksToWait, 1); return; } __attribute__((used)) vTaskSwitchContext () { struct List_t * const pxConstList; UBaseType_t uxTopPriority; : uxSchedulerSuspended.74_1 = uxSchedulerSuspended; if (uxSchedulerSuspended.74_1 != 0) goto ; [INV] else goto ; [INV] : xYieldPending = 1; goto ; [INV] : xYieldPending = 0; uxTopPriority = uxTopReadyPriority; goto ; [INV] : if (uxTopPriority == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : uxTopPriority = uxTopPriority + 4294967295; : _2 = pxReadyTasksLists[uxTopPriority].uxNumberOfItems; if (_2 == 0) goto ; [INV] else goto ; [INV] : pxConstList = &pxReadyTasksLists[uxTopPriority]; _3 = pxConstList->pxIndex; _4 = _3->pxNext; pxConstList->pxIndex = _4; _5 = pxConstList->pxIndex; _6 = &pxConstList->xListEnd; if (_5 == _6) goto ; [INV] else goto ; [INV] : _7 = pxConstList->pxIndex; _8 = _7->pxNext; pxConstList->pxIndex = _8; : _9 = pxConstList->pxIndex; _10 = _9->pvOwner; pxCurrentTCB = _10; uxTopReadyPriority = uxTopPriority; : return; } xTaskIncrementTick () { 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; : xSwitchRequired = 0; uxSchedulerSuspended.61_1 = uxSchedulerSuspended; if (uxSchedulerSuspended.61_1 == 0) goto ; [INV] else goto ; [INV] : xTickCount.62_2 = xTickCount; xConstTickCount = xTickCount.62_2 + 1; xTickCount = xConstTickCount; if (xConstTickCount == 0) goto ; [INV] else goto ; [INV] : pxDelayedTaskList.63_3 = pxDelayedTaskList; _4 = pxDelayedTaskList.63_3->uxNumberOfItems; if (_4 != 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : pxTemp = pxDelayedTaskList; pxOverflowDelayedTaskList.64_5 = pxOverflowDelayedTaskList; pxDelayedTaskList = pxOverflowDelayedTaskList.64_5; pxOverflowDelayedTaskList = pxTemp; xNumOfOverflows.65_6 = xNumOfOverflows; _7 = xNumOfOverflows.65_6 + 1; xNumOfOverflows = _7; prvResetNextTaskUnblockTime (); : xNextTaskUnblockTime.66_8 = xNextTaskUnblockTime; if (xConstTickCount >= xNextTaskUnblockTime.66_8) goto ; [INV] else goto ; [INV] : pxDelayedTaskList.67_9 = pxDelayedTaskList; _10 = pxDelayedTaskList.67_9->uxNumberOfItems; if (_10 == 0) goto ; [INV] else goto ; [INV] : xNextTaskUnblockTime = 4294967295; goto ; [INV] : pxDelayedTaskList.68_11 = pxDelayedTaskList; _12 = pxDelayedTaskList.68_11->xListEnd.pxNext; pxTCB = _12->pvOwner; xItemValue = pxTCB->xStateListItem.xItemValue; if (xConstTickCount < xItemValue) goto ; [INV] else goto ; [INV] : xNextTaskUnblockTime = xItemValue; goto ; [INV] : pxList = pxTCB->xStateListItem.pvContainer; _13 = pxTCB->xStateListItem.pxNext; _14 = pxTCB->xStateListItem.pxPrevious; _13->pxPrevious = _14; _15 = pxTCB->xStateListItem.pxPrevious; _16 = pxTCB->xStateListItem.pxNext; _15->pxNext = _16; _17 = pxList->pxIndex; _18 = &pxTCB->xStateListItem; if (_17 == _18) goto ; [INV] else goto ; [INV] : _19 = pxTCB->xStateListItem.pxPrevious; pxList->pxIndex = _19; : pxTCB->xStateListItem.pvContainer = 0B; _20 = pxList->uxNumberOfItems; _21 = _20 + 4294967295; pxList->uxNumberOfItems = _21; _22 = pxTCB->xEventListItem.pvContainer; if (_22 != 0B) goto ; [INV] else goto ; [INV] : pxList = pxTCB->xEventListItem.pvContainer; _23 = pxTCB->xEventListItem.pxNext; _24 = pxTCB->xEventListItem.pxPrevious; _23->pxPrevious = _24; _25 = pxTCB->xEventListItem.pxPrevious; _26 = pxTCB->xEventListItem.pxNext; _25->pxNext = _26; _27 = pxList->pxIndex; _28 = &pxTCB->xEventListItem; if (_27 == _28) goto ; [INV] else goto ; [INV] : _29 = pxTCB->xEventListItem.pxPrevious; pxList->pxIndex = _29; : pxTCB->xEventListItem.pvContainer = 0B; _30 = pxList->uxNumberOfItems; _31 = _30 + 4294967295; pxList->uxNumberOfItems = _31; : _32 = pxTCB->uxPriority; uxTopReadyPriority.69_33 = uxTopReadyPriority; if (_32 > uxTopReadyPriority.69_33) goto ; [INV] else goto ; [INV] : _34 = pxTCB->uxPriority; uxTopReadyPriority = _34; : _35 = pxTCB->uxPriority; pxIndex = pxReadyTasksLists[_35].pxIndex; pxTCB->xStateListItem.pxNext = pxIndex; _36 = pxIndex->pxPrevious; pxTCB->xStateListItem.pxPrevious = _36; _37 = pxIndex->pxPrevious; _38 = &pxTCB->xStateListItem; _37->pxNext = _38; _39 = &pxTCB->xStateListItem; pxIndex->pxPrevious = _39; _40 = pxTCB->uxPriority; _41 = &pxReadyTasksLists[_40]; pxTCB->xStateListItem.pvContainer = _41; _42 = pxTCB->uxPriority; _43 = pxReadyTasksLists[_42].uxNumberOfItems; _44 = _43 + 1; pxReadyTasksLists[_42].uxNumberOfItems = _44; _45 = pxTCB->uxPriority; pxCurrentTCB.70_46 = pxCurrentTCB; _47 = pxCurrentTCB.70_46->uxPriority; if (_45 >= _47) goto ; [INV] else goto ; [INV] : xSwitchRequired = 1; : goto ; [INV] : pxCurrentTCB.71_48 = pxCurrentTCB; _49 = pxCurrentTCB.71_48->uxPriority; _50 = pxReadyTasksLists[_49].uxNumberOfItems; if (_50 > 1) goto ; [INV] else goto ; [INV] : xSwitchRequired = 1; : xYieldPending.72_51 = xYieldPending; if (xYieldPending.72_51 != 0) goto ; [INV] else goto ; [INV] : xSwitchRequired = 1; goto ; [INV] : xPendedTicks.73_52 = xPendedTicks; _53 = xPendedTicks.73_52 + 1; xPendedTicks = _53; : D.7897 = xSwitchRequired; : : return D.7897; } xTaskAbortDelay (struct tskTaskControlBlock * xTask) { struct ListItem_t * const pxIndex; BaseType_t xReturn; struct TCB_t * pxTCB; BaseType_t D.7863; : pxTCB = xTask; if (pxTCB == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vTaskSuspendAll (); _1 = eTaskGetState (xTask); if (_1 == 2) goto ; [INV] else goto ; [INV] : xReturn = 1; _2 = &pxTCB->xStateListItem; uxListRemove (_2); vPortEnterCritical (); _3 = pxTCB->xEventListItem.pvContainer; if (_3 != 0B) goto ; [INV] else goto ; [INV] : _4 = &pxTCB->xEventListItem; uxListRemove (_4); pxTCB->ucDelayAborted = 1; : vPortExitCritical (); _5 = pxTCB->uxPriority; uxTopReadyPriority.59_6 = uxTopReadyPriority; if (_5 > uxTopReadyPriority.59_6) goto ; [INV] else goto ; [INV] : _7 = pxTCB->uxPriority; uxTopReadyPriority = _7; : _8 = pxTCB->uxPriority; pxIndex = pxReadyTasksLists[_8].pxIndex; pxTCB->xStateListItem.pxNext = pxIndex; _9 = pxIndex->pxPrevious; pxTCB->xStateListItem.pxPrevious = _9; _10 = pxIndex->pxPrevious; _11 = &pxTCB->xStateListItem; _10->pxNext = _11; _12 = &pxTCB->xStateListItem; pxIndex->pxPrevious = _12; _13 = pxTCB->uxPriority; _14 = &pxReadyTasksLists[_13]; pxTCB->xStateListItem.pvContainer = _14; _15 = pxTCB->uxPriority; _16 = pxReadyTasksLists[_15].uxNumberOfItems; _17 = _16 + 1; pxReadyTasksLists[_15].uxNumberOfItems = _17; _18 = pxTCB->uxPriority; pxCurrentTCB.60_19 = pxCurrentTCB; _20 = pxCurrentTCB.60_19->uxPriority; if (_18 > _20) goto ; [INV] else goto ; [INV] : xYieldPending = 1; goto ; [INV] : xReturn = 0; : xTaskResumeAll (); D.7863 = xReturn; : : return D.7863; } xTaskCatchUpTicks (TickType_t xTicksToCatchUp) { BaseType_t xYieldOccurred; BaseType_t D.7848; : uxSchedulerSuspended.57_1 = uxSchedulerSuspended; if (uxSchedulerSuspended.57_1 != 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vTaskSuspendAll (); xPendedTicks.58_2 = xPendedTicks; _3 = xTicksToCatchUp + xPendedTicks.58_2; xPendedTicks = _3; xYieldOccurred = xTaskResumeAll (); D.7848 = xYieldOccurred; : : return D.7848; } 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; : uxTask = 0; uxQueue = 5; vTaskSuspendAll (); uxCurrentNumberOfTasks.54_1 = uxCurrentNumberOfTasks; if (uxArraySize >= uxCurrentNumberOfTasks.54_1) goto ; [INV] else goto ; [INV] : uxQueue = uxQueue + 4294967295; _2 = uxTask * 36; _3 = pxTaskStatusArray + _2; _4 = &pxReadyTasksLists[uxQueue]; D.7836 = prvListTasksWithinSingleList (_3, _4, 1); uxTask = D.7836 + uxTask; if (uxQueue != 0) goto ; [INV] else goto ; [INV] : _5 = uxTask * 36; _6 = pxTaskStatusArray + _5; pxDelayedTaskList.55_7 = pxDelayedTaskList; D.7837 = prvListTasksWithinSingleList (_6, pxDelayedTaskList.55_7, 2); uxTask = D.7837 + uxTask; _8 = uxTask * 36; _9 = pxTaskStatusArray + _8; pxOverflowDelayedTaskList.56_10 = pxOverflowDelayedTaskList; D.7838 = prvListTasksWithinSingleList (_9, pxOverflowDelayedTaskList.56_10, 2); uxTask = D.7838 + uxTask; _11 = uxTask * 36; _12 = pxTaskStatusArray + _11; D.7839 = prvListTasksWithinSingleList (_12, &xTasksWaitingTermination, 4); uxTask = D.7839 + uxTask; _13 = uxTask * 36; _14 = pxTaskStatusArray + _13; D.7840 = prvListTasksWithinSingleList (_14, &xSuspendedTaskList, 3); uxTask = D.7840 + uxTask; if (pulTotalRunTime != 0B) goto ; [INV] else goto ; [INV] : *pulTotalRunTime = 0; : xTaskResumeAll (); D.7844 = uxTask; : : return D.7844; } xTaskGetHandle (const char * pcNameToQuery) { struct TCB_t * pxTCB; UBaseType_t uxQueue; struct tskTaskControlBlock * D.7832; : uxQueue = 5; _1 = strlen (pcNameToQuery); if (_1 > 9) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vTaskSuspendAll (); : uxQueue = uxQueue + 4294967295; _2 = &pxReadyTasksLists[uxQueue]; pxTCB = prvSearchForNameWithinSingleList (_2, pcNameToQuery); if (pxTCB != 0B) goto ; [INV] else goto ; [INV] : goto ; [INV] : if (uxQueue != 0) goto ; [INV] else goto ; [INV] : if (pxTCB == 0B) goto ; [INV] else goto ; [INV] : pxDelayedTaskList.52_3 = pxDelayedTaskList; pxTCB = prvSearchForNameWithinSingleList (pxDelayedTaskList.52_3, pcNameToQuery); : if (pxTCB == 0B) goto ; [INV] else goto ; [INV] : pxOverflowDelayedTaskList.53_4 = pxOverflowDelayedTaskList; pxTCB = prvSearchForNameWithinSingleList (pxOverflowDelayedTaskList.53_4, pcNameToQuery); : if (pxTCB == 0B) goto ; [INV] else goto ; [INV] : pxTCB = prvSearchForNameWithinSingleList (&xSuspendedTaskList, pcNameToQuery); : if (pxTCB == 0B) goto ; [INV] else goto ; [INV] : pxTCB = prvSearchForNameWithinSingleList (&xTasksWaitingTermination, pcNameToQuery); : xTaskResumeAll (); D.7832 = pxTCB; : : return D.7832; } 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; : pxReturn = 0B; _1 = pxList->uxNumberOfItems; if (_1 != 0) goto ; [INV] else goto ; [INV] : pxConstList = pxList; _2 = pxConstList->pxIndex; _3 = _2->pxNext; pxConstList->pxIndex = _3; _4 = pxConstList->pxIndex; _5 = &pxConstList->xListEnd; if (_4 == _5) goto ; [INV] else goto ; [INV] : _6 = pxConstList->pxIndex; _7 = _6->pxNext; pxConstList->pxIndex = _7; : _8 = pxConstList->pxIndex; pxFirstTCB = _8->pvOwner; : pxConstList = pxList; _9 = pxConstList->pxIndex; _10 = _9->pxNext; pxConstList->pxIndex = _10; _11 = pxConstList->pxIndex; _12 = &pxConstList->xListEnd; if (_11 == _12) goto ; [INV] else goto ; [INV] : _13 = pxConstList->pxIndex; _14 = _13->pxNext; pxConstList->pxIndex = _14; : _15 = pxConstList->pxIndex; pxNextTCB = _15->pvOwner; xBreakLoop = 0; x = 0; goto ; [INV] : cNextChar = pxNextTCB->pcTaskName[x]; _16 = pcNameToQuery + x; _17 = *_16; if (cNextChar != _17) goto ; [INV] else goto ; [INV] : xBreakLoop = 1; goto ; [INV] : if (cNextChar == 0) goto ; [INV] else goto ; [INV] : pxReturn = pxNextTCB; xBreakLoop = 1; : if (xBreakLoop != 0) goto ; [INV] else goto ; [INV] : goto ; [INV] : x = x + 1; : if (x <= 9) goto ; [INV] else goto ; [INV] : if (pxReturn != 0B) goto ; [INV] else goto ; [INV] : goto ; [INV] : if (pxNextTCB != pxFirstTCB) goto ; [INV] else goto ; [INV] : : D.7818 = pxReturn; : : return D.7818; } pcTaskGetName (struct tskTaskControlBlock * xTaskToQuery) { struct TCB_t * pxTCB; char * D.7799; struct TCB_t * iftmp.51; : if (xTaskToQuery == 0B) goto ; [INV] else goto ; [INV] : iftmp.51 = pxCurrentTCB; goto ; [INV] : iftmp.51 = xTaskToQuery; : pxTCB = iftmp.51; if (pxTCB == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : D.7799 = &pxTCB->pcTaskName[0]; : : return D.7799; } uxTaskGetNumberOfTasks () { UBaseType_t D.7791; : D.7791 = uxCurrentNumberOfTasks; : : return D.7791; } xTaskGetTickCountFromISR () { UBaseType_t uxSavedInterruptStatus; TickType_t xReturn; TickType_t D.7789; : vPortValidateInterruptPriority (); uxSavedInterruptStatus = 0; xReturn = xTickCount; D.7789 = xReturn; : : return D.7789; } xTaskGetTickCount () { TickType_t xTicks; TickType_t D.7787; : xTicks = xTickCount; D.7787 = xTicks; : : return D.7787; } xTaskResumeAll () { 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; : pxTCB = 0B; xAlreadyYielded = 0; uxSchedulerSuspended.44_1 = uxSchedulerSuspended; if (uxSchedulerSuspended.44_1 == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vPortEnterCritical (); uxSchedulerSuspended.45_2 = uxSchedulerSuspended; _3 = uxSchedulerSuspended.45_2 + 4294967295; uxSchedulerSuspended = _3; uxSchedulerSuspended.46_4 = uxSchedulerSuspended; if (uxSchedulerSuspended.46_4 == 0) goto ; [INV] else goto ; [INV] : uxCurrentNumberOfTasks.47_5 = uxCurrentNumberOfTasks; if (uxCurrentNumberOfTasks.47_5 != 0) goto ; [INV] else goto ; [INV] : goto ; [INV] : _6 = xPendingReadyList.xListEnd.pxNext; pxTCB = _6->pvOwner; pxList = pxTCB->xEventListItem.pvContainer; _7 = pxTCB->xEventListItem.pxNext; _8 = pxTCB->xEventListItem.pxPrevious; _7->pxPrevious = _8; _9 = pxTCB->xEventListItem.pxPrevious; _10 = pxTCB->xEventListItem.pxNext; _9->pxNext = _10; _11 = pxList->pxIndex; _12 = &pxTCB->xEventListItem; if (_11 == _12) goto ; [INV] else goto ; [INV] : _13 = pxTCB->xEventListItem.pxPrevious; pxList->pxIndex = _13; : pxTCB->xEventListItem.pvContainer = 0B; _14 = pxList->uxNumberOfItems; _15 = _14 + 4294967295; pxList->uxNumberOfItems = _15; __asm__ __volatile__("" : : : "memory"); pxList = pxTCB->xStateListItem.pvContainer; _16 = pxTCB->xStateListItem.pxNext; _17 = pxTCB->xStateListItem.pxPrevious; _16->pxPrevious = _17; _18 = pxTCB->xStateListItem.pxPrevious; _19 = pxTCB->xStateListItem.pxNext; _18->pxNext = _19; _20 = pxList->pxIndex; _21 = &pxTCB->xStateListItem; if (_20 == _21) goto ; [INV] else goto ; [INV] : _22 = pxTCB->xStateListItem.pxPrevious; pxList->pxIndex = _22; : pxTCB->xStateListItem.pvContainer = 0B; _23 = pxList->uxNumberOfItems; _24 = _23 + 4294967295; pxList->uxNumberOfItems = _24; _25 = pxTCB->uxPriority; uxTopReadyPriority.48_26 = uxTopReadyPriority; if (_25 > uxTopReadyPriority.48_26) goto ; [INV] else goto ; [INV] : _27 = pxTCB->uxPriority; uxTopReadyPriority = _27; : _28 = pxTCB->uxPriority; pxIndex = pxReadyTasksLists[_28].pxIndex; pxTCB->xStateListItem.pxNext = pxIndex; _29 = pxIndex->pxPrevious; pxTCB->xStateListItem.pxPrevious = _29; _30 = pxIndex->pxPrevious; _31 = &pxTCB->xStateListItem; _30->pxNext = _31; _32 = &pxTCB->xStateListItem; pxIndex->pxPrevious = _32; _33 = pxTCB->uxPriority; _34 = &pxReadyTasksLists[_33]; pxTCB->xStateListItem.pvContainer = _34; _35 = pxTCB->uxPriority; _36 = pxReadyTasksLists[_35].uxNumberOfItems; _37 = _36 + 1; pxReadyTasksLists[_35].uxNumberOfItems = _37; _38 = pxTCB->uxPriority; pxCurrentTCB.49_39 = pxCurrentTCB; _40 = pxCurrentTCB.49_39->uxPriority; if (_38 >= _40) goto ; [INV] else goto ; [INV] : xYieldPending = 1; : _41 = xPendingReadyList.uxNumberOfItems; if (_41 != 0) goto ; [INV] else goto ; [INV] : if (pxTCB != 0B) goto ; [INV] else goto ; [INV] : prvResetNextTaskUnblockTime (); : xPendedCounts = xPendedTicks; if (xPendedCounts != 0) goto ; [INV] else goto ; [INV] : _42 = xTaskIncrementTick (); if (_42 != 0) goto ; [INV] else goto ; [INV] : xYieldPending = 1; : xPendedCounts = xPendedCounts + 4294967295; if (xPendedCounts != 0) goto ; [INV] else goto ; [INV] : xPendedTicks = 0; : xYieldPending.50_43 = xYieldPending; if (xYieldPending.50_43 != 0) goto ; [INV] else goto ; [INV] : xAlreadyYielded = 1; _44 = 3758157060B; *_44 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : vPortExitCritical (); D.7785 = xAlreadyYielded; : : return D.7785; } vTaskSuspendAll () { : uxSchedulerSuspended.43_1 = uxSchedulerSuspended; _2 = uxSchedulerSuspended.43_1 + 1; uxSchedulerSuspended = _2; __asm__ __volatile__("" : : : "memory"); return; } vTaskEndScheduler () { : vPortRaiseBASEPRI (); xSchedulerRunning = 0; vPortEndScheduler (); return; } vTaskStartScheduler () { BaseType_t xReturn; long unsigned int vol.42; : xReturn = xTaskCreate (prvIdleTask, "IDLE", 90, 0B, 0, &xIdleTaskHandle); if (xReturn == 1) goto ; [INV] else goto ; [INV] : xReturn = xTimerCreateTimerTask (); : if (xReturn == 1) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); xNextTaskUnblockTime = 4294967295; xSchedulerRunning = 1; xTickCount = 0; _1 = xPortStartScheduler (); goto ; [INV] : if (xReturn == -1) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vol.42 = uxTopUsedPriority; return; } xTaskResumeFromISR (struct tskTaskControlBlock * xTaskToResume) { struct ListItem_t * const pxIndex; UBaseType_t uxSavedInterruptStatus; struct TCB_t * const pxTCB; BaseType_t xYieldRequired; BaseType_t D.7744; : xYieldRequired = 0; pxTCB = xTaskToResume; if (xTaskToResume == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vPortValidateInterruptPriority (); uxSavedInterruptStatus = ulPortRaiseBASEPRI (); _1 = prvTaskIsTaskSuspended (pxTCB); if (_1 != 0) goto ; [INV] else goto ; [INV] : uxSchedulerSuspended.39_2 = uxSchedulerSuspended; if (uxSchedulerSuspended.39_2 == 0) goto ; [INV] else goto ; [INV] : _3 = pxTCB->uxPriority; pxCurrentTCB.40_4 = pxCurrentTCB; _5 = pxCurrentTCB.40_4->uxPriority; if (_3 >= _5) goto ; [INV] else goto ; [INV] : xYieldRequired = 1; xYieldPending = 1; : _6 = &pxTCB->xStateListItem; uxListRemove (_6); _7 = pxTCB->uxPriority; uxTopReadyPriority.41_8 = uxTopReadyPriority; if (_7 > uxTopReadyPriority.41_8) goto ; [INV] else goto ; [INV] : _9 = pxTCB->uxPriority; uxTopReadyPriority = _9; : _10 = pxTCB->uxPriority; pxIndex = pxReadyTasksLists[_10].pxIndex; pxTCB->xStateListItem.pxNext = pxIndex; _11 = pxIndex->pxPrevious; pxTCB->xStateListItem.pxPrevious = _11; _12 = pxIndex->pxPrevious; _13 = &pxTCB->xStateListItem; _12->pxNext = _13; _14 = &pxTCB->xStateListItem; pxIndex->pxPrevious = _14; _15 = pxTCB->uxPriority; _16 = &pxReadyTasksLists[_15]; pxTCB->xStateListItem.pvContainer = _16; _17 = pxTCB->uxPriority; _18 = pxReadyTasksLists[_17].uxNumberOfItems; _19 = _18 + 1; pxReadyTasksLists[_17].uxNumberOfItems = _19; goto ; [INV] : _20 = &pxTCB->xEventListItem; vListInsertEnd (&xPendingReadyList, _20); : vPortSetBASEPRI (uxSavedInterruptStatus); D.7744 = xYieldRequired; : : return D.7744; } vTaskResume (struct tskTaskControlBlock * xTaskToResume) { struct ListItem_t * const pxIndex; struct TCB_t * const pxTCB; : pxTCB = xTaskToResume; if (xTaskToResume == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : pxCurrentTCB.36_1 = pxCurrentTCB; if (pxTCB != pxCurrentTCB.36_1) goto ; [INV] else goto ; [INV] : if (pxTCB != 0B) goto ; [INV] else goto ; [INV] : vPortEnterCritical (); _2 = prvTaskIsTaskSuspended (pxTCB); if (_2 != 0) goto ; [INV] else goto ; [INV] : _3 = &pxTCB->xStateListItem; uxListRemove (_3); _4 = pxTCB->uxPriority; uxTopReadyPriority.37_5 = uxTopReadyPriority; if (_4 > uxTopReadyPriority.37_5) goto ; [INV] else goto ; [INV] : _6 = pxTCB->uxPriority; uxTopReadyPriority = _6; : _7 = pxTCB->uxPriority; pxIndex = pxReadyTasksLists[_7].pxIndex; pxTCB->xStateListItem.pxNext = pxIndex; _8 = pxIndex->pxPrevious; pxTCB->xStateListItem.pxPrevious = _8; _9 = pxIndex->pxPrevious; _10 = &pxTCB->xStateListItem; _9->pxNext = _10; _11 = &pxTCB->xStateListItem; pxIndex->pxPrevious = _11; _12 = pxTCB->uxPriority; _13 = &pxReadyTasksLists[_12]; pxTCB->xStateListItem.pvContainer = _13; _14 = pxTCB->uxPriority; _15 = pxReadyTasksLists[_14].uxNumberOfItems; _16 = _15 + 1; pxReadyTasksLists[_14].uxNumberOfItems = _16; _17 = pxTCB->uxPriority; pxCurrentTCB.38_18 = pxCurrentTCB; _19 = pxCurrentTCB.38_18->uxPriority; if (_17 >= _19) goto ; [INV] else goto ; [INV] : _20 = 3758157060B; *_20 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : vPortExitCritical (); : return; } prvTaskIsTaskSuspended (struct tskTaskControlBlock * const xTask) { const struct TCB_t * const pxTCB; BaseType_t xReturn; BaseType_t D.7714; : xReturn = 0; pxTCB = xTask; if (xTask == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _1 = pxTCB->xStateListItem.pvContainer; if (_1 == &xSuspendedTaskList) goto ; [INV] else goto ; [INV] : _2 = pxTCB->xEventListItem.pvContainer; if (_2 != &xPendingReadyList) goto ; [INV] else goto ; [INV] : _3 = pxTCB->xEventListItem.pvContainer; if (_3 == 0B) goto ; [INV] else goto ; [INV] : xReturn = 1; : D.7714 = xReturn; : : return D.7714; } vTaskSuspend (struct tskTaskControlBlock * xTaskToSuspend) { BaseType_t x; struct TCB_t * pxTCB; struct TCB_t * iftmp.30; : vPortEnterCritical (); if (xTaskToSuspend == 0B) goto ; [INV] else goto ; [INV] : iftmp.30 = pxCurrentTCB; goto ; [INV] : iftmp.30 = xTaskToSuspend; : pxTCB = iftmp.30; _1 = &pxTCB->xStateListItem; _2 = uxListRemove (_1); : _3 = pxTCB->xEventListItem.pvContainer; if (_3 != 0B) goto ; [INV] else goto ; [INV] : _4 = &pxTCB->xEventListItem; uxListRemove (_4); : _5 = &pxTCB->xStateListItem; vListInsertEnd (&xSuspendedTaskList, _5); x = 0; goto ; [INV] : _6 = pxTCB->ucNotifyState[x]; if (_6 == 1) goto ; [INV] else goto ; [INV] : pxTCB->ucNotifyState[x] = 0; : x = x + 1; : if (x <= 0) goto ; [INV] else goto ; [INV] : vPortExitCritical (); xSchedulerRunning.31_7 = xSchedulerRunning; if (xSchedulerRunning.31_7 != 0) goto ; [INV] else goto ; [INV] : vPortEnterCritical (); prvResetNextTaskUnblockTime (); vPortExitCritical (); : pxCurrentTCB.32_8 = pxCurrentTCB; if (pxTCB == pxCurrentTCB.32_8) goto ; [INV] else goto ; [INV] : xSchedulerRunning.33_9 = xSchedulerRunning; if (xSchedulerRunning.33_9 != 0) goto ; [INV] else goto ; [INV] : uxSchedulerSuspended.34_10 = uxSchedulerSuspended; if (uxSchedulerSuspended.34_10 != 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _11 = 3758157060B; *_11 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); goto ; [INV] : _12 = xSuspendedTaskList.uxNumberOfItems; uxCurrentNumberOfTasks.35_13 = uxCurrentNumberOfTasks; if (_12 == uxCurrentNumberOfTasks.35_13) goto ; [INV] else goto ; [INV] : pxCurrentTCB = 0B; goto ; [INV] : vTaskSwitchContext (); : return; } vTaskPrioritySet (struct tskTaskControlBlock * xTask, UBaseType_t uxNewPriority) { struct ListItem_t * const pxIndex; BaseType_t xYieldRequired; UBaseType_t uxPriorityUsedOnEntry; UBaseType_t uxCurrentBasePriority; struct TCB_t * pxTCB; struct TCB_t * iftmp.25; : xYieldRequired = 0; if (uxNewPriority > 4) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (uxNewPriority > 4) goto ; [INV] else goto ; [INV] : uxNewPriority = 4; : vPortEnterCritical (); if (xTask == 0B) goto ; [INV] else goto ; [INV] : iftmp.25 = pxCurrentTCB; goto ; [INV] : iftmp.25 = xTask; : pxTCB = iftmp.25; uxCurrentBasePriority = pxTCB->uxBasePriority; if (uxCurrentBasePriority != uxNewPriority) goto ; [INV] else goto ; [INV] : if (uxNewPriority > uxCurrentBasePriority) goto ; [INV] else goto ; [INV] : pxCurrentTCB.26_1 = pxCurrentTCB; if (pxTCB != pxCurrentTCB.26_1) goto ; [INV] else goto ; [INV] : pxCurrentTCB.27_2 = pxCurrentTCB; _3 = pxCurrentTCB.27_2->uxPriority; if (uxNewPriority >= _3) goto ; [INV] else goto ; [INV] : xYieldRequired = 1; goto ; [INV] : pxCurrentTCB.28_4 = pxCurrentTCB; if (pxTCB == pxCurrentTCB.28_4) goto ; [INV] else goto ; [INV] : xYieldRequired = 1; : uxPriorityUsedOnEntry = pxTCB->uxPriority; _5 = pxTCB->uxBasePriority; _6 = pxTCB->uxPriority; if (_5 == _6) goto ; [INV] else goto ; [INV] : pxTCB->uxPriority = uxNewPriority; : pxTCB->uxBasePriority = uxNewPriority; _7 = pxTCB->xEventListItem.xItemValue; _8 = (signed int) _7; if (_8 >= 0) goto ; [INV] else goto ; [INV] : _9 = 5 - uxNewPriority; pxTCB->xEventListItem.xItemValue = _9; : _10 = pxTCB->xStateListItem.pvContainer; _11 = &pxReadyTasksLists[uxPriorityUsedOnEntry]; if (_10 == _11) goto ; [INV] else goto ; [INV] : _12 = &pxTCB->xStateListItem; _13 = uxListRemove (_12); : _14 = pxTCB->uxPriority; uxTopReadyPriority.29_15 = uxTopReadyPriority; if (_14 > uxTopReadyPriority.29_15) goto ; [INV] else goto ; [INV] : _16 = pxTCB->uxPriority; uxTopReadyPriority = _16; : _17 = pxTCB->uxPriority; pxIndex = pxReadyTasksLists[_17].pxIndex; pxTCB->xStateListItem.pxNext = pxIndex; _18 = pxIndex->pxPrevious; pxTCB->xStateListItem.pxPrevious = _18; _19 = pxIndex->pxPrevious; _20 = &pxTCB->xStateListItem; _19->pxNext = _20; _21 = &pxTCB->xStateListItem; pxIndex->pxPrevious = _21; _22 = pxTCB->uxPriority; _23 = &pxReadyTasksLists[_22]; pxTCB->xStateListItem.pvContainer = _23; _24 = pxTCB->uxPriority; _25 = pxReadyTasksLists[_24].uxNumberOfItems; _26 = _25 + 1; pxReadyTasksLists[_24].uxNumberOfItems = _26; : if (xYieldRequired != 0) goto ; [INV] else goto ; [INV] : _27 = 3758157060B; *_27 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : vPortExitCritical (); return; } uxTaskPriorityGetFromISR (struct tskTaskControlBlock * const xTask) { UBaseType_t uxSavedInterruptState; UBaseType_t uxReturn; const struct TCB_t * pxTCB; UBaseType_t D.7633; const struct TCB_t * iftmp.24; : vPortValidateInterruptPriority (); uxSavedInterruptState = ulPortRaiseBASEPRI (); if (xTask == 0B) goto ; [INV] else goto ; [INV] : iftmp.24 = pxCurrentTCB; goto ; [INV] : iftmp.24 = xTask; : pxTCB = iftmp.24; uxReturn = pxTCB->uxPriority; vPortSetBASEPRI (uxSavedInterruptState); D.7633 = uxReturn; : : return D.7633; } uxTaskPriorityGet (struct tskTaskControlBlock * const xTask) { UBaseType_t uxReturn; const struct TCB_t * pxTCB; UBaseType_t D.7627; const struct TCB_t * iftmp.23; : vPortEnterCritical (); if (xTask == 0B) goto ; [INV] else goto ; [INV] : iftmp.23 = pxCurrentTCB; goto ; [INV] : iftmp.23 = xTask; : pxTCB = iftmp.23; uxReturn = pxTCB->uxPriority; vPortExitCritical (); D.7627 = uxReturn; : : return D.7627; } eTaskGetState (struct tskTaskControlBlock * xTask) { 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; : pxTCB = xTask; if (pxTCB == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : pxCurrentTCB.22_1 = pxCurrentTCB; if (pxTCB == pxCurrentTCB.22_1) goto ; [INV] else goto ; [INV] : eReturn = 0; goto ; [INV] : vPortEnterCritical (); pxStateList = pxTCB->xStateListItem.pvContainer; pxDelayedList = pxDelayedTaskList; pxOverflowedDelayedList = pxOverflowDelayedTaskList; vPortExitCritical (); if (pxStateList == pxDelayedList) goto ; [INV] else goto ; [INV] : if (pxStateList == pxOverflowedDelayedList) goto ; [INV] else goto ; [INV] : eReturn = 2; goto ; [INV] : if (pxStateList == &xSuspendedTaskList) goto ; [INV] else goto ; [INV] : _2 = pxTCB->xEventListItem.pvContainer; if (_2 == 0B) goto ; [INV] else goto ; [INV] : eReturn = 3; x = 0; goto ; [INV] : _3 = pxTCB->ucNotifyState[x]; if (_3 == 1) goto ; [INV] else goto ; [INV] : eReturn = 2; goto ; [INV] : x = x + 1; : if (x <= 0) goto ; [INV] else goto ; [INV] : goto ; [INV] : eReturn = 2; goto ; [INV] : if (pxStateList == &xTasksWaitingTermination) goto ; [INV] else goto ; [INV] : if (pxStateList == 0B) goto ; [INV] else goto ; [INV] : eReturn = 4; goto ; [INV] : eReturn = 1; : D.7621 = eReturn; : : return D.7621; } vTaskDelay (const TickType_t xTicksToDelay) { BaseType_t xAlreadyYielded; : xAlreadyYielded = 0; if (xTicksToDelay != 0) goto ; [INV] else goto ; [INV] : uxSchedulerSuspended.21_1 = uxSchedulerSuspended; if (uxSchedulerSuspended.21_1 != 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vTaskSuspendAll (); prvAddCurrentTaskToDelayedList (xTicksToDelay, 0); xAlreadyYielded = xTaskResumeAll (); : if (xAlreadyYielded == 0) goto ; [INV] else goto ; [INV] : _2 = 3758157060B; *_2 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : return; } xTaskDelayUntil (TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement) { const TickType_t xConstTickCount; BaseType_t xShouldDelay; BaseType_t xAlreadyYielded; TickType_t xTimeToWake; BaseType_t D.7590; : xShouldDelay = 0; if (pxPreviousWakeTime == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (xTimeIncrement == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : uxSchedulerSuspended.20_1 = uxSchedulerSuspended; if (uxSchedulerSuspended.20_1 != 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vTaskSuspendAll (); xConstTickCount = xTickCount; _2 = *pxPreviousWakeTime; xTimeToWake = xTimeIncrement + _2; _3 = *pxPreviousWakeTime; if (xConstTickCount < _3) goto ; [INV] else goto ; [INV] : _4 = *pxPreviousWakeTime; if (xTimeToWake < _4) goto ; [INV] else goto ; [INV] : if (xTimeToWake > xConstTickCount) goto ; [INV] else goto ; [INV] : xShouldDelay = 1; goto ; [INV] : _5 = *pxPreviousWakeTime; if (xTimeToWake < _5) goto ; [INV] else goto ; [INV] : if (xTimeToWake > xConstTickCount) goto ; [INV] else goto ; [INV] : xShouldDelay = 1; : *pxPreviousWakeTime = xTimeToWake; if (xShouldDelay != 0) goto ; [INV] else goto ; [INV] : _6 = xTimeToWake - xConstTickCount; prvAddCurrentTaskToDelayedList (_6, 0); : xAlreadyYielded = xTaskResumeAll (); if (xAlreadyYielded == 0) goto ; [INV] else goto ; [INV] : _7 = 3758157060B; *_7 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : D.7590 = xShouldDelay; : : return D.7590; } vTaskDelete (struct tskTaskControlBlock * xTaskToDelete) { struct TCB_t * pxTCB; struct TCB_t * iftmp.12; : vPortEnterCritical (); if (xTaskToDelete == 0B) goto ; [INV] else goto ; [INV] : iftmp.12 = pxCurrentTCB; goto ; [INV] : iftmp.12 = xTaskToDelete; : pxTCB = iftmp.12; _1 = &pxTCB->xStateListItem; _2 = uxListRemove (_1); : _3 = pxTCB->xEventListItem.pvContainer; if (_3 != 0B) goto ; [INV] else goto ; [INV] : _4 = &pxTCB->xEventListItem; uxListRemove (_4); : uxTaskNumber.13_5 = uxTaskNumber; _6 = uxTaskNumber.13_5 + 1; uxTaskNumber = _6; pxCurrentTCB.14_7 = pxCurrentTCB; if (pxTCB == pxCurrentTCB.14_7) goto ; [INV] else goto ; [INV] : _8 = &pxTCB->xStateListItem; vListInsertEnd (&xTasksWaitingTermination, _8); uxDeletedTasksWaitingCleanUp.15_9 = uxDeletedTasksWaitingCleanUp; _10 = uxDeletedTasksWaitingCleanUp.15_9 + 1; uxDeletedTasksWaitingCleanUp = _10; goto ; [INV] : uxCurrentNumberOfTasks.16_11 = uxCurrentNumberOfTasks; _12 = uxCurrentNumberOfTasks.16_11 + 4294967295; uxCurrentNumberOfTasks = _12; prvDeleteTCB (pxTCB); prvResetNextTaskUnblockTime (); : vPortExitCritical (); xSchedulerRunning.17_13 = xSchedulerRunning; if (xSchedulerRunning.17_13 != 0) goto ; [INV] else goto ; [INV] : pxCurrentTCB.18_14 = pxCurrentTCB; if (pxTCB == pxCurrentTCB.18_14) goto ; [INV] else goto ; [INV] : uxSchedulerSuspended.19_15 = uxSchedulerSuspended; if (uxSchedulerSuspended.19_15 != 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _16 = 3758157060B; *_16 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : return; } prvAddNewTaskToReadyList (struct TCB_t * pxNewTCB) { struct ListItem_t * const pxIndex; : vPortEnterCritical (); uxCurrentNumberOfTasks.2_1 = uxCurrentNumberOfTasks; _2 = uxCurrentNumberOfTasks.2_1 + 1; uxCurrentNumberOfTasks = _2; pxCurrentTCB.3_3 = pxCurrentTCB; if (pxCurrentTCB.3_3 == 0B) goto ; [INV] else goto ; [INV] : pxCurrentTCB = pxNewTCB; uxCurrentNumberOfTasks.4_4 = uxCurrentNumberOfTasks; if (uxCurrentNumberOfTasks.4_4 == 1) goto ; [INV] else goto ; [INV] : prvInitialiseTaskLists (); goto ; [INV] : xSchedulerRunning.5_5 = xSchedulerRunning; if (xSchedulerRunning.5_5 == 0) goto ; [INV] else goto ; [INV] : pxCurrentTCB.6_6 = pxCurrentTCB; _7 = pxCurrentTCB.6_6->uxPriority; _8 = pxNewTCB->uxPriority; if (_7 <= _8) goto ; [INV] else goto ; [INV] : pxCurrentTCB = pxNewTCB; : uxTaskNumber.7_9 = uxTaskNumber; _10 = uxTaskNumber.7_9 + 1; uxTaskNumber = _10; uxTaskNumber.8_11 = uxTaskNumber; pxNewTCB->uxTCBNumber = uxTaskNumber.8_11; _12 = pxNewTCB->uxPriority; uxTopReadyPriority.9_13 = uxTopReadyPriority; if (_12 > uxTopReadyPriority.9_13) goto ; [INV] else goto ; [INV] : _14 = pxNewTCB->uxPriority; uxTopReadyPriority = _14; : _15 = pxNewTCB->uxPriority; pxIndex = pxReadyTasksLists[_15].pxIndex; pxNewTCB->xStateListItem.pxNext = pxIndex; _16 = pxIndex->pxPrevious; pxNewTCB->xStateListItem.pxPrevious = _16; _17 = pxIndex->pxPrevious; _18 = &pxNewTCB->xStateListItem; _17->pxNext = _18; _19 = &pxNewTCB->xStateListItem; pxIndex->pxPrevious = _19; _20 = pxNewTCB->uxPriority; _21 = &pxReadyTasksLists[_20]; pxNewTCB->xStateListItem.pvContainer = _21; _22 = pxNewTCB->uxPriority; _23 = pxReadyTasksLists[_22].uxNumberOfItems; _24 = _23 + 1; pxReadyTasksLists[_22].uxNumberOfItems = _24; vPortExitCritical (); xSchedulerRunning.10_25 = xSchedulerRunning; if (xSchedulerRunning.10_25 != 0) goto ; [INV] else goto ; [INV] : pxCurrentTCB.11_26 = pxCurrentTCB; _27 = pxCurrentTCB.11_26->uxPriority; _28 = pxNewTCB->uxPriority; if (_27 < _28) goto ; [INV] else goto ; [INV] : _29 = 3758157060B; *_29 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : return; } 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) { UBaseType_t x; StackType_t * pxTopOfStack; : _1 = pxNewTCB->pxStack; _2 = ulStackDepth * 4; memset (_1, 165, _2); _3 = pxNewTCB->pxStack; _4 = ulStackDepth + 1073741823; _5 = _4 * 4; pxTopOfStack = _3 + _5; pxTopOfStack.0_6 = (long unsigned int) pxTopOfStack; _7 = pxTopOfStack.0_6 & 4294967288; pxTopOfStack = (StackType_t *) _7; pxTopOfStack.1_8 = (long unsigned int) pxTopOfStack; _9 = pxTopOfStack.1_8 & 7; if (_9 != 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : pxNewTCB->pxEndOfStack = pxTopOfStack; if (pcName != 0B) goto ; [INV] else goto ; [INV] : x = 0; goto ; [INV] : _10 = pcName + x; _11 = *_10; pxNewTCB->pcTaskName[x] = _11; _12 = pcName + x; _13 = *_12; if (_13 == 0) goto ; [INV] else goto ; [INV] : goto ; [INV] : x = x + 1; : if (x <= 9) goto ; [INV] else goto ; [INV] : pxNewTCB->pcTaskName[9] = 0; goto ; [INV] : pxNewTCB->pcTaskName[0] = 0; : if (uxPriority > 4) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (uxPriority > 4) goto ; [INV] else goto ; [INV] : uxPriority = 4; : pxNewTCB->uxPriority = uxPriority; pxNewTCB->uxBasePriority = uxPriority; pxNewTCB->uxMutexesHeld = 0; _14 = &pxNewTCB->xStateListItem; vListInitialiseItem (_14); _15 = &pxNewTCB->xEventListItem; vListInitialiseItem (_15); pxNewTCB->xStateListItem.pvOwner = pxNewTCB; _16 = 5 - uxPriority; pxNewTCB->xEventListItem.xItemValue = _16; pxNewTCB->xEventListItem.pvOwner = pxNewTCB; _17 = &pxNewTCB->ulNotifiedValue[0]; memset (_17, 0, 4); _18 = &pxNewTCB->ucNotifyState[0]; memset (_18, 0, 1); pxNewTCB->ucDelayAborted = 0; _19 = pxPortInitialiseStack (pxTopOfStack, pxTaskCode, pvParameters); pxNewTCB->pxTopOfStack = _19; if (pxCreatedTask != 0B) goto ; [INV] else goto ; [INV] : *pxCreatedTask = pxNewTCB; : return; } 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; : _1 = (unsigned int) usStackDepth; _2 = _1 * 4; pxStack = pvPortMalloc (_2); if (pxStack != 0B) goto ; [INV] else goto ; [INV] : pxNewTCB = pvPortMalloc (92); if (pxNewTCB != 0B) goto ; [INV] else goto ; [INV] : pxNewTCB->pxStack = pxStack; goto ; [INV] : vPortFree (pxStack); goto ; [INV] : pxNewTCB = 0B; : if (pxNewTCB != 0B) goto ; [INV] else goto ; [INV] : _3 = (long unsigned int) usStackDepth; prvInitialiseNewTask (pxTaskCode, pcName, _3, pvParameters, uxPriority, pxCreatedTask, pxNewTCB, 0B); prvAddNewTaskToReadyList (pxNewTCB); xReturn = 1; goto ; [INV] : xReturn = -1; : D.7510 = xReturn; : : return D.7510; } __attribute__((always_inline)) vPortSetBASEPRI (uint32_t ulNewMaskValue) { : __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue : "memory"); return; } __attribute__((always_inline)) ulPortRaiseBASEPRI () { uint32_t ulNewBASEPRI; uint32_t ulOriginalBASEPRI; uint32_t D.7635; : __asm__ __volatile__(" mrs %0, basepri mov %1, %2 msr basepri, %1 isb dsb " : "=r" ulOriginalBASEPRI, "=r" ulNewBASEPRI : "i" 16 : "memory"); D.7635 = ulOriginalBASEPRI; : : return D.7635; } __attribute__((always_inline)) vPortRaiseBASEPRI () { uint32_t ulNewBASEPRI; : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI : "i" 16 : "memory"); return; }