
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) @06ee5620
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags:
  Called by: vTaskList/84 
  Calls: 
strcpy/111 (strcpy) @06ee5e00
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags:
  Called by: prvWriteNameToBuffer/83 
  Calls: 
vListInitialise/110 (vListInitialise) @06eacb60
  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) @06e8de00
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags:
  Called by: prvAddCurrentTaskToDelayedList/94 prvAddCurrentTaskToDelayedList/94 vTaskPlaceOnEventList/58 
  Calls: 
strlen/108 (strlen) @06e8d2a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags:
  Called by: vTaskList/84 prvWriteNameToBuffer/83 xTaskGetHandle/52 
  Calls: 
vPortEndScheduler/107 (vPortEndScheduler) @06e768c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags:
  Called by: vTaskEndScheduler/44 
  Calls: 
xPortStartScheduler/106 (xPortStartScheduler) @06e76620
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags:
  Called by: vTaskStartScheduler/43 
  Calls: 
xTimerCreateTimerTask/105 (xTimerCreateTimerTask) @06e76540
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags:
  Called by: vTaskStartScheduler/43 
  Calls: 
vPortValidateInterruptPriority/104 (vPortValidateInterruptPriority) @0648b7e0
  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) @06e3ec40
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags:
  Called by: xTaskResumeFromISR/42 vTaskSuspend/39 vTaskDelete/32 
  Calls: 
uxListRemove/102 (uxListRemove) @06e3eee0
  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) @06e3ed20
  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) @06e3eb60
  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) @06e3e8c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags:
  Called by: prvInitialiseNewTask/30 
  Calls: 
vListInitialiseItem/98 (vListInitialiseItem) @06e3e7e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags:
  Called by: prvInitialiseNewTask/30 prvInitialiseNewTask/30 
  Calls: 
memset/97 (memset) @06e3e700
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags:
  Called by: prvInitialiseNewTask/30 prvInitialiseNewTask/30 prvInitialiseNewTask/30 
  Calls: 
vPortFree/96 (vPortFree) @06e3e540
  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) @06e3e460
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags:
  Called by: vTaskList/84 xTaskCreate/29 xTaskCreate/29 
  Calls: 
prvAddCurrentTaskToDelayedList/94 (prvAddCurrentTaskToDelayedList) @06e3e000
  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) @06e2a540
  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) @06e2ad20
  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) @06e2a8c0
  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) @06e2a460
  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) @06e1be00
  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) @06e1bd20
  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) @06e1b8c0
  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) @06e1b460
  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) @06e1b1c0
  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) @06dffc40
  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) @06dff540
  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) @06dff000
  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) @06dffb60
  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) @06dff700
  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) @06dff460
  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) @06dff1c0
  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) @06df3c40
  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) @06df3380
  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) @06df3ee0
  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) @06df3b60
  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) @06df38c0
  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) @06df3620
  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) @06df32a0
  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) @06defee0
  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) @06def9a0
  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) @06defe00
  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) @06defb60
  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) @06def8c0
  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) @06def620
  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) @06def1c0
  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) @06da9b60
  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) @06da9ee0
  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) @06da9a80
  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) @06da9620
  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) @06da92a0
  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) @06d3fa80
  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) @06d3fe00
  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) @06d3f9a0
  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) @06d3f380
  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) @06d3f000
  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) @06d367e0
  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) @06d362a0
  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) @06d36e00
  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) @06d36b60
  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) @06d36700
  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) @06d36460
  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) @06d361c0
  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) @06d25e00
  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) @06d25d20
  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) @06d25a80
  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) @06d257e0
  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) @06d25540
  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) @06d251c0
  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) @06d1a9a0
  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) @06d1ae00
  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) @06d1a8c0
  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) @06d1a380
  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) @06d1a000
  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) @06d0f2a0
  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) @06d0fc40
  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) @06d0f7e0
  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) @06d0f1c0
  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) @06cf8540
  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) @06cf8c40
  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) @06cf8700
  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) @06cf15a0
  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) @06cf1510
  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) @06cf1480
  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) @06cf13f0
  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) @06cf1360
  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) @06cf1318
  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) @06cf12d0
  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) @06cf1240
  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) @06cf11b0
  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) @06cf1120
  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) @06cf10d8
  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) @06cf1090
  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) @06ceef78
  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) @06ceeee8
  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) @06ceee58
  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) @06ceedc8
  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) @06ceed38
  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) @06ceecf0
  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) @06ceeca8
  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) @06ceec18
  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) @06ceeb88
  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) @06ceeb40
  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) @06c1cb60
  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) @06c1c8c0
  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) @06c1c540
  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;

  <bb 2> :
  xConstTickCount = xTickCount;
  pxCurrentTCB.152_1 = pxCurrentTCB;
  pxCurrentTCB.152_1->ucDelayAborted = 0;
  pxCurrentTCB.153_2 = pxCurrentTCB;
  _3 = &pxCurrentTCB.153_2->xStateListItem;
  _4 = uxListRemove (_3);

  <bb 3> :
  if (xTicksToWait == 4294967295)
    goto <bb 4>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 4> :
  if (xCanBlockIndefinitely != 0)
    goto <bb 5>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 5> :
  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 <bb 10>; [INV]

  <bb 6> :
  xTimeToWake = xConstTickCount + xTicksToWait;
  pxCurrentTCB.159_16 = pxCurrentTCB;
  pxCurrentTCB.159_16->xStateListItem.xItemValue = xTimeToWake;
  if (xTimeToWake < xConstTickCount)
    goto <bb 7>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 7> :
  pxOverflowDelayedTaskList.160_17 = pxOverflowDelayedTaskList;
  pxCurrentTCB.161_18 = pxCurrentTCB;
  _19 = &pxCurrentTCB.161_18->xStateListItem;
  vListInsert (pxOverflowDelayedTaskList.160_17, _19);
  goto <bb 10>; [INV]

  <bb 8> :
  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 <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  xNextTaskUnblockTime = xTimeToWake;

  <bb 10> :
  return;

}


ulTaskGenericNotifyValueClear (struct tskTaskControlBlock * xTask, UBaseType_t uxIndexToClear, uint32_t ulBitsToClear)
{
  uint32_t ulReturn;
  struct TCB_t * pxTCB;
  uint32_t D.8222;
  struct TCB_t * iftmp.151;

  <bb 2> :
  if (xTask == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  iftmp.151 = pxCurrentTCB;
  goto <bb 5>; [INV]

  <bb 4> :
  iftmp.151 = xTask;

  <bb 5> :
  pxTCB = iftmp.151;
  vPortEnterCritical ();
  ulReturn = pxTCB->ulNotifiedValue[uxIndexToClear];
  _1 = pxTCB->ulNotifiedValue[uxIndexToClear];
  _2 = ~ulBitsToClear;
  _3 = _1 & _2;
  pxTCB->ulNotifiedValue[uxIndexToClear] = _3;
  vPortExitCritical ();
  D.8222 = ulReturn;

  <bb 6> :
<L3>:
  return D.8222;

}


xTaskGenericNotifyStateClear (struct tskTaskControlBlock * xTask, UBaseType_t uxIndexToClear)
{
  BaseType_t xReturn;
  struct TCB_t * pxTCB;
  BaseType_t D.8216;
  struct TCB_t * iftmp.150;

  <bb 2> :
  if (uxIndexToClear != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  if (xTask == 0B)
    goto <bb 6>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 6> :
  iftmp.150 = pxCurrentTCB;
  goto <bb 8>; [INV]

  <bb 7> :
  iftmp.150 = xTask;

  <bb 8> :
  pxTCB = iftmp.150;
  vPortEnterCritical ();
  _1 = pxTCB->ucNotifyState[uxIndexToClear];
  if (_1 == 2)
    goto <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  pxTCB->ucNotifyState[uxIndexToClear] = 0;
  xReturn = 1;
  goto <bb 11>; [INV]

  <bb 10> :
  xReturn = 0;

  <bb 11> :
  vPortExitCritical ();
  D.8216 = xReturn;

  <bb 12> :
<L9>:
  return D.8216;

}


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;

  <bb 2> :
  if (xTaskToNotify == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  if (uxIndexToNotify != 0)
    goto <bb 6>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 6> :
  vPortRaiseBASEPRI ();

  <bb 7> :
  goto <bb 7>; [INV]

  <bb 8> :
  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 <bb 9>; [INV]
  else
    goto <bb 23>; [INV]

  <bb 9> :
  _3 = pxTCB->xEventListItem.pvContainer;
  if (_3 != 0B)
    goto <bb 10>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 10> :
  vPortRaiseBASEPRI ();

  <bb 11> :
  goto <bb 11>; [INV]

  <bb 12> :
  uxSchedulerSuspended.147_4 = uxSchedulerSuspended;
  if (uxSchedulerSuspended.147_4 == 0)
    goto <bb 13>; [INV]
  else
    goto <bb 18>; [INV]

  <bb 13> :
  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 <bb 14>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 14> :
  _11 = pxTCB->xStateListItem.pxPrevious;
  pxList->pxIndex = _11;

  <bb 15> :
  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 <bb 16>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 16> :
  _16 = pxTCB->uxPriority;
  uxTopReadyPriority = _16;

  <bb 17> :
  _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 <bb 19>; [INV]

  <bb 18> :
  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;

  <bb 19> :
  _33 = pxTCB->uxPriority;
  pxCurrentTCB.149_34 = pxCurrentTCB;
  _35 = pxCurrentTCB.149_34->uxPriority;
  if (_33 > _35)
    goto <bb 20>; [INV]
  else
    goto <bb 23>; [INV]

  <bb 20> :
  if (pxHigherPriorityTaskWoken != 0B)
    goto <bb 21>; [INV]
  else
    goto <bb 22>; [INV]

  <bb 21> :
  *pxHigherPriorityTaskWoken = 1;

  <bb 22> :
  xYieldPending = 1;

  <bb 23> :
  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.8185;

  <bb 2> :
  xReturn = 1;
  if (xTaskToNotify == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  if (uxIndexToNotify != 0)
    goto <bb 6>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 6> :
  vPortRaiseBASEPRI ();

  <bb 7> :
  goto <bb 7>; [INV]

  <bb 8> :
  vPortValidateInterruptPriority ();
  pxTCB = xTaskToNotify;
  uxSavedInterruptStatus = ulPortRaiseBASEPRI ();
  if (pulPreviousNotificationValue != 0B)
    goto <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  _1 = pxTCB->ulNotifiedValue[uxIndexToNotify];
  *pulPreviousNotificationValue = _1;

  <bb 10> :
  ucOriginalNotifyState = pxTCB->ucNotifyState[uxIndexToNotify];
  pxTCB->ucNotifyState[uxIndexToNotify] = 2;
  switch (eAction) <default: <L16> [INV], case 0: <L15> [INV], case 1: <L8> [INV], case 2: <L9> [INV], case 3: <L10> [INV], case 4: <L11> [INV]>

  <bb 11> :
<L8>:
  _2 = pxTCB->ulNotifiedValue[uxIndexToNotify];
  _3 = ulValue | _2;
  pxTCB->ulNotifiedValue[uxIndexToNotify] = _3;
  goto <bb 23>; [INV]

  <bb 12> :
<L9>:
  _4 = pxTCB->ulNotifiedValue[uxIndexToNotify];
  _5 = _4 + 1;
  pxTCB->ulNotifiedValue[uxIndexToNotify] = _5;
  goto <bb 23>; [INV]

  <bb 13> :
<L10>:
  pxTCB->ulNotifiedValue[uxIndexToNotify] = ulValue;
  goto <bb 23>; [INV]

  <bb 14> :
<L11>:
  if (ucOriginalNotifyState != 2)
    goto <bb 15>; [INV]
  else
    goto <bb 16>; [INV]

  <bb 15> :
  pxTCB->ulNotifiedValue[uxIndexToNotify] = ulValue;
  goto <bb 17>; [INV]

  <bb 16> :
  xReturn = 0;

  <bb 17> :
  goto <bb 23>; [INV]

  <bb 18> :
<L15>:
  goto <bb 23>; [INV]

  <bb 19> :
<L16>:
  xTickCount.143_6 = xTickCount;
  if (xTickCount.143_6 != 0)
    goto <bb 20>; [INV]
  else
    goto <bb 22>; [INV]

  <bb 20> :
  vPortRaiseBASEPRI ();

  <bb 21> :
  goto <bb 21>; [INV]

  <bb 22> :

  <bb 23> :
  if (ucOriginalNotifyState == 1)
    goto <bb 24>; [INV]
  else
    goto <bb 38>; [INV]

  <bb 24> :
  _7 = pxTCB->xEventListItem.pvContainer;
  if (_7 != 0B)
    goto <bb 25>; [INV]
  else
    goto <bb 27>; [INV]

  <bb 25> :
  vPortRaiseBASEPRI ();

  <bb 26> :
  goto <bb 26>; [INV]

  <bb 27> :
  uxSchedulerSuspended.144_8 = uxSchedulerSuspended;
  if (uxSchedulerSuspended.144_8 == 0)
    goto <bb 28>; [INV]
  else
    goto <bb 33>; [INV]

  <bb 28> :
  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 <bb 29>; [INV]
  else
    goto <bb 30>; [INV]

  <bb 29> :
  _15 = pxTCB->xStateListItem.pxPrevious;
  pxList->pxIndex = _15;

  <bb 30> :
  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 <bb 31>; [INV]
  else
    goto <bb 32>; [INV]

  <bb 31> :
  _20 = pxTCB->uxPriority;
  uxTopReadyPriority = _20;

  <bb 32> :
  _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 <bb 34>; [INV]

  <bb 33> :
  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;

  <bb 34> :
  _37 = pxTCB->uxPriority;
  pxCurrentTCB.146_38 = pxCurrentTCB;
  _39 = pxCurrentTCB.146_38->uxPriority;
  if (_37 > _39)
    goto <bb 35>; [INV]
  else
    goto <bb 38>; [INV]

  <bb 35> :
  if (pxHigherPriorityTaskWoken != 0B)
    goto <bb 36>; [INV]
  else
    goto <bb 37>; [INV]

  <bb 36> :
  *pxHigherPriorityTaskWoken = 1;

  <bb 37> :
  xYieldPending = 1;

  <bb 38> :
  vPortSetBASEPRI (uxSavedInterruptStatus);
  D.8185 = xReturn;

  <bb 39> :
<L38>:
  return D.8185;

}


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.8156;

  <bb 2> :
  xReturn = 1;
  if (uxIndexToNotify != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  if (xTaskToNotify == 0B)
    goto <bb 6>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 6> :
  vPortRaiseBASEPRI ();

  <bb 7> :
  goto <bb 7>; [INV]

  <bb 8> :
  pxTCB = xTaskToNotify;
  vPortEnterCritical ();
  if (pulPreviousNotificationValue != 0B)
    goto <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  _1 = pxTCB->ulNotifiedValue[uxIndexToNotify];
  *pulPreviousNotificationValue = _1;

  <bb 10> :
  ucOriginalNotifyState = pxTCB->ucNotifyState[uxIndexToNotify];
  pxTCB->ucNotifyState[uxIndexToNotify] = 2;
  switch (eAction) <default: <L16> [INV], case 0: <L15> [INV], case 1: <L8> [INV], case 2: <L9> [INV], case 3: <L10> [INV], case 4: <L11> [INV]>

  <bb 11> :
<L8>:
  _2 = pxTCB->ulNotifiedValue[uxIndexToNotify];
  _3 = ulValue | _2;
  pxTCB->ulNotifiedValue[uxIndexToNotify] = _3;
  goto <bb 23>; [INV]

  <bb 12> :
<L9>:
  _4 = pxTCB->ulNotifiedValue[uxIndexToNotify];
  _5 = _4 + 1;
  pxTCB->ulNotifiedValue[uxIndexToNotify] = _5;
  goto <bb 23>; [INV]

  <bb 13> :
<L10>:
  pxTCB->ulNotifiedValue[uxIndexToNotify] = ulValue;
  goto <bb 23>; [INV]

  <bb 14> :
<L11>:
  if (ucOriginalNotifyState != 2)
    goto <bb 15>; [INV]
  else
    goto <bb 16>; [INV]

  <bb 15> :
  pxTCB->ulNotifiedValue[uxIndexToNotify] = ulValue;
  goto <bb 17>; [INV]

  <bb 16> :
  xReturn = 0;

  <bb 17> :
  goto <bb 23>; [INV]

  <bb 18> :
<L15>:
  goto <bb 23>; [INV]

  <bb 19> :
<L16>:
  xTickCount.140_6 = xTickCount;
  if (xTickCount.140_6 != 0)
    goto <bb 20>; [INV]
  else
    goto <bb 22>; [INV]

  <bb 20> :
  vPortRaiseBASEPRI ();

  <bb 21> :
  goto <bb 21>; [INV]

  <bb 22> :

  <bb 23> :
  if (ucOriginalNotifyState == 1)
    goto <bb 24>; [INV]
  else
    goto <bb 33>; [INV]

  <bb 24> :
  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 <bb 25>; [INV]
  else
    goto <bb 26>; [INV]

  <bb 25> :
  _13 = pxTCB->xStateListItem.pxPrevious;
  pxList->pxIndex = _13;

  <bb 26> :
  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 <bb 27>; [INV]
  else
    goto <bb 28>; [INV]

  <bb 27> :
  _18 = pxTCB->uxPriority;
  uxTopReadyPriority = _18;

  <bb 28> :
  _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 <bb 29>; [INV]
  else
    goto <bb 31>; [INV]

  <bb 29> :
  vPortRaiseBASEPRI ();

  <bb 30> :
  goto <bb 30>; [INV]

  <bb 31> :
  _30 = pxTCB->uxPriority;
  pxCurrentTCB.142_31 = pxCurrentTCB;
  _32 = pxCurrentTCB.142_31->uxPriority;
  if (_30 > _32)
    goto <bb 32>; [INV]
  else
    goto <bb 33>; [INV]

  <bb 32> :
  _33 = 3758157060B;
  *_33 = 268435456;
  __asm__ __volatile__("dsb" :  :  : "memory");
  __asm__ __volatile__("isb");

  <bb 33> :
  vPortExitCritical ();
  D.8156 = xReturn;

  <bb 34> :
<L34>:
  return D.8156;

}


xTaskGenericNotifyWait (UBaseType_t uxIndexToWait, uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t * pulNotificationValue, TickType_t xTicksToWait)
{
  BaseType_t xReturn;
  BaseType_t D.8131;
  struct TCB_t * pxCurrentTCB.138;
  struct TCB_t * pxCurrentTCB.134;

  <bb 2> :
  if (uxIndexToWait != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  vPortEnterCritical ();
  pxCurrentTCB.133_1 = pxCurrentTCB;
  _2 = pxCurrentTCB.133_1->ucNotifyState[uxIndexToWait];
  if (_2 != 2)
    goto <bb 6>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 6> :
  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 <bb 7>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 7> :
  prvAddCurrentTaskToDelayedList (xTicksToWait, 1);
  _7 = 3758157060B;
  *_7 = 268435456;
  __asm__ __volatile__("dsb" :  :  : "memory");
  __asm__ __volatile__("isb");

  <bb 8> :
  vPortExitCritical ();
  vPortEnterCritical ();
  if (pulNotificationValue != 0B)
    goto <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  pxCurrentTCB.136_8 = pxCurrentTCB;
  _9 = pxCurrentTCB.136_8->ulNotifiedValue[uxIndexToWait];
  *pulNotificationValue = _9;

  <bb 10> :
  pxCurrentTCB.137_10 = pxCurrentTCB;
  _11 = pxCurrentTCB.137_10->ucNotifyState[uxIndexToWait];
  if (_11 != 2)
    goto <bb 11>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 11> :
  xReturn = 0;
  goto <bb 13>; [INV]

  <bb 12> :
  pxCurrentTCB.138 = pxCurrentTCB;
  _12 = pxCurrentTCB.138->ulNotifiedValue[uxIndexToWait];
  _13 = ~ulBitsToClearOnExit;
  _14 = _12 & _13;
  pxCurrentTCB.138->ulNotifiedValue[uxIndexToWait] = _14;
  xReturn = 1;

  <bb 13> :
  pxCurrentTCB.139_15 = pxCurrentTCB;
  pxCurrentTCB.139_15->ucNotifyState[uxIndexToWait] = 0;
  vPortExitCritical ();
  D.8131 = xReturn;

  <bb 14> :
<L14>:
  return D.8131;

}


ulTaskGenericNotifyTake (UBaseType_t uxIndexToWait, BaseType_t xClearCountOnExit, TickType_t xTicksToWait)
{
  uint32_t ulReturn;
  uint32_t D.8114;

  <bb 2> :
  if (uxIndexToWait != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  vPortEnterCritical ();
  pxCurrentTCB.127_1 = pxCurrentTCB;
  _2 = pxCurrentTCB.127_1->ulNotifiedValue[uxIndexToWait];
  if (_2 == 0)
    goto <bb 6>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 6> :
  pxCurrentTCB.128_3 = pxCurrentTCB;
  pxCurrentTCB.128_3->ucNotifyState[uxIndexToWait] = 1;
  if (xTicksToWait != 0)
    goto <bb 7>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 7> :
  prvAddCurrentTaskToDelayedList (xTicksToWait, 1);
  _4 = 3758157060B;
  *_4 = 268435456;
  __asm__ __volatile__("dsb" :  :  : "memory");
  __asm__ __volatile__("isb");

  <bb 8> :
  vPortExitCritical ();
  vPortEnterCritical ();
  pxCurrentTCB.129_5 = pxCurrentTCB;
  ulReturn = pxCurrentTCB.129_5->ulNotifiedValue[uxIndexToWait];
  if (ulReturn != 0)
    goto <bb 9>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 9> :
  if (xClearCountOnExit != 0)
    goto <bb 10>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 10> :
  pxCurrentTCB.130_6 = pxCurrentTCB;
  pxCurrentTCB.130_6->ulNotifiedValue[uxIndexToWait] = 0;
  goto <bb 12>; [INV]

  <bb 11> :
  pxCurrentTCB.131_7 = pxCurrentTCB;
  _8 = ulReturn + 4294967295;
  pxCurrentTCB.131_7->ulNotifiedValue[uxIndexToWait] = _8;

  <bb 12> :
  pxCurrentTCB.132_9 = pxCurrentTCB;
  pxCurrentTCB.132_9->ucNotifyState[uxIndexToWait] = 0;
  vPortExitCritical ();
  D.8114 = ulReturn;

  <bb 13> :
<L15>:
  return D.8114;

}


pvTaskIncrementMutexHeldCount ()
{
  struct tskTaskControlBlock * D.8098;

  <bb 2> :
  pxCurrentTCB.125_1 = pxCurrentTCB;
  if (pxCurrentTCB.125_1 != 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  pxCurrentTCB.126_2 = pxCurrentTCB;
  _3 = pxCurrentTCB.126_2->uxMutexesHeld;
  _4 = _3 + 1;
  pxCurrentTCB.126_2->uxMutexesHeld = _4;

  <bb 4> :
  D.8098 = pxCurrentTCB;

  <bb 5> :
<L2>:
  return D.8098;

}


uxTaskResetEventItemValue ()
{
  TickType_t uxReturn;
  TickType_t D.8094;

  <bb 2> :
  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.8094 = uxReturn;

  <bb 3> :
<L0>:
  return D.8094;

}


vTaskList (char * pcWriteBuffer)
{
  char cStatus;
  UBaseType_t x;
  UBaseType_t uxArraySize;
  struct TaskStatus_t * pxTaskStatusArray;

  <bb 2> :
  *pcWriteBuffer = 0;
  uxArraySize = uxCurrentNumberOfTasks;
  uxCurrentNumberOfTasks.121_1 = uxCurrentNumberOfTasks;
  _2 = uxCurrentNumberOfTasks.121_1 * 36;
  pxTaskStatusArray = pvPortMalloc (_2);
  if (pxTaskStatusArray != 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 14>; [INV]

  <bb 3> :
  uxArraySize = uxTaskGetSystemState (pxTaskStatusArray, uxArraySize, 0B);
  x = 0;
  goto <bb 12>; [INV]

  <bb 4> :
  _3 = x * 36;
  _4 = pxTaskStatusArray + _3;
  _5 = _4->eCurrentState;
  switch (_5) <default: <L7> [INV], case 0: <L2> [INV], case 1: <L3> [INV], case 2: <L4> [INV], case 3: <L5> [INV], case 4: <L6> [INV]>

  <bb 5> :
<L2>:
  cStatus = 88;
  goto <bb 11>; [INV]

  <bb 6> :
<L3>:
  cStatus = 82;
  goto <bb 11>; [INV]

  <bb 7> :
<L4>:
  cStatus = 66;
  goto <bb 11>; [INV]

  <bb 8> :
<L5>:
  cStatus = 83;
  goto <bb 11>; [INV]

  <bb 9> :
<L6>:
  cStatus = 68;
  goto <bb 11>; [INV]

  <bb 10> :
<L7>:
  cStatus = 0;

  <bb 11> :
  _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;

  <bb 12> :
  if (x < uxArraySize)
    goto <bb 4>; [INV]
  else
    goto <bb 13>; [INV]

  <bb 13> :
  vPortFree (pxTaskStatusArray);

  <bb 14> :
  return;

}


prvWriteNameToBuffer (char * pcBuffer, const char * pcTaskName)
{
  size_t x;
  char * D.8089;

  <bb 2> :
  strcpy (pcBuffer, pcTaskName);
  x = strlen (pcBuffer);
  goto <bb 4>; [INV]

  <bb 3> :
  _1 = pcBuffer + x;
  *_1 = 32;
  x = x + 1;

  <bb 4> :
  if (x <= 8)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 5> :
  _2 = pcBuffer + x;
  *_2 = 0;
  D.8089 = pcBuffer + x;

  <bb 6> :
<L3>:
  return D.8089;

}


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;

  <bb 2> :
  pxTCB = pxMutexHolder;
  uxOnlyOneMutexHeld = 1;
  if (pxMutexHolder != 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 21>; [INV]

  <bb 3> :
  _1 = pxTCB->uxMutexesHeld;
  if (_1 == 0)
    goto <bb 4>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 4> :
  vPortRaiseBASEPRI ();

  <bb 5> :
  goto <bb 5>; [INV]

  <bb 6> :
  _2 = pxTCB->uxBasePriority;
  if (uxHighestPriorityWaitingTask > _2)
    goto <bb 7>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 7> :
  uxPriorityToUse = uxHighestPriorityWaitingTask;
  goto <bb 9>; [INV]

  <bb 8> :
  uxPriorityToUse = pxTCB->uxBasePriority;

  <bb 9> :
  _3 = pxTCB->uxPriority;
  if (uxPriorityToUse != _3)
    goto <bb 10>; [INV]
  else
    goto <bb 21>; [INV]

  <bb 10> :
  _4 = pxTCB->uxMutexesHeld;
  if (uxOnlyOneMutexHeld == _4)
    goto <bb 11>; [INV]
  else
    goto <bb 21>; [INV]

  <bb 11> :
  pxCurrentTCB.119_5 = pxCurrentTCB;
  if (pxTCB == pxCurrentTCB.119_5)
    goto <bb 12>; [INV]
  else
    goto <bb 14>; [INV]

  <bb 12> :
  vPortRaiseBASEPRI ();

  <bb 13> :
  goto <bb 13>; [INV]

  <bb 14> :
  uxPriorityUsedOnEntry = pxTCB->uxPriority;
  pxTCB->uxPriority = uxPriorityToUse;
  _6 = pxTCB->xEventListItem.xItemValue;
  _7 = (signed int) _6;
  if (_7 >= 0)
    goto <bb 15>; [INV]
  else
    goto <bb 16>; [INV]

  <bb 15> :
  _8 = 5 - uxPriorityToUse;
  pxTCB->xEventListItem.xItemValue = _8;

  <bb 16> :
  _9 = pxTCB->xStateListItem.pvContainer;
  _10 = &pxReadyTasksLists[uxPriorityUsedOnEntry];
  if (_9 == _10)
    goto <bb 17>; [INV]
  else
    goto <bb 21>; [INV]

  <bb 17> :
  _11 = &pxTCB->xStateListItem;
  _12 = uxListRemove (_11);

  <bb 18> :
  _13 = pxTCB->uxPriority;
  uxTopReadyPriority.120_14 = uxTopReadyPriority;
  if (_13 > uxTopReadyPriority.120_14)
    goto <bb 19>; [INV]
  else
    goto <bb 20>; [INV]

  <bb 19> :
  _15 = pxTCB->uxPriority;
  uxTopReadyPriority = _15;

  <bb 20> :
  _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;

  <bb 21> :
  return;

}


xTaskPriorityDisinherit (struct tskTaskControlBlock * const pxMutexHolder)
{
  struct ListItem_t * const pxIndex;
  BaseType_t xReturn;
  struct TCB_t * const pxTCB;
  BaseType_t D.8060;

  <bb 2> :
  pxTCB = pxMutexHolder;
  xReturn = 0;
  if (pxMutexHolder != 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 3> :
  pxCurrentTCB.117_1 = pxCurrentTCB;
  if (pxTCB != pxCurrentTCB.117_1)
    goto <bb 4>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 4> :
  vPortRaiseBASEPRI ();

  <bb 5> :
  goto <bb 5>; [INV]

  <bb 6> :
  _2 = pxTCB->uxMutexesHeld;
  if (_2 == 0)
    goto <bb 7>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 7> :
  vPortRaiseBASEPRI ();

  <bb 8> :
  goto <bb 8>; [INV]

  <bb 9> :
  _3 = pxTCB->uxMutexesHeld;
  _4 = _3 + 4294967295;
  pxTCB->uxMutexesHeld = _4;
  _5 = pxTCB->uxPriority;
  _6 = pxTCB->uxBasePriority;
  if (_5 != _6)
    goto <bb 10>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 10> :
  _7 = pxTCB->uxMutexesHeld;
  if (_7 == 0)
    goto <bb 11>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 11> :
  _8 = &pxTCB->xStateListItem;
  _9 = uxListRemove (_8);

  <bb 12> :
  _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 <bb 13>; [INV]
  else
    goto <bb 14>; [INV]

  <bb 13> :
  _15 = pxTCB->uxPriority;
  uxTopReadyPriority = _15;

  <bb 14> :
  _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;

  <bb 15> :
  D.8060 = xReturn;

  <bb 16> :
<L20>:
  return D.8060;

}


xTaskPriorityInherit (struct tskTaskControlBlock * const pxMutexHolder)
{
  struct ListItem_t * const pxIndex;
  BaseType_t xReturn;
  struct TCB_t * const pxMutexHolderTCB;
  BaseType_t D.8040;

  <bb 2> :
  pxMutexHolderTCB = pxMutexHolder;
  xReturn = 0;
  if (pxMutexHolder != 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 3> :
  _1 = pxMutexHolderTCB->uxPriority;
  pxCurrentTCB.111_2 = pxCurrentTCB;
  _3 = pxCurrentTCB.111_2->uxPriority;
  if (_1 < _3)
    goto <bb 4>; [INV]
  else
    goto <bb 13>; [INV]

  <bb 4> :
  _4 = pxMutexHolderTCB->xEventListItem.xItemValue;
  _5 = (signed int) _4;
  if (_5 >= 0)
    goto <bb 5>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 5> :
  pxCurrentTCB.112_6 = pxCurrentTCB;
  _7 = pxCurrentTCB.112_6->uxPriority;
  _8 = 5 - _7;
  pxMutexHolderTCB->xEventListItem.xItemValue = _8;

  <bb 6> :
  _9 = pxMutexHolderTCB->xStateListItem.pvContainer;
  _10 = pxMutexHolderTCB->uxPriority;
  _11 = &pxReadyTasksLists[_10];
  if (_9 == _11)
    goto <bb 7>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 7> :
  _12 = &pxMutexHolderTCB->xStateListItem;
  _13 = uxListRemove (_12);

  <bb 8> :
  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 <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  _18 = pxMutexHolderTCB->uxPriority;
  uxTopReadyPriority = _18;

  <bb 10> :
  _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 <bb 12>; [INV]

  <bb 11> :
  pxCurrentTCB.115_29 = pxCurrentTCB;
  _30 = pxCurrentTCB.115_29->uxPriority;
  pxMutexHolderTCB->uxPriority = _30;

  <bb 12> :
  xReturn = 1;
  goto <bb 15>; [INV]

  <bb 13> :
  _31 = pxMutexHolderTCB->uxBasePriority;
  pxCurrentTCB.116_32 = pxCurrentTCB;
  _33 = pxCurrentTCB.116_32->uxPriority;
  if (_31 < _33)
    goto <bb 14>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 14> :
  xReturn = 1;

  <bb 15> :
  D.8040 = xReturn;

  <bb 16> :
<L20>:
  return D.8040;

}


xTaskGetSchedulerState ()
{
  BaseType_t xReturn;
  BaseType_t D.8018;

  <bb 2> :
  xSchedulerRunning.109_1 = xSchedulerRunning;
  if (xSchedulerRunning.109_1 == 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  xReturn = 1;
  goto <bb 7>; [INV]

  <bb 4> :
  uxSchedulerSuspended.110_2 = uxSchedulerSuspended;
  if (uxSchedulerSuspended.110_2 == 0)
    goto <bb 5>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 5> :
  xReturn = 2;
  goto <bb 7>; [INV]

  <bb 6> :
  xReturn = 0;

  <bb 7> :
  D.8018 = xReturn;

  <bb 8> :
<L6>:
  return D.8018;

}


xTaskGetCurrentTaskHandle ()
{
  struct tskTaskControlBlock * xReturn;
  struct tskTaskControlBlock * D.8010;

  <bb 2> :
  xReturn = pxCurrentTCB;
  D.8010 = xReturn;

  <bb 3> :
<L0>:
  return D.8010;

}


prvResetNextTaskUnblockTime ()
{
  <bb 2> :
  pxDelayedTaskList.107_1 = pxDelayedTaskList;
  _2 = pxDelayedTaskList.107_1->uxNumberOfItems;
  if (_2 == 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  xNextTaskUnblockTime = 4294967295;
  goto <bb 5>; [INV]

  <bb 4> :
  pxDelayedTaskList.108_3 = pxDelayedTaskList;
  _4 = pxDelayedTaskList.108_3->xListEnd.pxNext;
  _5 = _4->xItemValue;
  xNextTaskUnblockTime = _5;

  <bb 5> :
  return;

}


prvDeleteTCB (struct TCB_t * pxTCB)
{
  <bb 2> :
  _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.8005;
  struct TCB_t * iftmp.106;

  <bb 2> :
  if (xTask == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  iftmp.106 = pxCurrentTCB;
  goto <bb 5>; [INV]

  <bb 4> :
  iftmp.106 = xTask;

  <bb 5> :
  pxTCB = iftmp.106;
  pucEndOfStack = pxTCB->pxStack;
  _1 = prvTaskCheckFreeStackSpace (pucEndOfStack);
  uxReturn = (UBaseType_t) _1;
  D.8005 = uxReturn;

  <bb 6> :
<L3>:
  return D.8005;

}


prvTaskCheckFreeStackSpace (const uint8_t * pucStackByte)
{
  uint32_t ulCount;
  uint16_t D.7999;

  <bb 2> :
  ulCount = 0;
  goto <bb 4>; [INV]

  <bb 3> :
  pucStackByte = pucStackByte + 1;
  ulCount = ulCount + 1;

  <bb 4> :
  _1 = *pucStackByte;
  if (_1 == 165)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 5> :
  ulCount = ulCount / 4;
  D.7999 = (uint16_t) ulCount;

  <bb 6> :
<L3>:
  return D.7999;

}


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.7997;

  <bb 2> :
  uxTask = 0;
  _1 = pxList->uxNumberOfItems;
  if (_1 != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 3> :
  pxConstList = pxList;
  _2 = pxConstList->pxIndex;
  _3 = _2->pxNext;
  pxConstList->pxIndex = _3;
  _4 = pxConstList->pxIndex;
  _5 = &pxConstList->xListEnd;
  if (_4 == _5)
    goto <bb 4>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 4> :
  _6 = pxConstList->pxIndex;
  _7 = _6->pxNext;
  pxConstList->pxIndex = _7;

  <bb 5> :
  _8 = pxConstList->pxIndex;
  pxFirstTCB = _8->pvOwner;

  <bb 6> :
  pxConstList = pxList;
  _9 = pxConstList->pxIndex;
  _10 = _9->pxNext;
  pxConstList->pxIndex = _10;
  _11 = pxConstList->pxIndex;
  _12 = &pxConstList->xListEnd;
  if (_11 == _12)
    goto <bb 7>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 7> :
  _13 = pxConstList->pxIndex;
  _14 = _13->pxNext;
  pxConstList->pxIndex = _14;

  <bb 8> :
  _15 = pxConstList->pxIndex;
  pxNextTCB = _15->pvOwner;
  _16 = uxTask * 36;
  _17 = pxTaskStatusArray + _16;
  vTaskGetInfo (pxNextTCB, _17, 1, eState);
  uxTask = uxTask + 1;
  if (pxNextTCB != pxFirstTCB)
    goto <bb 6>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 9> :
  D.7997 = uxTask;

  <bb 10> :
<L9>:
  return D.7997;

}


vTaskGetInfo (struct tskTaskControlBlock * xTask, struct TaskStatus_t * pxTaskStatus, BaseType_t xGetFreeStackSpace, eTaskState eState)
{
  struct TCB_t * pxTCB;
  struct TCB_t * iftmp.104;

  <bb 2> :
  if (xTask == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  iftmp.104 = pxCurrentTCB;
  goto <bb 5>; [INV]

  <bb 4> :
  iftmp.104 = xTask;

  <bb 5> :
  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 <bb 6>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 6> :
  pxCurrentTCB.105_6 = pxCurrentTCB;
  if (pxTCB == pxCurrentTCB.105_6)
    goto <bb 7>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 7> :
  pxTaskStatus->eCurrentState = 0;
  goto <bb 13>; [INV]

  <bb 8> :
  pxTaskStatus->eCurrentState = eState;
  if (eState == 3)
    goto <bb 9>; [INV]
  else
    goto <bb 13>; [INV]

  <bb 9> :
  vTaskSuspendAll ();
  _7 = pxTCB->xEventListItem.pvContainer;
  if (_7 != 0B)
    goto <bb 10>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 10> :
  pxTaskStatus->eCurrentState = 2;

  <bb 11> :
  xTaskResumeAll ();
  goto <bb 13>; [INV]

  <bb 12> :
  _8 = eTaskGetState (pxTCB);
  pxTaskStatus->eCurrentState = _8;

  <bb 13> :
  if (xGetFreeStackSpace != 0)
    goto <bb 14>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 14> :
  _9 = pxTCB->pxStack;
  _10 = prvTaskCheckFreeStackSpace (_9);
  pxTaskStatus->usStackHighWaterMark = _10;
  goto <bb 16>; [INV]

  <bb 15> :
  pxTaskStatus->usStackHighWaterMark = 0;

  <bb 16> :
  return;

}


prvCheckTasksWaitingTermination ()
{
  struct TCB_t * pxTCB;

  <bb 2> :
  goto <bb 4>; [INV]

  <bb 3> :
  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);

  <bb 4> :
  uxDeletedTasksWaitingCleanUp.103_7 = uxDeletedTasksWaitingCleanUp;
  if (uxDeletedTasksWaitingCleanUp.103_7 != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 5> :
  return;

}


prvInitialiseTaskLists ()
{
  UBaseType_t uxPriority;

  <bb 2> :
  uxPriority = 0;
  goto <bb 4>; [INV]

  <bb 3> :
  _1 = &pxReadyTasksLists[uxPriority];
  vListInitialise (_1);
  uxPriority = uxPriority + 1;

  <bb 4> :
  if (uxPriority <= 4)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 5> :
  vListInitialise (&xDelayedTaskList1);
  vListInitialise (&xDelayedTaskList2);
  vListInitialise (&xPendingReadyList);
  vListInitialise (&xTasksWaitingTermination);
  vListInitialise (&xSuspendedTaskList);
  pxDelayedTaskList = &xDelayedTaskList1;
  pxOverflowDelayedTaskList = &xDelayedTaskList2;
  return;

}


prvIdleTask (void * pvParameters)
{
  <bb 2> :
  prvCheckTasksWaitingTermination ();
  _1 = pxReadyTasksLists[0].uxNumberOfItems;
  if (_1 > 1)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  _2 = 3758157060B;
  *_2 = 268435456;
  __asm__ __volatile__("dsb" :  :  : "memory");
  __asm__ __volatile__("isb");

  <bb 4> :
  goto <bb 2>; [INV]

}


vTaskSetTaskNumber (struct tskTaskControlBlock * xTask, const UBaseType_t uxHandle)
{
  struct TCB_t * pxTCB;

  <bb 2> :
  if (xTask != 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  pxTCB = xTask;
  pxTCB->uxTaskNumber = uxHandle;

  <bb 4> :
  return;

}


uxTaskGetTaskNumber (struct tskTaskControlBlock * xTask)
{
  const struct TCB_t * pxTCB;
  UBaseType_t uxReturn;
  UBaseType_t D.7966;

  <bb 2> :
  if (xTask != 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  pxTCB = xTask;
  uxReturn = pxTCB->uxTaskNumber;
  goto <bb 5>; [INV]

  <bb 4> :
  uxReturn = 0;

  <bb 5> :
  D.7966 = uxReturn;

  <bb 6> :
<L3>:
  return D.7966;

}


vTaskMissedYield ()
{
  <bb 2> :
  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.7961;

  <bb 2> :
  if (pxTimeOut == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  if (pxTicksToWait == 0B)
    goto <bb 6>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 6> :
  vPortRaiseBASEPRI ();

  <bb 7> :
  goto <bb 7>; [INV]

  <bb 8> :
  vPortEnterCritical ();
  xConstTickCount = xTickCount;
  _1 = pxTimeOut->xTimeOnEntering;
  xElapsedTime = xConstTickCount - _1;
  pxCurrentTCB.98_2 = pxCurrentTCB;
  _3 = pxCurrentTCB.98_2->ucDelayAborted;
  if (_3 != 0)
    goto <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  pxCurrentTCB.99_4 = pxCurrentTCB;
  pxCurrentTCB.99_4->ucDelayAborted = 0;
  xReturn = 1;
  goto <bb 18>; [INV]

  <bb 10> :
  _5 = *pxTicksToWait;
  if (_5 == 4294967295)
    goto <bb 11>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 11> :
  xReturn = 0;
  goto <bb 18>; [INV]

  <bb 12> :
  _6 = pxTimeOut->xOverflowCount;
  xNumOfOverflows.100_7 = xNumOfOverflows;
  if (_6 != xNumOfOverflows.100_7)
    goto <bb 13>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 13> :
  _8 = pxTimeOut->xTimeOnEntering;
  if (xConstTickCount >= _8)
    goto <bb 14>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 14> :
  xReturn = 1;
  *pxTicksToWait = 0;
  goto <bb 18>; [INV]

  <bb 15> :
  _9 = *pxTicksToWait;
  if (xElapsedTime < _9)
    goto <bb 16>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 16> :
  _10 = *pxTicksToWait;
  _11 = _10 - xElapsedTime;
  *pxTicksToWait = _11;
  vTaskInternalSetTimeOutState (pxTimeOut);
  xReturn = 0;
  goto <bb 18>; [INV]

  <bb 17> :
  *pxTicksToWait = 0;
  xReturn = 1;

  <bb 18> :
  vPortExitCritical ();
  D.7961 = xReturn;

  <bb 19> :
<L19>:
  return D.7961;

}


vTaskInternalSetTimeOutState (struct TimeOut_t * const pxTimeOut)
{
  <bb 2> :
  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)
{
  <bb 2> :
  if (pxTimeOut == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  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;

  <bb 2> :
  uxSchedulerSuspended.91_1 = uxSchedulerSuspended;
  if (uxSchedulerSuspended.91_1 == 0)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  _2 = xItemValue | 2147483648;
  pxEventListItem->xItemValue = _2;
  pxUnblockedTCB = pxEventListItem->pvOwner;
  if (pxUnblockedTCB == 0B)
    goto <bb 6>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 6> :
  vPortRaiseBASEPRI ();

  <bb 7> :
  goto <bb 7>; [INV]

  <bb 8> :
  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 <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  _8 = pxEventListItem->pxPrevious;
  pxList->pxIndex = _8;

  <bb 10> :
  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 <bb 11>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 11> :
  _17 = pxUnblockedTCB->xStateListItem.pxPrevious;
  pxList->pxIndex = _17;

  <bb 12> :
  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 <bb 13>; [INV]
  else
    goto <bb 14>; [INV]

  <bb 13> :
  _22 = pxUnblockedTCB->uxPriority;
  uxTopReadyPriority = _22;

  <bb 14> :
  _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 <bb 15>; [INV]
  else
    goto <bb 16>; [INV]

  <bb 15> :
  xYieldPending = 1;

  <bb 16> :
  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.7928;

  <bb 2> :
  _1 = pxEventList->xListEnd.pxNext;
  pxUnblockedTCB = _1->pvOwner;
  if (pxUnblockedTCB == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  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 <bb 6>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 6> :
  _8 = pxUnblockedTCB->xEventListItem.pxPrevious;
  pxList->pxIndex = _8;

  <bb 7> :
  pxUnblockedTCB->xEventListItem.pvContainer = 0B;
  _9 = pxList->uxNumberOfItems;
  _10 = _9 + 4294967295;
  pxList->uxNumberOfItems = _10;
  uxSchedulerSuspended.88_11 = uxSchedulerSuspended;
  if (uxSchedulerSuspended.88_11 == 0)
    goto <bb 8>; [INV]
  else
    goto <bb 13>; [INV]

  <bb 8> :
  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 <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  _18 = pxUnblockedTCB->xStateListItem.pxPrevious;
  pxList->pxIndex = _18;

  <bb 10> :
  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 <bb 11>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 11> :
  _23 = pxUnblockedTCB->uxPriority;
  uxTopReadyPriority = _23;

  <bb 12> :
  _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 <bb 14>; [INV]

  <bb 13> :
  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;

  <bb 14> :
  _40 = pxUnblockedTCB->uxPriority;
  pxCurrentTCB.90_41 = pxCurrentTCB;
  _42 = pxCurrentTCB.90_41->uxPriority;
  if (_40 > _42)
    goto <bb 15>; [INV]
  else
    goto <bb 16>; [INV]

  <bb 15> :
  xReturn = 1;
  xYieldPending = 1;
  goto <bb 17>; [INV]

  <bb 16> :
  xReturn = 0;

  <bb 17> :
  D.7928 = xReturn;

  <bb 18> :
<L15>:
  return D.7928;

}


vTaskPlaceOnEventListRestricted (struct List_t * const pxEventList, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely)
{
  struct ListItem_t * const pxIndex;

  <bb 2> :
  if (pxEventList == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  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 <bb 6>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 6> :
  xTicksToWait = 4294967295;

  <bb 7> :
  prvAddCurrentTaskToDelayedList (xTicksToWait, xWaitIndefinitely);
  return;

}


vTaskPlaceOnUnorderedEventList (struct List_t * pxEventList, const TickType_t xItemValue, const TickType_t xTicksToWait)
{
  struct ListItem_t * const pxIndex;

  <bb 2> :
  if (pxEventList == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  uxSchedulerSuspended.76_1 = uxSchedulerSuspended;
  if (uxSchedulerSuspended.76_1 == 0)
    goto <bb 6>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 6> :
  vPortRaiseBASEPRI ();

  <bb 7> :
  goto <bb 7>; [INV]

  <bb 8> :
  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)
{
  <bb 2> :
  if (pxEventList == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  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;

  <bb 2> :
  uxSchedulerSuspended.74_1 = uxSchedulerSuspended;
  if (uxSchedulerSuspended.74_1 != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  xYieldPending = 1;
  goto <bb 13>; [INV]

  <bb 4> :
  xYieldPending = 0;
  uxTopPriority = uxTopReadyPriority;
  goto <bb 9>; [INV]

  <bb 5> :
  if (uxTopPriority == 0)
    goto <bb 6>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 6> :
  vPortRaiseBASEPRI ();

  <bb 7> :
  goto <bb 7>; [INV]

  <bb 8> :
  uxTopPriority = uxTopPriority + 4294967295;

  <bb 9> :
  _2 = pxReadyTasksLists[uxTopPriority].uxNumberOfItems;
  if (_2 == 0)
    goto <bb 5>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 10> :
  pxConstList = &pxReadyTasksLists[uxTopPriority];
  _3 = pxConstList->pxIndex;
  _4 = _3->pxNext;
  pxConstList->pxIndex = _4;
  _5 = pxConstList->pxIndex;
  _6 = &pxConstList->xListEnd;
  if (_5 == _6)
    goto <bb 11>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 11> :
  _7 = pxConstList->pxIndex;
  _8 = _7->pxNext;
  pxConstList->pxIndex = _8;

  <bb 12> :
  _9 = pxConstList->pxIndex;
  _10 = _9->pvOwner;
  pxCurrentTCB = _10;
  uxTopReadyPriority = uxTopPriority;

  <bb 13> :
  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.7895;

  <bb 2> :
  xSwitchRequired = 0;
  uxSchedulerSuspended.61_1 = uxSchedulerSuspended;
  if (uxSchedulerSuspended.61_1 == 0)
    goto <bb 3>; [INV]
  else
    goto <bb 28>; [INV]

  <bb 3> :
  xTickCount.62_2 = xTickCount;
  xConstTickCount = xTickCount.62_2 + 1;
  xTickCount = xConstTickCount;
  if (xConstTickCount == 0)
    goto <bb 4>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 4> :
  pxDelayedTaskList.63_3 = pxDelayedTaskList;
  _4 = pxDelayedTaskList.63_3->uxNumberOfItems;
  if (_4 != 0)
    goto <bb 5>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 5> :
  vPortRaiseBASEPRI ();

  <bb 6> :
  goto <bb 6>; [INV]

  <bb 7> :
  pxTemp = pxDelayedTaskList;
  pxOverflowDelayedTaskList.64_5 = pxOverflowDelayedTaskList;
  pxDelayedTaskList = pxOverflowDelayedTaskList.64_5;
  pxOverflowDelayedTaskList = pxTemp;
  xNumOfOverflows.65_6 = xNumOfOverflows;
  _7 = xNumOfOverflows.65_6 + 1;
  xNumOfOverflows = _7;
  prvResetNextTaskUnblockTime ();

  <bb 8> :
  xNextTaskUnblockTime.66_8 = xNextTaskUnblockTime;
  if (xConstTickCount >= xNextTaskUnblockTime.66_8)
    goto <bb 9>; [INV]
  else
    goto <bb 24>; [INV]

  <bb 9> :
  pxDelayedTaskList.67_9 = pxDelayedTaskList;
  _10 = pxDelayedTaskList.67_9->uxNumberOfItems;
  if (_10 == 0)
    goto <bb 10>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 10> :
  xNextTaskUnblockTime = 4294967295;
  goto <bb 24>; [INV]

  <bb 11> :
  pxDelayedTaskList.68_11 = pxDelayedTaskList;
  _12 = pxDelayedTaskList.68_11->xListEnd.pxNext;
  pxTCB = _12->pvOwner;
  xItemValue = pxTCB->xStateListItem.xItemValue;
  if (xConstTickCount < xItemValue)
    goto <bb 12>; [INV]
  else
    goto <bb 13>; [INV]

  <bb 12> :
  xNextTaskUnblockTime = xItemValue;
  goto <bb 24>; [INV]

  <bb 13> :
  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 <bb 14>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 14> :
  _19 = pxTCB->xStateListItem.pxPrevious;
  pxList->pxIndex = _19;

  <bb 15> :
  pxTCB->xStateListItem.pvContainer = 0B;
  _20 = pxList->uxNumberOfItems;
  _21 = _20 + 4294967295;
  pxList->uxNumberOfItems = _21;
  _22 = pxTCB->xEventListItem.pvContainer;
  if (_22 != 0B)
    goto <bb 16>; [INV]
  else
    goto <bb 19>; [INV]

  <bb 16> :
  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 <bb 17>; [INV]
  else
    goto <bb 18>; [INV]

  <bb 17> :
  _29 = pxTCB->xEventListItem.pxPrevious;
  pxList->pxIndex = _29;

  <bb 18> :
  pxTCB->xEventListItem.pvContainer = 0B;
  _30 = pxList->uxNumberOfItems;
  _31 = _30 + 4294967295;
  pxList->uxNumberOfItems = _31;

  <bb 19> :
  _32 = pxTCB->uxPriority;
  uxTopReadyPriority.69_33 = uxTopReadyPriority;
  if (_32 > uxTopReadyPriority.69_33)
    goto <bb 20>; [INV]
  else
    goto <bb 21>; [INV]

  <bb 20> :
  _34 = pxTCB->uxPriority;
  uxTopReadyPriority = _34;

  <bb 21> :
  _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 <bb 22>; [INV]
  else
    goto <bb 23>; [INV]

  <bb 22> :
  xSwitchRequired = 1;

  <bb 23> :
  goto <bb 9>; [INV]

  <bb 24> :
  pxCurrentTCB.71_48 = pxCurrentTCB;
  _49 = pxCurrentTCB.71_48->uxPriority;
  _50 = pxReadyTasksLists[_49].uxNumberOfItems;
  if (_50 > 1)
    goto <bb 25>; [INV]
  else
    goto <bb 26>; [INV]

  <bb 25> :
  xSwitchRequired = 1;

  <bb 26> :
  xYieldPending.72_51 = xYieldPending;
  if (xYieldPending.72_51 != 0)
    goto <bb 27>; [INV]
  else
    goto <bb 29>; [INV]

  <bb 27> :
  xSwitchRequired = 1;
  goto <bb 29>; [INV]

  <bb 28> :
  xPendedTicks.73_52 = xPendedTicks;
  _53 = xPendedTicks.73_52 + 1;
  xPendedTicks = _53;

  <bb 29> :
  D.7895 = xSwitchRequired;

  <bb 30> :
<L35>:
  return D.7895;

}


xTaskAbortDelay (struct tskTaskControlBlock * xTask)
{
  struct ListItem_t * const pxIndex;
  BaseType_t xReturn;
  struct TCB_t * pxTCB;
  BaseType_t D.7861;

  <bb 2> :
  pxTCB = xTask;
  if (pxTCB == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  vTaskSuspendAll ();
  _1 = eTaskGetState (xTask);
  if (_1 == 2)
    goto <bb 6>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 6> :
  xReturn = 1;
  _2 = &pxTCB->xStateListItem;
  uxListRemove (_2);
  vPortEnterCritical ();
  _3 = pxTCB->xEventListItem.pvContainer;
  if (_3 != 0B)
    goto <bb 7>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 7> :
  _4 = &pxTCB->xEventListItem;
  uxListRemove (_4);
  pxTCB->ucDelayAborted = 1;

  <bb 8> :
  vPortExitCritical ();
  _5 = pxTCB->uxPriority;
  uxTopReadyPriority.59_6 = uxTopReadyPriority;
  if (_5 > uxTopReadyPriority.59_6)
    goto <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  _7 = pxTCB->uxPriority;
  uxTopReadyPriority = _7;

  <bb 10> :
  _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 <bb 11>; [INV]
  else
    goto <bb 13>; [INV]

  <bb 11> :
  xYieldPending = 1;
  goto <bb 13>; [INV]

  <bb 12> :
  xReturn = 0;

  <bb 13> :
  xTaskResumeAll ();
  D.7861 = xReturn;

  <bb 14> :
<L14>:
  return D.7861;

}


xTaskCatchUpTicks (TickType_t xTicksToCatchUp)
{
  BaseType_t xYieldOccurred;
  BaseType_t D.7846;

  <bb 2> :
  uxSchedulerSuspended.57_1 = uxSchedulerSuspended;
  if (uxSchedulerSuspended.57_1 != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  vTaskSuspendAll ();
  xPendedTicks.58_2 = xPendedTicks;
  _3 = xTicksToCatchUp + xPendedTicks.58_2;
  xPendedTicks = _3;
  xYieldOccurred = xTaskResumeAll ();
  D.7846 = xYieldOccurred;

  <bb 6> :
<L3>:
  return D.7846;

}


uxTaskGetSystemState (struct TaskStatus_t * const pxTaskStatusArray, const UBaseType_t uxArraySize, uint32_t * const pulTotalRunTime)
{
  UBaseType_t uxQueue;
  UBaseType_t uxTask;
  UBaseType_t D.7842;
  long unsigned int D.7838;
  long unsigned int D.7837;
  long unsigned int D.7836;
  long unsigned int D.7835;
  long unsigned int D.7834;

  <bb 2> :
  uxTask = 0;
  uxQueue = 5;
  vTaskSuspendAll ();
  uxCurrentNumberOfTasks.54_1 = uxCurrentNumberOfTasks;
  if (uxArraySize >= uxCurrentNumberOfTasks.54_1)
    goto <bb 3>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 3> :
  uxQueue = uxQueue + 4294967295;
  _2 = uxTask * 36;
  _3 = pxTaskStatusArray + _2;
  _4 = &pxReadyTasksLists[uxQueue];
  D.7834 = prvListTasksWithinSingleList (_3, _4, 1);
  uxTask = D.7834 + uxTask;
  if (uxQueue != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 4> :
  _5 = uxTask * 36;
  _6 = pxTaskStatusArray + _5;
  pxDelayedTaskList.55_7 = pxDelayedTaskList;
  D.7835 = prvListTasksWithinSingleList (_6, pxDelayedTaskList.55_7, 2);
  uxTask = D.7835 + uxTask;
  _8 = uxTask * 36;
  _9 = pxTaskStatusArray + _8;
  pxOverflowDelayedTaskList.56_10 = pxOverflowDelayedTaskList;
  D.7836 = prvListTasksWithinSingleList (_9, pxOverflowDelayedTaskList.56_10, 2);
  uxTask = D.7836 + uxTask;
  _11 = uxTask * 36;
  _12 = pxTaskStatusArray + _11;
  D.7837 = prvListTasksWithinSingleList (_12, &xTasksWaitingTermination, 4);
  uxTask = D.7837 + uxTask;
  _13 = uxTask * 36;
  _14 = pxTaskStatusArray + _13;
  D.7838 = prvListTasksWithinSingleList (_14, &xSuspendedTaskList, 3);
  uxTask = D.7838 + uxTask;
  if (pulTotalRunTime != 0B)
    goto <bb 5>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 5> :
  *pulTotalRunTime = 0;

  <bb 6> :
  xTaskResumeAll ();
  D.7842 = uxTask;

  <bb 7> :
<L7>:
  return D.7842;

}


xTaskGetHandle (const char * pcNameToQuery)
{
  struct TCB_t * pxTCB;
  UBaseType_t uxQueue;
  struct tskTaskControlBlock * D.7830;

  <bb 2> :
  uxQueue = 5;
  _1 = strlen (pcNameToQuery);
  if (_1 > 9)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  vTaskSuspendAll ();

  <bb 6> :
  uxQueue = uxQueue + 4294967295;
  _2 = &pxReadyTasksLists[uxQueue];
  pxTCB = prvSearchForNameWithinSingleList (_2, pcNameToQuery);
  if (pxTCB != 0B)
    goto <bb 7>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 7> :
  goto <bb 9>; [INV]

  <bb 8> :
  if (uxQueue != 0)
    goto <bb 6>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 9> :
  if (pxTCB == 0B)
    goto <bb 10>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 10> :
  pxDelayedTaskList.52_3 = pxDelayedTaskList;
  pxTCB = prvSearchForNameWithinSingleList (pxDelayedTaskList.52_3, pcNameToQuery);

  <bb 11> :
  if (pxTCB == 0B)
    goto <bb 12>; [INV]
  else
    goto <bb 13>; [INV]

  <bb 12> :
  pxOverflowDelayedTaskList.53_4 = pxOverflowDelayedTaskList;
  pxTCB = prvSearchForNameWithinSingleList (pxOverflowDelayedTaskList.53_4, pcNameToQuery);

  <bb 13> :
  if (pxTCB == 0B)
    goto <bb 14>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 14> :
  pxTCB = prvSearchForNameWithinSingleList (&xSuspendedTaskList, pcNameToQuery);

  <bb 15> :
  if (pxTCB == 0B)
    goto <bb 16>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 16> :
  pxTCB = prvSearchForNameWithinSingleList (&xTasksWaitingTermination, pcNameToQuery);

  <bb 17> :
  xTaskResumeAll ();
  D.7830 = pxTCB;

  <bb 18> :
<L15>:
  return D.7830;

}


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.7816;

  <bb 2> :
  pxReturn = 0B;
  _1 = pxList->uxNumberOfItems;
  if (_1 != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 21>; [INV]

  <bb 3> :
  pxConstList = pxList;
  _2 = pxConstList->pxIndex;
  _3 = _2->pxNext;
  pxConstList->pxIndex = _3;
  _4 = pxConstList->pxIndex;
  _5 = &pxConstList->xListEnd;
  if (_4 == _5)
    goto <bb 4>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 4> :
  _6 = pxConstList->pxIndex;
  _7 = _6->pxNext;
  pxConstList->pxIndex = _7;

  <bb 5> :
  _8 = pxConstList->pxIndex;
  pxFirstTCB = _8->pvOwner;

  <bb 6> :
  pxConstList = pxList;
  _9 = pxConstList->pxIndex;
  _10 = _9->pxNext;
  pxConstList->pxIndex = _10;
  _11 = pxConstList->pxIndex;
  _12 = &pxConstList->xListEnd;
  if (_11 == _12)
    goto <bb 7>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 7> :
  _13 = pxConstList->pxIndex;
  _14 = _13->pxNext;
  pxConstList->pxIndex = _14;

  <bb 8> :
  _15 = pxConstList->pxIndex;
  pxNextTCB = _15->pvOwner;
  xBreakLoop = 0;
  x = 0;
  goto <bb 16>; [INV]

  <bb 9> :
  cNextChar = pxNextTCB->pcTaskName[x];
  _16 = pcNameToQuery + x;
  _17 = *_16;
  if (cNextChar != _17)
    goto <bb 10>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 10> :
  xBreakLoop = 1;
  goto <bb 13>; [INV]

  <bb 11> :
  if (cNextChar == 0)
    goto <bb 12>; [INV]
  else
    goto <bb 13>; [INV]

  <bb 12> :
  pxReturn = pxNextTCB;
  xBreakLoop = 1;

  <bb 13> :
  if (xBreakLoop != 0)
    goto <bb 14>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 14> :
  goto <bb 17>; [INV]

  <bb 15> :
  x = x + 1;

  <bb 16> :
  if (x <= 9)
    goto <bb 9>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 17> :
  if (pxReturn != 0B)
    goto <bb 18>; [INV]
  else
    goto <bb 19>; [INV]

  <bb 18> :
  goto <bb 20>; [INV]

  <bb 19> :
  if (pxNextTCB != pxFirstTCB)
    goto <bb 6>; [INV]
  else
    goto <bb 20>; [INV]

  <bb 20> :

  <bb 21> :
  D.7816 = pxReturn;

  <bb 22> :
<L22>:
  return D.7816;

}


pcTaskGetName (struct tskTaskControlBlock * xTaskToQuery)
{
  struct TCB_t * pxTCB;
  char * D.7797;
  struct TCB_t * iftmp.51;

  <bb 2> :
  if (xTaskToQuery == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  iftmp.51 = pxCurrentTCB;
  goto <bb 5>; [INV]

  <bb 4> :
  iftmp.51 = xTaskToQuery;

  <bb 5> :
  pxTCB = iftmp.51;
  if (pxTCB == 0B)
    goto <bb 6>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 6> :
  vPortRaiseBASEPRI ();

  <bb 7> :
  goto <bb 7>; [INV]

  <bb 8> :
  D.7797 = &pxTCB->pcTaskName[0];

  <bb 9> :
<L6>:
  return D.7797;

}


uxTaskGetNumberOfTasks ()
{
  UBaseType_t D.7789;

  <bb 2> :
  D.7789 = uxCurrentNumberOfTasks;

  <bb 3> :
<L0>:
  return D.7789;

}


xTaskGetTickCountFromISR ()
{
  UBaseType_t uxSavedInterruptStatus;
  TickType_t xReturn;
  TickType_t D.7787;

  <bb 2> :
  vPortValidateInterruptPriority ();
  uxSavedInterruptStatus = 0;
  xReturn = xTickCount;
  D.7787 = xReturn;

  <bb 3> :
<L0>:
  return D.7787;

}


xTaskGetTickCount ()
{
  TickType_t xTicks;
  TickType_t D.7785;

  <bb 2> :
  xTicks = xTickCount;
  D.7785 = xTicks;

  <bb 3> :
<L0>:
  return D.7785;

}


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.7783;

  <bb 2> :
  pxTCB = 0B;
  xAlreadyYielded = 0;
  uxSchedulerSuspended.44_1 = uxSchedulerSuspended;
  if (uxSchedulerSuspended.44_1 == 0)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  vPortEnterCritical ();
  uxSchedulerSuspended.45_2 = uxSchedulerSuspended;
  _3 = uxSchedulerSuspended.45_2 + 4294967295;
  uxSchedulerSuspended = _3;
  uxSchedulerSuspended.46_4 = uxSchedulerSuspended;
  if (uxSchedulerSuspended.46_4 == 0)
    goto <bb 6>; [INV]
  else
    goto <bb 26>; [INV]

  <bb 6> :
  uxCurrentNumberOfTasks.47_5 = uxCurrentNumberOfTasks;
  if (uxCurrentNumberOfTasks.47_5 != 0)
    goto <bb 7>; [INV]
  else
    goto <bb 26>; [INV]

  <bb 7> :
  goto <bb 16>; [INV]

  <bb 8> :
  _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 <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  _13 = pxTCB->xEventListItem.pxPrevious;
  pxList->pxIndex = _13;

  <bb 10> :
  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 <bb 11>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 11> :
  _22 = pxTCB->xStateListItem.pxPrevious;
  pxList->pxIndex = _22;

  <bb 12> :
  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 <bb 13>; [INV]
  else
    goto <bb 14>; [INV]

  <bb 13> :
  _27 = pxTCB->uxPriority;
  uxTopReadyPriority = _27;

  <bb 14> :
  _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 <bb 15>; [INV]
  else
    goto <bb 16>; [INV]

  <bb 15> :
  xYieldPending = 1;

  <bb 16> :
  _41 = xPendingReadyList.uxNumberOfItems;
  if (_41 != 0)
    goto <bb 8>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 17> :
  if (pxTCB != 0B)
    goto <bb 18>; [INV]
  else
    goto <bb 19>; [INV]

  <bb 18> :
  prvResetNextTaskUnblockTime ();

  <bb 19> :
  xPendedCounts = xPendedTicks;
  if (xPendedCounts != 0)
    goto <bb 20>; [INV]
  else
    goto <bb 24>; [INV]

  <bb 20> :
  _42 = xTaskIncrementTick ();
  if (_42 != 0)
    goto <bb 21>; [INV]
  else
    goto <bb 22>; [INV]

  <bb 21> :
  xYieldPending = 1;

  <bb 22> :
  xPendedCounts = xPendedCounts + 4294967295;
  if (xPendedCounts != 0)
    goto <bb 20>; [INV]
  else
    goto <bb 23>; [INV]

  <bb 23> :
  xPendedTicks = 0;

  <bb 24> :
  xYieldPending.50_43 = xYieldPending;
  if (xYieldPending.50_43 != 0)
    goto <bb 25>; [INV]
  else
    goto <bb 26>; [INV]

  <bb 25> :
  xAlreadyYielded = 1;
  _44 = 3758157060B;
  *_44 = 268435456;
  __asm__ __volatile__("dsb" :  :  : "memory");
  __asm__ __volatile__("isb");

  <bb 26> :
  vPortExitCritical ();
  D.7783 = xAlreadyYielded;

  <bb 27> :
<L33>:
  return D.7783;

}


vTaskSuspendAll ()
{
  <bb 2> :
  uxSchedulerSuspended.43_1 = uxSchedulerSuspended;
  _2 = uxSchedulerSuspended.43_1 + 1;
  uxSchedulerSuspended = _2;
  __asm__ __volatile__("" :  :  : "memory");
  return;

}


vTaskEndScheduler ()
{
  <bb 2> :
  vPortRaiseBASEPRI ();
  xSchedulerRunning = 0;
  vPortEndScheduler ();
  return;

}


vTaskStartScheduler ()
{
  BaseType_t xReturn;
  long unsigned int vol.42;

  <bb 2> :
  xReturn = xTaskCreate (prvIdleTask, "IDLE", 90, 0B, 0, &xIdleTaskHandle);
  if (xReturn == 1)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  xReturn = xTimerCreateTimerTask ();

  <bb 4> :
  if (xReturn == 1)
    goto <bb 5>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 5> :
  vPortRaiseBASEPRI ();
  xNextTaskUnblockTime = 4294967295;
  xSchedulerRunning = 1;
  xTickCount = 0;
  _1 = xPortStartScheduler ();
  goto <bb 9>; [INV]

  <bb 6> :
  if (xReturn == -1)
    goto <bb 7>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 7> :
  vPortRaiseBASEPRI ();

  <bb 8> :
  goto <bb 8>; [INV]

  <bb 9> :
  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.7742;

  <bb 2> :
  xYieldRequired = 0;
  pxTCB = xTaskToResume;
  if (xTaskToResume == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  vPortValidateInterruptPriority ();
  uxSavedInterruptStatus = ulPortRaiseBASEPRI ();
  _1 = prvTaskIsTaskSuspended (pxTCB);
  if (_1 != 0)
    goto <bb 6>; [INV]
  else
    goto <bb 13>; [INV]

  <bb 6> :
  uxSchedulerSuspended.39_2 = uxSchedulerSuspended;
  if (uxSchedulerSuspended.39_2 == 0)
    goto <bb 7>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 7> :
  _3 = pxTCB->uxPriority;
  pxCurrentTCB.40_4 = pxCurrentTCB;
  _5 = pxCurrentTCB.40_4->uxPriority;
  if (_3 >= _5)
    goto <bb 8>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 8> :
  xYieldRequired = 1;
  xYieldPending = 1;

  <bb 9> :
  _6 = &pxTCB->xStateListItem;
  uxListRemove (_6);
  _7 = pxTCB->uxPriority;
  uxTopReadyPriority.41_8 = uxTopReadyPriority;
  if (_7 > uxTopReadyPriority.41_8)
    goto <bb 10>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 10> :
  _9 = pxTCB->uxPriority;
  uxTopReadyPriority = _9;

  <bb 11> :
  _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 <bb 13>; [INV]

  <bb 12> :
  _20 = &pxTCB->xEventListItem;
  vListInsertEnd (&xPendingReadyList, _20);

  <bb 13> :
  vPortSetBASEPRI (uxSavedInterruptStatus);
  D.7742 = xYieldRequired;

  <bb 14> :
<L14>:
  return D.7742;

}


vTaskResume (struct tskTaskControlBlock * xTaskToResume)
{
  struct ListItem_t * const pxIndex;
  struct TCB_t * const pxTCB;

  <bb 2> :
  pxTCB = xTaskToResume;
  if (xTaskToResume == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  pxCurrentTCB.36_1 = pxCurrentTCB;
  if (pxTCB != pxCurrentTCB.36_1)
    goto <bb 6>; [INV]
  else
    goto <bb 13>; [INV]

  <bb 6> :
  if (pxTCB != 0B)
    goto <bb 7>; [INV]
  else
    goto <bb 13>; [INV]

  <bb 7> :
  vPortEnterCritical ();
  _2 = prvTaskIsTaskSuspended (pxTCB);
  if (_2 != 0)
    goto <bb 8>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 8> :
  _3 = &pxTCB->xStateListItem;
  uxListRemove (_3);
  _4 = pxTCB->uxPriority;
  uxTopReadyPriority.37_5 = uxTopReadyPriority;
  if (_4 > uxTopReadyPriority.37_5)
    goto <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  _6 = pxTCB->uxPriority;
  uxTopReadyPriority = _6;

  <bb 10> :
  _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 <bb 11>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 11> :
  _20 = 3758157060B;
  *_20 = 268435456;
  __asm__ __volatile__("dsb" :  :  : "memory");
  __asm__ __volatile__("isb");

  <bb 12> :
  vPortExitCritical ();

  <bb 13> :
  return;

}


prvTaskIsTaskSuspended (struct tskTaskControlBlock * const xTask)
{
  const struct TCB_t * const pxTCB;
  BaseType_t xReturn;
  BaseType_t D.7712;

  <bb 2> :
  xReturn = 0;
  pxTCB = xTask;
  if (xTask == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  _1 = pxTCB->xStateListItem.pvContainer;
  if (_1 == &xSuspendedTaskList)
    goto <bb 6>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 6> :
  _2 = pxTCB->xEventListItem.pvContainer;
  if (_2 != &xPendingReadyList)
    goto <bb 7>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 7> :
  _3 = pxTCB->xEventListItem.pvContainer;
  if (_3 == 0B)
    goto <bb 8>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 8> :
  xReturn = 1;

  <bb 9> :
  D.7712 = xReturn;

  <bb 10> :
<L12>:
  return D.7712;

}


vTaskSuspend (struct tskTaskControlBlock * xTaskToSuspend)
{
  BaseType_t x;
  struct TCB_t * pxTCB;
  struct TCB_t * iftmp.30;

  <bb 2> :
  vPortEnterCritical ();
  if (xTaskToSuspend == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  iftmp.30 = pxCurrentTCB;
  goto <bb 5>; [INV]

  <bb 4> :
  iftmp.30 = xTaskToSuspend;

  <bb 5> :
  pxTCB = iftmp.30;
  _1 = &pxTCB->xStateListItem;
  _2 = uxListRemove (_1);

  <bb 6> :
  _3 = pxTCB->xEventListItem.pvContainer;
  if (_3 != 0B)
    goto <bb 7>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 7> :
  _4 = &pxTCB->xEventListItem;
  uxListRemove (_4);

  <bb 8> :
  _5 = &pxTCB->xStateListItem;
  vListInsertEnd (&xSuspendedTaskList, _5);
  x = 0;
  goto <bb 12>; [INV]

  <bb 9> :
  _6 = pxTCB->ucNotifyState[x];
  if (_6 == 1)
    goto <bb 10>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 10> :
  pxTCB->ucNotifyState[x] = 0;

  <bb 11> :
  x = x + 1;

  <bb 12> :
  if (x <= 0)
    goto <bb 9>; [INV]
  else
    goto <bb 13>; [INV]

  <bb 13> :
  vPortExitCritical ();
  xSchedulerRunning.31_7 = xSchedulerRunning;
  if (xSchedulerRunning.31_7 != 0)
    goto <bb 14>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 14> :
  vPortEnterCritical ();
  prvResetNextTaskUnblockTime ();
  vPortExitCritical ();

  <bb 15> :
  pxCurrentTCB.32_8 = pxCurrentTCB;
  if (pxTCB == pxCurrentTCB.32_8)
    goto <bb 16>; [INV]
  else
    goto <bb 24>; [INV]

  <bb 16> :
  xSchedulerRunning.33_9 = xSchedulerRunning;
  if (xSchedulerRunning.33_9 != 0)
    goto <bb 17>; [INV]
  else
    goto <bb 21>; [INV]

  <bb 17> :
  uxSchedulerSuspended.34_10 = uxSchedulerSuspended;
  if (uxSchedulerSuspended.34_10 != 0)
    goto <bb 18>; [INV]
  else
    goto <bb 20>; [INV]

  <bb 18> :
  vPortRaiseBASEPRI ();

  <bb 19> :
  goto <bb 19>; [INV]

  <bb 20> :
  _11 = 3758157060B;
  *_11 = 268435456;
  __asm__ __volatile__("dsb" :  :  : "memory");
  __asm__ __volatile__("isb");
  goto <bb 24>; [INV]

  <bb 21> :
  _12 = xSuspendedTaskList.uxNumberOfItems;
  uxCurrentNumberOfTasks.35_13 = uxCurrentNumberOfTasks;
  if (_12 == uxCurrentNumberOfTasks.35_13)
    goto <bb 22>; [INV]
  else
    goto <bb 23>; [INV]

  <bb 22> :
  pxCurrentTCB = 0B;
  goto <bb 24>; [INV]

  <bb 23> :
  vTaskSwitchContext ();

  <bb 24> :
  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;

  <bb 2> :
  xYieldRequired = 0;
  if (uxNewPriority > 4)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  if (uxNewPriority > 4)
    goto <bb 6>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 6> :
  uxNewPriority = 4;

  <bb 7> :
  vPortEnterCritical ();
  if (xTask == 0B)
    goto <bb 8>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 8> :
  iftmp.25 = pxCurrentTCB;
  goto <bb 10>; [INV]

  <bb 9> :
  iftmp.25 = xTask;

  <bb 10> :
  pxTCB = iftmp.25;
  uxCurrentBasePriority = pxTCB->uxBasePriority;
  if (uxCurrentBasePriority != uxNewPriority)
    goto <bb 11>; [INV]
  else
    goto <bb 28>; [INV]

  <bb 11> :
  if (uxNewPriority > uxCurrentBasePriority)
    goto <bb 12>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 12> :
  pxCurrentTCB.26_1 = pxCurrentTCB;
  if (pxTCB != pxCurrentTCB.26_1)
    goto <bb 13>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 13> :
  pxCurrentTCB.27_2 = pxCurrentTCB;
  _3 = pxCurrentTCB.27_2->uxPriority;
  if (uxNewPriority >= _3)
    goto <bb 14>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 14> :
  xYieldRequired = 1;
  goto <bb 17>; [INV]

  <bb 15> :
  pxCurrentTCB.28_4 = pxCurrentTCB;
  if (pxTCB == pxCurrentTCB.28_4)
    goto <bb 16>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 16> :
  xYieldRequired = 1;

  <bb 17> :
  uxPriorityUsedOnEntry = pxTCB->uxPriority;
  _5 = pxTCB->uxBasePriority;
  _6 = pxTCB->uxPriority;
  if (_5 == _6)
    goto <bb 18>; [INV]
  else
    goto <bb 19>; [INV]

  <bb 18> :
  pxTCB->uxPriority = uxNewPriority;

  <bb 19> :
  pxTCB->uxBasePriority = uxNewPriority;
  _7 = pxTCB->xEventListItem.xItemValue;
  _8 = (signed int) _7;
  if (_8 >= 0)
    goto <bb 20>; [INV]
  else
    goto <bb 21>; [INV]

  <bb 20> :
  _9 = 5 - uxNewPriority;
  pxTCB->xEventListItem.xItemValue = _9;

  <bb 21> :
  _10 = pxTCB->xStateListItem.pvContainer;
  _11 = &pxReadyTasksLists[uxPriorityUsedOnEntry];
  if (_10 == _11)
    goto <bb 22>; [INV]
  else
    goto <bb 26>; [INV]

  <bb 22> :
  _12 = &pxTCB->xStateListItem;
  _13 = uxListRemove (_12);

  <bb 23> :
  _14 = pxTCB->uxPriority;
  uxTopReadyPriority.29_15 = uxTopReadyPriority;
  if (_14 > uxTopReadyPriority.29_15)
    goto <bb 24>; [INV]
  else
    goto <bb 25>; [INV]

  <bb 24> :
  _16 = pxTCB->uxPriority;
  uxTopReadyPriority = _16;

  <bb 25> :
  _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;

  <bb 26> :
  if (xYieldRequired != 0)
    goto <bb 27>; [INV]
  else
    goto <bb 28>; [INV]

  <bb 27> :
  _27 = 3758157060B;
  *_27 = 268435456;
  __asm__ __volatile__("dsb" :  :  : "memory");
  __asm__ __volatile__("isb");

  <bb 28> :
  vPortExitCritical ();
  return;

}


uxTaskPriorityGetFromISR (struct tskTaskControlBlock * const xTask)
{
  UBaseType_t uxSavedInterruptState;
  UBaseType_t uxReturn;
  const struct TCB_t * pxTCB;
  UBaseType_t D.7631;
  const struct TCB_t * iftmp.24;

  <bb 2> :
  vPortValidateInterruptPriority ();
  uxSavedInterruptState = ulPortRaiseBASEPRI ();
  if (xTask == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  iftmp.24 = pxCurrentTCB;
  goto <bb 5>; [INV]

  <bb 4> :
  iftmp.24 = xTask;

  <bb 5> :
  pxTCB = iftmp.24;
  uxReturn = pxTCB->uxPriority;
  vPortSetBASEPRI (uxSavedInterruptState);
  D.7631 = uxReturn;

  <bb 6> :
<L3>:
  return D.7631;

}


uxTaskPriorityGet (struct tskTaskControlBlock * const xTask)
{
  UBaseType_t uxReturn;
  const struct TCB_t * pxTCB;
  UBaseType_t D.7625;
  const struct TCB_t * iftmp.23;

  <bb 2> :
  vPortEnterCritical ();
  if (xTask == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  iftmp.23 = pxCurrentTCB;
  goto <bb 5>; [INV]

  <bb 4> :
  iftmp.23 = xTask;

  <bb 5> :
  pxTCB = iftmp.23;
  uxReturn = pxTCB->uxPriority;
  vPortExitCritical ();
  D.7625 = uxReturn;

  <bb 6> :
<L3>:
  return D.7625;

}


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.7619;

  <bb 2> :
  pxTCB = xTask;
  if (pxTCB == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  pxCurrentTCB.22_1 = pxCurrentTCB;
  if (pxTCB == pxCurrentTCB.22_1)
    goto <bb 6>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 6> :
  eReturn = 0;
  goto <bb 23>; [INV]

  <bb 7> :
  vPortEnterCritical ();
  pxStateList = pxTCB->xStateListItem.pvContainer;
  pxDelayedList = pxDelayedTaskList;
  pxOverflowedDelayedList = pxOverflowDelayedTaskList;
  vPortExitCritical ();
  if (pxStateList == pxDelayedList)
    goto <bb 9>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 8> :
  if (pxStateList == pxOverflowedDelayedList)
    goto <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  eReturn = 2;
  goto <bb 23>; [INV]

  <bb 10> :
  if (pxStateList == &xSuspendedTaskList)
    goto <bb 11>; [INV]
  else
    goto <bb 19>; [INV]

  <bb 11> :
  _2 = pxTCB->xEventListItem.pvContainer;
  if (_2 == 0B)
    goto <bb 12>; [INV]
  else
    goto <bb 18>; [INV]

  <bb 12> :
  eReturn = 3;
  x = 0;
  goto <bb 16>; [INV]

  <bb 13> :
  _3 = pxTCB->ucNotifyState[x];
  if (_3 == 1)
    goto <bb 14>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 14> :
  eReturn = 2;
  goto <bb 17>; [INV]

  <bb 15> :
  x = x + 1;

  <bb 16> :
  if (x <= 0)
    goto <bb 13>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 17> :
  goto <bb 23>; [INV]

  <bb 18> :
  eReturn = 2;
  goto <bb 23>; [INV]

  <bb 19> :
  if (pxStateList == &xTasksWaitingTermination)
    goto <bb 21>; [INV]
  else
    goto <bb 20>; [INV]

  <bb 20> :
  if (pxStateList == 0B)
    goto <bb 21>; [INV]
  else
    goto <bb 22>; [INV]

  <bb 21> :
  eReturn = 4;
  goto <bb 23>; [INV]

  <bb 22> :
  eReturn = 1;

  <bb 23> :
  D.7619 = eReturn;

  <bb 24> :
<L25>:
  return D.7619;

}


vTaskDelay (const TickType_t xTicksToDelay)
{
  BaseType_t xAlreadyYielded;

  <bb 2> :
  xAlreadyYielded = 0;
  if (xTicksToDelay != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 3> :
  uxSchedulerSuspended.21_1 = uxSchedulerSuspended;
  if (uxSchedulerSuspended.21_1 != 0)
    goto <bb 4>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 4> :
  vPortRaiseBASEPRI ();

  <bb 5> :
  goto <bb 5>; [INV]

  <bb 6> :
  vTaskSuspendAll ();
  prvAddCurrentTaskToDelayedList (xTicksToDelay, 0);
  xAlreadyYielded = xTaskResumeAll ();

  <bb 7> :
  if (xAlreadyYielded == 0)
    goto <bb 8>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 8> :
  _2 = 3758157060B;
  *_2 = 268435456;
  __asm__ __volatile__("dsb" :  :  : "memory");
  __asm__ __volatile__("isb");

  <bb 9> :
  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.7588;

  <bb 2> :
  xShouldDelay = 0;
  if (pxPreviousWakeTime == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  if (xTimeIncrement == 0)
    goto <bb 6>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 6> :
  vPortRaiseBASEPRI ();

  <bb 7> :
  goto <bb 7>; [INV]

  <bb 8> :
  uxSchedulerSuspended.20_1 = uxSchedulerSuspended;
  if (uxSchedulerSuspended.20_1 != 0)
    goto <bb 9>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 9> :
  vPortRaiseBASEPRI ();

  <bb 10> :
  goto <bb 10>; [INV]

  <bb 11> :
  vTaskSuspendAll ();
  xConstTickCount = xTickCount;
  _2 = *pxPreviousWakeTime;
  xTimeToWake = xTimeIncrement + _2;
  _3 = *pxPreviousWakeTime;
  if (xConstTickCount < _3)
    goto <bb 12>; [INV]
  else
    goto <bb 15>; [INV]

  <bb 12> :
  _4 = *pxPreviousWakeTime;
  if (xTimeToWake < _4)
    goto <bb 13>; [INV]
  else
    goto <bb 18>; [INV]

  <bb 13> :
  if (xTimeToWake > xConstTickCount)
    goto <bb 14>; [INV]
  else
    goto <bb 18>; [INV]

  <bb 14> :
  xShouldDelay = 1;
  goto <bb 18>; [INV]

  <bb 15> :
  _5 = *pxPreviousWakeTime;
  if (xTimeToWake < _5)
    goto <bb 17>; [INV]
  else
    goto <bb 16>; [INV]

  <bb 16> :
  if (xTimeToWake > xConstTickCount)
    goto <bb 17>; [INV]
  else
    goto <bb 18>; [INV]

  <bb 17> :
  xShouldDelay = 1;

  <bb 18> :
  *pxPreviousWakeTime = xTimeToWake;
  if (xShouldDelay != 0)
    goto <bb 19>; [INV]
  else
    goto <bb 20>; [INV]

  <bb 19> :
  _6 = xTimeToWake - xConstTickCount;
  prvAddCurrentTaskToDelayedList (_6, 0);

  <bb 20> :
  xAlreadyYielded = xTaskResumeAll ();
  if (xAlreadyYielded == 0)
    goto <bb 21>; [INV]
  else
    goto <bb 22>; [INV]

  <bb 21> :
  _7 = 3758157060B;
  *_7 = 268435456;
  __asm__ __volatile__("dsb" :  :  : "memory");
  __asm__ __volatile__("isb");

  <bb 22> :
  D.7588 = xShouldDelay;

  <bb 23> :
<L26>:
  return D.7588;

}


vTaskDelete (struct tskTaskControlBlock * xTaskToDelete)
{
  struct TCB_t * pxTCB;
  struct TCB_t * iftmp.12;

  <bb 2> :
  vPortEnterCritical ();
  if (xTaskToDelete == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  iftmp.12 = pxCurrentTCB;
  goto <bb 5>; [INV]

  <bb 4> :
  iftmp.12 = xTaskToDelete;

  <bb 5> :
  pxTCB = iftmp.12;
  _1 = &pxTCB->xStateListItem;
  _2 = uxListRemove (_1);

  <bb 6> :
  _3 = pxTCB->xEventListItem.pvContainer;
  if (_3 != 0B)
    goto <bb 7>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 7> :
  _4 = &pxTCB->xEventListItem;
  uxListRemove (_4);

  <bb 8> :
  uxTaskNumber.13_5 = uxTaskNumber;
  _6 = uxTaskNumber.13_5 + 1;
  uxTaskNumber = _6;
  pxCurrentTCB.14_7 = pxCurrentTCB;
  if (pxTCB == pxCurrentTCB.14_7)
    goto <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  _8 = &pxTCB->xStateListItem;
  vListInsertEnd (&xTasksWaitingTermination, _8);
  uxDeletedTasksWaitingCleanUp.15_9 = uxDeletedTasksWaitingCleanUp;
  _10 = uxDeletedTasksWaitingCleanUp.15_9 + 1;
  uxDeletedTasksWaitingCleanUp = _10;
  goto <bb 11>; [INV]

  <bb 10> :
  uxCurrentNumberOfTasks.16_11 = uxCurrentNumberOfTasks;
  _12 = uxCurrentNumberOfTasks.16_11 + 4294967295;
  uxCurrentNumberOfTasks = _12;
  prvDeleteTCB (pxTCB);
  prvResetNextTaskUnblockTime ();

  <bb 11> :
  vPortExitCritical ();
  xSchedulerRunning.17_13 = xSchedulerRunning;
  if (xSchedulerRunning.17_13 != 0)
    goto <bb 12>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 12> :
  pxCurrentTCB.18_14 = pxCurrentTCB;
  if (pxTCB == pxCurrentTCB.18_14)
    goto <bb 13>; [INV]
  else
    goto <bb 17>; [INV]

  <bb 13> :
  uxSchedulerSuspended.19_15 = uxSchedulerSuspended;
  if (uxSchedulerSuspended.19_15 != 0)
    goto <bb 14>; [INV]
  else
    goto <bb 16>; [INV]

  <bb 14> :
  vPortRaiseBASEPRI ();

  <bb 15> :
  goto <bb 15>; [INV]

  <bb 16> :
  _16 = 3758157060B;
  *_16 = 268435456;
  __asm__ __volatile__("dsb" :  :  : "memory");
  __asm__ __volatile__("isb");

  <bb 17> :
  return;

}


prvAddNewTaskToReadyList (struct TCB_t * pxNewTCB)
{
  struct ListItem_t * const pxIndex;

  <bb 2> :
  vPortEnterCritical ();
  uxCurrentNumberOfTasks.2_1 = uxCurrentNumberOfTasks;
  _2 = uxCurrentNumberOfTasks.2_1 + 1;
  uxCurrentNumberOfTasks = _2;
  pxCurrentTCB.3_3 = pxCurrentTCB;
  if (pxCurrentTCB.3_3 == 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  pxCurrentTCB = pxNewTCB;
  uxCurrentNumberOfTasks.4_4 = uxCurrentNumberOfTasks;
  if (uxCurrentNumberOfTasks.4_4 == 1)
    goto <bb 4>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 4> :
  prvInitialiseTaskLists ();
  goto <bb 8>; [INV]

  <bb 5> :
  xSchedulerRunning.5_5 = xSchedulerRunning;
  if (xSchedulerRunning.5_5 == 0)
    goto <bb 6>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 6> :
  pxCurrentTCB.6_6 = pxCurrentTCB;
  _7 = pxCurrentTCB.6_6->uxPriority;
  _8 = pxNewTCB->uxPriority;
  if (_7 <= _8)
    goto <bb 7>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 7> :
  pxCurrentTCB = pxNewTCB;

  <bb 8> :
  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 <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  _14 = pxNewTCB->uxPriority;
  uxTopReadyPriority = _14;

  <bb 10> :
  _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 <bb 11>; [INV]
  else
    goto <bb 13>; [INV]

  <bb 11> :
  pxCurrentTCB.11_26 = pxCurrentTCB;
  _27 = pxCurrentTCB.11_26->uxPriority;
  _28 = pxNewTCB->uxPriority;
  if (_27 < _28)
    goto <bb 12>; [INV]
  else
    goto <bb 13>; [INV]

  <bb 12> :
  _29 = 3758157060B;
  *_29 = 268435456;
  __asm__ __volatile__("dsb" :  :  : "memory");
  __asm__ __volatile__("isb");

  <bb 13> :
  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;

  <bb 2> :
  _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 <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 3> :
  vPortRaiseBASEPRI ();

  <bb 4> :
  goto <bb 4>; [INV]

  <bb 5> :
  if (pcName != 0B)
    goto <bb 6>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 6> :
  x = 0;
  goto <bb 10>; [INV]

  <bb 7> :
  _10 = pcName + x;
  _11 = *_10;
  pxNewTCB->pcTaskName[x] = _11;
  _12 = pcName + x;
  _13 = *_12;
  if (_13 == 0)
    goto <bb 8>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 8> :
  goto <bb 11>; [INV]

  <bb 9> :
  x = x + 1;

  <bb 10> :
  if (x <= 9)
    goto <bb 7>; [INV]
  else
    goto <bb 11>; [INV]

  <bb 11> :
  pxNewTCB->pcTaskName[9] = 0;
  goto <bb 13>; [INV]

  <bb 12> :
  pxNewTCB->pcTaskName[0] = 0;

  <bb 13> :
  if (uxPriority > 4)
    goto <bb 14>; [INV]
  else
    goto <bb 16>; [INV]

  <bb 14> :
  vPortRaiseBASEPRI ();

  <bb 15> :
  goto <bb 15>; [INV]

  <bb 16> :
  if (uxPriority > 4)
    goto <bb 17>; [INV]
  else
    goto <bb 18>; [INV]

  <bb 17> :
  uxPriority = 4;

  <bb 18> :
  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 <bb 19>; [INV]
  else
    goto <bb 20>; [INV]

  <bb 19> :
  *pxCreatedTask = pxNewTCB;

  <bb 20> :
  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.7508;

  <bb 2> :
  _1 = (unsigned int) usStackDepth;
  _2 = _1 * 4;
  pxStack = pvPortMalloc (_2);
  if (pxStack != 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 3> :
  pxNewTCB = pvPortMalloc (88);
  if (pxNewTCB != 0B)
    goto <bb 4>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 4> :
  pxNewTCB->pxStack = pxStack;
  goto <bb 7>; [INV]

  <bb 5> :
  vPortFree (pxStack);
  goto <bb 7>; [INV]

  <bb 6> :
  pxNewTCB = 0B;

  <bb 7> :
  if (pxNewTCB != 0B)
    goto <bb 8>; [INV]
  else
    goto <bb 9>; [INV]

  <bb 8> :
  _3 = (long unsigned int) usStackDepth;
  prvInitialiseNewTask (pxTaskCode, pcName, _3, pvParameters, uxPriority, pxCreatedTask, pxNewTCB, 0B);
  prvAddNewTaskToReadyList (pxNewTCB);
  xReturn = 1;
  goto <bb 10>; [INV]

  <bb 9> :
  xReturn = -1;

  <bb 10> :
  D.7508 = xReturn;

  <bb 11> :
<L9>:
  return D.7508;

}


__attribute__((always_inline))
vPortSetBASEPRI (uint32_t ulNewMaskValue)
{
  <bb 2> :
  __asm__ __volatile__("	msr basepri, %0	" :  : "r" ulNewMaskValue : "memory");
  return;

}


__attribute__((always_inline))
ulPortRaiseBASEPRI ()
{
  uint32_t ulNewBASEPRI;
  uint32_t ulOriginalBASEPRI;
  uint32_t D.7633;

  <bb 2> :
  __asm__ __volatile__("	mrs %0, basepri											
	mov %1, %2												
	msr basepri, %1											
	isb														
	dsb														
" : "=r" ulOriginalBASEPRI, "=r" ulNewBASEPRI : "i" 16 : "memory");
  D.7633 = ulOriginalBASEPRI;

  <bb 3> :
<L0>:
  return D.7633;

}


__attribute__((always_inline))
vPortRaiseBASEPRI ()
{
  uint32_t ulNewBASEPRI;

  <bb 2> :
  __asm__ __volatile__("	mov %0, %1												
	msr basepri, %0											
	isb														
	dsb														
" : "=r" ulNewBASEPRI : "i" 16 : "memory");
  return;

}


