vQueueWaitForMessageRestricted (struct QueueDefinition * xQueue, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely) { struct Queue_t * const pxQueue; signed char _1; signed char _2; long unsigned int _3; struct List_t * _4; : # DEBUG BEGIN_STMT pxQueue_9 = xQueue_8(D); # DEBUG pxQueue => pxQueue_9 # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _1 ={v} pxQueue_9->cRxLock; if (_1 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue_9->cRxLock ={v} 0; : # DEBUG BEGIN_STMT _2 ={v} pxQueue_9->cTxLock; if (_2 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue_9->cTxLock ={v} 0; : # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _3 ={v} pxQueue_9->uxMessagesWaiting; if (_3 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _4 = &pxQueue_9->xTasksWaitingToReceive; vTaskPlaceOnEventListRestricted (_4, xTicksToWait_15(D), xWaitIndefinitely_16(D)); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue_9); return; } vQueueUnregisterQueue (struct QueueDefinition * xQueue) { UBaseType_t ux; struct QueueDefinition * _1; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xQueue_4(D) == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT ux_5 = 0; # DEBUG ux => ux_5 goto ; [INV] : # DEBUG BEGIN_STMT _1 = xQueueRegistry[ux_2].xHandle; if (xQueue_4(D) == _1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT xQueueRegistry[ux_2].pcQueueName = 0B; # DEBUG BEGIN_STMT xQueueRegistry[ux_2].xHandle = 0B; # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT ux_7 = ux_2 + 1; # DEBUG ux => ux_7 : # ux_2 = PHI # DEBUG ux => ux_2 # DEBUG BEGIN_STMT if (ux_2 <= 1) goto ; [INV] else goto ; [INV] : return; } pcQueueGetName (struct QueueDefinition * xQueue) { const char * pcReturn; UBaseType_t ux; struct QueueDefinition * _1; const char * _10; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pcReturn_4 = 0B; # DEBUG pcReturn => pcReturn_4 # DEBUG BEGIN_STMT if (xQueue_5(D) == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT ux_6 = 0; # DEBUG ux => ux_6 goto ; [INV] : # DEBUG BEGIN_STMT _1 = xQueueRegistry[ux_2].xHandle; if (xQueue_5(D) == _1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pcReturn_9 = xQueueRegistry[ux_2].pcQueueName; # DEBUG pcReturn => pcReturn_9 # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT ux_8 = ux_2 + 1; # DEBUG ux => ux_8 : # ux_2 = PHI # DEBUG ux => ux_2 # DEBUG BEGIN_STMT if (ux_2 <= 1) goto ; [INV] else goto ; [INV] : # pcReturn_3 = PHI # DEBUG pcReturn => pcReturn_3 # DEBUG BEGIN_STMT _10 = pcReturn_3; return _10; } vQueueAddToRegistry (struct QueueDefinition * xQueue, const char * pcQueueName) { struct QueueRegistryItem_t * pxEntryToWrite; UBaseType_t ux; struct QueueDefinition * _1; const char * _2; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xQueue_8(D) == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxEntryToWrite_9 = 0B; # DEBUG pxEntryToWrite => pxEntryToWrite_9 # DEBUG BEGIN_STMT if (pcQueueName_10(D) != 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT ux_11 = 0; # DEBUG ux => ux_11 goto ; [INV] : # DEBUG BEGIN_STMT _1 = xQueueRegistry[ux_3].xHandle; if (xQueue_8(D) == _1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxEntryToWrite_15 = &xQueueRegistry[ux_3]; # DEBUG pxEntryToWrite => pxEntryToWrite_15 # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT if (pxEntryToWrite_5 == 0B) goto ; [INV] else goto ; [INV] : _2 = xQueueRegistry[ux_3].pcQueueName; if (_2 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxEntryToWrite_13 = &xQueueRegistry[ux_3]; # DEBUG pxEntryToWrite => pxEntryToWrite_13 : # pxEntryToWrite_4 = PHI # DEBUG pxEntryToWrite => pxEntryToWrite_4 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT ux_14 = ux_3 + 1; # DEBUG ux => ux_14 : # ux_3 = PHI # pxEntryToWrite_5 = PHI # DEBUG pxEntryToWrite => pxEntryToWrite_5 # DEBUG ux => ux_3 # DEBUG BEGIN_STMT if (ux_3 <= 1) goto ; [INV] else goto ; [INV] : # pxEntryToWrite_6 = PHI # DEBUG pxEntryToWrite => pxEntryToWrite_6 # DEBUG BEGIN_STMT if (pxEntryToWrite_6 != 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxEntryToWrite_6->pcQueueName = pcQueueName_10(D); # DEBUG BEGIN_STMT pxEntryToWrite_6->xHandle = xQueue_8(D); : # DEBUG BEGIN_STMT return; } xQueueIsQueueFullFromISR (struct QueueDefinition * const xQueue) { struct Queue_t * const pxQueue; BaseType_t xReturn; long unsigned int _1; long unsigned int _2; BaseType_t _9; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue_5 = xQueue_4(D); # DEBUG pxQueue => pxQueue_5 # DEBUG BEGIN_STMT if (pxQueue_5 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 ={v} pxQueue_5->uxMessagesWaiting; _2 = pxQueue_5->uxLength; if (_1 == _2) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT xReturn_8 = 1; # DEBUG xReturn => xReturn_8 goto ; [INV] : # DEBUG BEGIN_STMT xReturn_7 = 0; # DEBUG xReturn => xReturn_7 : # xReturn_3 = PHI # DEBUG xReturn => xReturn_3 # DEBUG BEGIN_STMT _9 = xReturn_3; return _9; } prvIsQueueFull (const struct Queue_t * pxQueue) { BaseType_t xReturn; long unsigned int _1; long unsigned int _2; BaseType_t _10; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _1 ={v} pxQueue_6(D)->uxMessagesWaiting; _2 = pxQueue_6(D)->uxLength; if (_1 == _2) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT xReturn_8 = 1; # DEBUG xReturn => xReturn_8 goto ; [INV] : # DEBUG BEGIN_STMT xReturn_7 = 0; # DEBUG xReturn => xReturn_7 : # xReturn_3 = PHI # DEBUG xReturn => xReturn_3 # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _10 = xReturn_3; return _10; } xQueueIsQueueEmptyFromISR (struct QueueDefinition * const xQueue) { struct Queue_t * const pxQueue; BaseType_t xReturn; long unsigned int _1; BaseType_t _8; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue_4 = xQueue_3(D); # DEBUG pxQueue => pxQueue_4 # DEBUG BEGIN_STMT if (pxQueue_4 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 ={v} pxQueue_4->uxMessagesWaiting; if (_1 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT xReturn_7 = 1; # DEBUG xReturn => xReturn_7 goto ; [INV] : # DEBUG BEGIN_STMT xReturn_6 = 0; # DEBUG xReturn => xReturn_6 : # xReturn_2 = PHI # DEBUG xReturn => xReturn_2 # DEBUG BEGIN_STMT _8 = xReturn_2; return _8; } prvIsQueueEmpty (const struct Queue_t * pxQueue) { BaseType_t xReturn; long unsigned int _1; BaseType_t _9; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _1 ={v} pxQueue_5(D)->uxMessagesWaiting; if (_1 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT xReturn_7 = 1; # DEBUG xReturn => xReturn_7 goto ; [INV] : # DEBUG BEGIN_STMT xReturn_6 = 0; # DEBUG xReturn => xReturn_6 : # xReturn_2 = PHI # DEBUG xReturn => xReturn_2 # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _9 = xReturn_2; return _9; } prvUnlockQueue (struct Queue_t * const pxQueue) { int8_t cRxLock; int8_t cTxLock; long unsigned int _1; struct List_t * _2; long int _3; unsigned char cTxLock.6_4; unsigned char _5; long unsigned int _6; struct List_t * _7; long int _8; unsigned char cRxLock.7_9; unsigned char _10; : # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT cTxLock_20 ={v} pxQueue_19(D)->cTxLock; # DEBUG cTxLock => cTxLock_20 # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT _1 ={v} pxQueue_19(D)->xTasksWaitingToReceive.uxNumberOfItems; if (_1 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _2 = &pxQueue_19(D)->xTasksWaitingToReceive; _3 = xTaskRemoveFromEventList (_2); if (_3 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vTaskMissedYield (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT cTxLock.6_4 = (unsigned char) cTxLock_11; _5 = cTxLock.6_4 + 255; cTxLock_23 = (int8_t) _5; # DEBUG cTxLock => cTxLock_23 : # cTxLock_11 = PHI # DEBUG cTxLock => cTxLock_11 # DEBUG BEGIN_STMT if (cTxLock_11 > 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue_19(D)->cTxLock ={v} -1; # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT cRxLock_27 ={v} pxQueue_19(D)->cRxLock; # DEBUG cRxLock => cRxLock_27 # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT _6 ={v} pxQueue_19(D)->xTasksWaitingToSend.uxNumberOfItems; if (_6 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _7 = &pxQueue_19(D)->xTasksWaitingToSend; _8 = xTaskRemoveFromEventList (_7); if (_8 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vTaskMissedYield (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT cRxLock.7_9 = (unsigned char) cRxLock_12; _10 = cRxLock.7_9 + 255; cRxLock_30 = (int8_t) _10; # DEBUG cRxLock => cRxLock_30 : # cRxLock_12 = PHI # DEBUG cRxLock => cRxLock_12 # DEBUG BEGIN_STMT if (cRxLock_12 > 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue_19(D)->cRxLock ={v} -1; # DEBUG BEGIN_STMT vPortExitCritical (); return; } prvCopyDataFromQueue (struct Queue_t * const pxQueue, void * const pvBuffer) { long unsigned int _1; int8_t * _2; long unsigned int _3; int8_t * _4; int8_t * _5; int8_t * _6; int8_t * _7; int8_t * _8; long unsigned int _9; : # DEBUG BEGIN_STMT _1 = pxQueue_13(D)->uxItemSize; if (_1 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _2 = pxQueue_13(D)->u.xQueue.pcReadFrom; _3 = pxQueue_13(D)->uxItemSize; _4 = _2 + _3; pxQueue_13(D)->u.xQueue.pcReadFrom = _4; # DEBUG BEGIN_STMT _5 = pxQueue_13(D)->u.xQueue.pcReadFrom; _6 = pxQueue_13(D)->u.xQueue.pcTail; if (_5 >= _6) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _7 = pxQueue_13(D)->pcHead; pxQueue_13(D)->u.xQueue.pcReadFrom = _7; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _8 = pxQueue_13(D)->u.xQueue.pcReadFrom; _9 = pxQueue_13(D)->uxItemSize; memcpy (pvBuffer_16(D), _8, _9); : return; } prvCopyDataToQueue (struct Queue_t * const pxQueue, const void * pvItemToQueue, const BaseType_t xPosition) { UBaseType_t uxMessagesWaiting; BaseType_t xReturn; long unsigned int _1; int8_t * _2; struct tskTaskControlBlock * _3; int8_t * _4; long unsigned int _5; int8_t * _6; long unsigned int _7; int8_t * _8; int8_t * _9; int8_t * _10; int8_t * _11; int8_t * _12; long unsigned int _13; int8_t * _14; long unsigned int _15; sizetype _16; int8_t * _17; int8_t * _18; int8_t * _19; int8_t * _20; long unsigned int _21; sizetype _22; int8_t * _23; long unsigned int _24; BaseType_t _46; : # DEBUG BEGIN_STMT xReturn_29 = 0; # DEBUG xReturn => xReturn_29 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxMessagesWaiting_32 ={v} pxQueue_31(D)->uxMessagesWaiting; # DEBUG uxMessagesWaiting => uxMessagesWaiting_32 # DEBUG BEGIN_STMT _1 = pxQueue_31(D)->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _2 = pxQueue_31(D)->pcHead; if (_2 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _3 = pxQueue_31(D)->u.xSemaphore.xMutexHolder; xReturn_43 = xTaskPriorityDisinherit (_3); # DEBUG xReturn => xReturn_43 # DEBUG BEGIN_STMT pxQueue_31(D)->u.xSemaphore.xMutexHolder = 0B; goto ; [INV] : # DEBUG BEGIN_STMT if (xPosition_33(D) == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _4 = pxQueue_31(D)->pcWriteTo; _5 = pxQueue_31(D)->uxItemSize; memcpy (_4, pvItemToQueue_34(D), _5); # DEBUG BEGIN_STMT _6 = pxQueue_31(D)->pcWriteTo; _7 = pxQueue_31(D)->uxItemSize; _8 = _6 + _7; pxQueue_31(D)->pcWriteTo = _8; # DEBUG BEGIN_STMT _9 = pxQueue_31(D)->pcWriteTo; _10 = pxQueue_31(D)->u.xQueue.pcTail; if (_9 >= _10) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _11 = pxQueue_31(D)->pcHead; pxQueue_31(D)->pcWriteTo = _11; goto ; [INV] : # DEBUG BEGIN_STMT _12 = pxQueue_31(D)->u.xQueue.pcReadFrom; _13 = pxQueue_31(D)->uxItemSize; memcpy (_12, pvItemToQueue_34(D), _13); # DEBUG BEGIN_STMT _14 = pxQueue_31(D)->u.xQueue.pcReadFrom; _15 = pxQueue_31(D)->uxItemSize; _16 = -_15; _17 = _14 + _16; pxQueue_31(D)->u.xQueue.pcReadFrom = _17; # DEBUG BEGIN_STMT _18 = pxQueue_31(D)->u.xQueue.pcReadFrom; _19 = pxQueue_31(D)->pcHead; if (_18 < _19) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _20 = pxQueue_31(D)->u.xQueue.pcTail; _21 = pxQueue_31(D)->uxItemSize; _22 = -_21; _23 = _20 + _22; pxQueue_31(D)->u.xQueue.pcReadFrom = _23; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xPosition_33(D) == 2) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT if (uxMessagesWaiting_32 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT uxMessagesWaiting_38 = uxMessagesWaiting_32 + 4294967295; # DEBUG uxMessagesWaiting => uxMessagesWaiting_38 : # xReturn_25 = PHI # uxMessagesWaiting_26 = PHI # DEBUG uxMessagesWaiting => uxMessagesWaiting_26 # DEBUG xReturn => xReturn_25 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _24 = uxMessagesWaiting_26 + 1; pxQueue_31(D)->uxMessagesWaiting ={v} _24; # DEBUG BEGIN_STMT _46 = xReturn_25; return _46; } prvGetDisinheritPriorityAfterTimeout (const struct Queue_t * const pxQueue) { UBaseType_t uxHighestPriorityOfWaitingTasks; long unsigned int _1; struct xLIST_ITEM * _2; long unsigned int _3; UBaseType_t _9; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 ={v} pxQueue_6(D)->xTasksWaitingToReceive.uxNumberOfItems; if (_1 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _2 = pxQueue_6(D)->xTasksWaitingToReceive.xListEnd.pxNext; _3 = _2->xItemValue; uxHighestPriorityOfWaitingTasks_8 = 5 - _3; # DEBUG uxHighestPriorityOfWaitingTasks => uxHighestPriorityOfWaitingTasks_8 goto ; [INV] : # DEBUG BEGIN_STMT uxHighestPriorityOfWaitingTasks_7 = 0; # DEBUG uxHighestPriorityOfWaitingTasks => uxHighestPriorityOfWaitingTasks_7 : # uxHighestPriorityOfWaitingTasks_4 = PHI # DEBUG uxHighestPriorityOfWaitingTasks => uxHighestPriorityOfWaitingTasks_4 # DEBUG BEGIN_STMT _9 = uxHighestPriorityOfWaitingTasks_4; return _9; } ucQueueGetQueueType (struct QueueDefinition * xQueue) { uint8_t _3; : # DEBUG BEGIN_STMT _3 = MEM[(struct Queue_t *)xQueue_2(D)].ucQueueType; return _3; } vQueueSetQueueNumber (struct QueueDefinition * xQueue, UBaseType_t uxQueueNumber) { : # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xQueue_2(D)].uxQueueNumber = uxQueueNumber_3(D); return; } uxQueueGetQueueNumber (struct QueueDefinition * xQueue) { UBaseType_t _3; : # DEBUG BEGIN_STMT _3 = MEM[(struct Queue_t *)xQueue_2(D)].uxQueueNumber; return _3; } vQueueDelete (struct QueueDefinition * xQueue) { struct Queue_t * const pxQueue; : # DEBUG BEGIN_STMT pxQueue_2 = xQueue_1(D); # DEBUG pxQueue => pxQueue_2 # DEBUG BEGIN_STMT if (pxQueue_2 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vQueueUnregisterQueue (pxQueue_2); # DEBUG BEGIN_STMT vPortFree (pxQueue_2); return; } uxQueueMessagesWaitingFromISR (struct QueueDefinition * const xQueue) { struct Queue_t * const pxQueue; UBaseType_t uxReturn; UBaseType_t _5; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue_2 = xQueue_1(D); # DEBUG pxQueue => pxQueue_2 # DEBUG BEGIN_STMT if (pxQueue_2 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxReturn_4 ={v} pxQueue_2->uxMessagesWaiting; # DEBUG uxReturn => uxReturn_4 # DEBUG BEGIN_STMT _5 = uxReturn_4; return _5; } uxQueueSpacesAvailable (struct QueueDefinition * const xQueue) { struct Queue_t * const pxQueue; UBaseType_t uxReturn; long unsigned int _1; long unsigned int _2; UBaseType_t _9; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue_4 = xQueue_3(D); # DEBUG pxQueue => pxQueue_4 # DEBUG BEGIN_STMT if (pxQueue_4 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _1 = pxQueue_4->uxLength; _2 ={v} pxQueue_4->uxMessagesWaiting; uxReturn_7 = _1 - _2; # DEBUG uxReturn => uxReturn_7 # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _9 = uxReturn_7; return _9; } uxQueueMessagesWaiting (struct QueueDefinition * const xQueue) { UBaseType_t uxReturn; UBaseType_t _6; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xQueue_1(D) == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT uxReturn_4 ={v} MEM[(struct Queue_t *)xQueue_1(D)].uxMessagesWaiting; # DEBUG uxReturn => uxReturn_4 # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _6 = uxReturn_4; return _6; } xQueuePeekFromISR (struct QueueDefinition * xQueue, void * const pvBuffer) { struct Queue_t * const pxQueue; int8_t * pcOriginalReadPosition; UBaseType_t uxSavedInterruptStatus; BaseType_t xReturn; long unsigned int _1; long unsigned int _2; long unsigned int _3; int iftmp.29_5; int iftmp.29_11; int iftmp.29_12; BaseType_t _22; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue_8 = xQueue_7(D); # DEBUG pxQueue => pxQueue_8 # DEBUG BEGIN_STMT if (pxQueue_8 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (pvBuffer_9(D) != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue_8->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.29_12 = 1; goto ; [INV] : iftmp.29_11 = 0; : # iftmp.29_5 = PHI if (iftmp.29_5 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = pxQueue_8->uxItemSize; if (_2 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortValidateInterruptPriority (); # DEBUG BEGIN_STMT uxSavedInterruptStatus_15 = ulPortRaiseBASEPRI (); # DEBUG uxSavedInterruptStatus => uxSavedInterruptStatus_15 # DEBUG BEGIN_STMT _3 ={v} pxQueue_8->uxMessagesWaiting; if (_3 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pcOriginalReadPosition_17 = pxQueue_8->u.xQueue.pcReadFrom; # DEBUG pcOriginalReadPosition => pcOriginalReadPosition_17 # DEBUG BEGIN_STMT prvCopyDataFromQueue (pxQueue_8, pvBuffer_9(D)); # DEBUG BEGIN_STMT pxQueue_8->u.xQueue.pcReadFrom = pcOriginalReadPosition_17; # DEBUG BEGIN_STMT xReturn_20 = 1; # DEBUG xReturn => xReturn_20 goto ; [INV] : # DEBUG BEGIN_STMT xReturn_16 = 0; # DEBUG xReturn => xReturn_16 : # xReturn_4 = PHI # DEBUG xReturn => xReturn_4 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortSetBASEPRI (uxSavedInterruptStatus_15); # DEBUG BEGIN_STMT _22 = xReturn_4; return _22; } xQueueReceiveFromISR (struct QueueDefinition * xQueue, void * const pvBuffer, BaseType_t * const pxHigherPriorityTaskWoken) { const int8_t cRxLock; const UBaseType_t uxMessagesWaiting; struct Queue_t * const pxQueue; UBaseType_t uxSavedInterruptStatus; BaseType_t xReturn; long unsigned int _1; long unsigned int _2; long unsigned int _3; struct List_t * _4; long int _5; unsigned char cRxLock.28_6; unsigned char _7; signed char _8; int iftmp.27_10; int iftmp.27_17; int iftmp.27_18; BaseType_t _34; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue_14 = xQueue_13(D); # DEBUG pxQueue => pxQueue_14 # DEBUG BEGIN_STMT if (pxQueue_14 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (pvBuffer_15(D) != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue_14->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.27_18 = 1; goto ; [INV] : iftmp.27_17 = 0; : # iftmp.27_10 = PHI if (iftmp.27_10 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortValidateInterruptPriority (); # DEBUG BEGIN_STMT uxSavedInterruptStatus_21 = ulPortRaiseBASEPRI (); # DEBUG uxSavedInterruptStatus => uxSavedInterruptStatus_21 # DEBUG BEGIN_STMT uxMessagesWaiting_22 ={v} pxQueue_14->uxMessagesWaiting; # DEBUG uxMessagesWaiting => uxMessagesWaiting_22 # DEBUG BEGIN_STMT if (uxMessagesWaiting_22 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT cRxLock_24 ={v} pxQueue_14->cRxLock; # DEBUG cRxLock => cRxLock_24 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT prvCopyDataFromQueue (pxQueue_14, pvBuffer_15(D)); # DEBUG BEGIN_STMT _2 = uxMessagesWaiting_22 + 4294967295; pxQueue_14->uxMessagesWaiting ={v} _2; # DEBUG BEGIN_STMT if (cRxLock_24 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _3 ={v} pxQueue_14->xTasksWaitingToSend.uxNumberOfItems; if (_3 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _4 = &pxQueue_14->xTasksWaitingToSend; _5 = xTaskRemoveFromEventList (_4); if (_5 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT if (pxHigherPriorityTaskWoken_30(D) != 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT *pxHigherPriorityTaskWoken_30(D) = 1; goto ; [INV] : # DEBUG BEGIN_STMT if (cRxLock_24 == 127) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT cRxLock.28_6 = (unsigned char) cRxLock_24; _7 = cRxLock.28_6 + 1; _8 = (signed char) _7; pxQueue_14->cRxLock ={v} _8; : # DEBUG BEGIN_STMT xReturn_32 = 1; # DEBUG xReturn => xReturn_32 goto ; [INV] : # DEBUG BEGIN_STMT xReturn_23 = 0; # DEBUG xReturn => xReturn_23 : # xReturn_9 = PHI # DEBUG xReturn => xReturn_9 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortSetBASEPRI (uxSavedInterruptStatus_21); # DEBUG BEGIN_STMT _34 = xReturn_9; return _34; } xQueuePeek (struct QueueDefinition * xQueue, void * const pvBuffer, TickType_t xTicksToWait) { const UBaseType_t uxMessagesWaiting; struct Queue_t * const pxQueue; int8_t * pcOriginalReadPosition; struct TimeOut_t xTimeOut; BaseType_t xEntryTimeSet; long unsigned int _1; long int _2; long unsigned int xTicksToWait.24_3; long unsigned int _4; struct List_t * _5; long int _6; volatile uint32_t * _7; long unsigned int xTicksToWait.25_8; signed char _9; signed char _10; long int _11; long int _12; struct List_t * _13; long unsigned int xTicksToWait.26_14; long int _15; volatile uint32_t * _16; long int _17; int iftmp.22_20; int iftmp.23_21; BaseType_t _22; int iftmp.22_34; int iftmp.22_35; int iftmp.23_37; int iftmp.23_38; BaseType_t _53; BaseType_t _64; BaseType_t _73; : # DEBUG BEGIN_STMT xEntryTimeSet_29 = 0; # DEBUG xEntryTimeSet => xEntryTimeSet_29 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue_31 = xQueue_30(D); # DEBUG pxQueue => pxQueue_31 # DEBUG BEGIN_STMT if (pxQueue_31 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (pvBuffer_32(D) != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue_31->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.22_35 = 1; goto ; [INV] : iftmp.22_34 = 0; : # iftmp.22_20 = PHI if (iftmp.22_20 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = xTaskGetSchedulerState (); if (_2 != 0) goto ; [INV] else goto ; [INV] : xTicksToWait.24_3 = xTicksToWait; if (xTicksToWait.24_3 == 0) goto ; [INV] else goto ; [INV] : iftmp.23_38 = 1; goto ; [INV] : iftmp.23_37 = 0; : # iftmp.23_21 = PHI if (iftmp.23_21 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # xEntryTimeSet_18 = PHI # DEBUG xEntryTimeSet => xEntryTimeSet_18 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT uxMessagesWaiting_40 ={v} pxQueue_31->uxMessagesWaiting; # DEBUG uxMessagesWaiting => uxMessagesWaiting_40 # DEBUG BEGIN_STMT if (uxMessagesWaiting_40 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pcOriginalReadPosition_65 = pxQueue_31->u.xQueue.pcReadFrom; # DEBUG pcOriginalReadPosition => pcOriginalReadPosition_65 # DEBUG BEGIN_STMT prvCopyDataFromQueue (pxQueue_31, pvBuffer_32(D)); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue_31->u.xQueue.pcReadFrom = pcOriginalReadPosition_65; # DEBUG BEGIN_STMT _4 ={v} pxQueue_31->xTasksWaitingToReceive.uxNumberOfItems; if (_4 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _5 = &pxQueue_31->xTasksWaitingToReceive; _6 = xTaskRemoveFromEventList (_5); if (_6 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _7 = 3758157060B; *_7 ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _73 = 1; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : # DEBUG BEGIN_STMT xTicksToWait.25_8 = xTicksToWait; if (xTicksToWait.25_8 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _64 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : # DEBUG BEGIN_STMT if (xEntryTimeSet_18 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vTaskInternalSetTimeOutState (&xTimeOut); # DEBUG BEGIN_STMT xEntryTimeSet_42 = 1; # DEBUG xEntryTimeSet => xEntryTimeSet_42 : # xEntryTimeSet_19 = PHI # DEBUG xEntryTimeSet => xEntryTimeSet_19 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT vTaskSuspendAll (); # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _9 ={v} pxQueue_31->cRxLock; if (_9 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue_31->cRxLock ={v} 0; : # DEBUG BEGIN_STMT _10 ={v} pxQueue_31->cTxLock; if (_10 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue_31->cTxLock ={v} 0; : # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _11 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait); if (_11 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _12 = prvIsQueueEmpty (pxQueue_31); if (_12 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _13 = &pxQueue_31->xTasksWaitingToReceive; xTicksToWait.26_14 = xTicksToWait; vTaskPlaceOnEventList (_13, xTicksToWait.26_14); # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue_31); # DEBUG BEGIN_STMT _15 = xTaskResumeAll (); if (_15 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _16 = 3758157060B; *_16 ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue_31); # DEBUG BEGIN_STMT xTaskResumeAll (); goto ; [INV] : # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue_31); # DEBUG BEGIN_STMT xTaskResumeAll (); # DEBUG BEGIN_STMT _17 = prvIsQueueEmpty (pxQueue_31); if (_17 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _53 = 0; // predicted unlikely by early return (on trees) predictor. : # _22 = PHI <_73(23), _64(25), _53(38)> xTimeOut ={v} {CLOBBER}; return _22; } xQueueSemaphoreTake (struct QueueDefinition * xQueue, TickType_t xTicksToWait) { UBaseType_t uxHighestWaitingPriority; const UBaseType_t uxSemaphoreCount; BaseType_t xInheritanceOccurred; struct Queue_t * const pxQueue; struct TimeOut_t xTimeOut; BaseType_t xEntryTimeSet; long unsigned int _1; long int _2; long unsigned int xTicksToWait.19_3; long unsigned int _4; int8_t * _5; struct tskTaskControlBlock * _6; long unsigned int _7; struct List_t * _8; long int _9; volatile uint32_t * _10; long unsigned int xTicksToWait.20_11; signed char _12; signed char _13; long int _14; long int _15; int8_t * _16; struct tskTaskControlBlock * _17; struct List_t * _18; long unsigned int xTicksToWait.21_19; long int _20; volatile uint32_t * _21; long int _22; struct tskTaskControlBlock * _23; int iftmp.18_28; BaseType_t _29; int iftmp.18_45; int iftmp.18_46; BaseType_t _66; BaseType_t _81; BaseType_t _91; : # DEBUG BEGIN_STMT xEntryTimeSet_39 = 0; # DEBUG xEntryTimeSet => xEntryTimeSet_39 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue_41 = xQueue_40(D); # DEBUG pxQueue => pxQueue_41 # DEBUG BEGIN_STMT xInheritanceOccurred_42 = 0; # DEBUG xInheritanceOccurred => xInheritanceOccurred_42 # DEBUG BEGIN_STMT if (pxQueue_41 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = pxQueue_41->uxItemSize; if (_1 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = xTaskGetSchedulerState (); if (_2 != 0) goto ; [INV] else goto ; [INV] : xTicksToWait.19_3 = xTicksToWait; if (xTicksToWait.19_3 == 0) goto ; [INV] else goto ; [INV] : iftmp.18_46 = 1; goto ; [INV] : iftmp.18_45 = 0; : # iftmp.18_28 = PHI if (iftmp.18_28 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # xEntryTimeSet_24 = PHI # xInheritanceOccurred_26 = PHI # DEBUG xInheritanceOccurred => xInheritanceOccurred_26 # DEBUG xEntryTimeSet => xEntryTimeSet_24 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT uxSemaphoreCount_48 ={v} pxQueue_41->uxMessagesWaiting; # DEBUG uxSemaphoreCount => uxSemaphoreCount_48 # DEBUG BEGIN_STMT if (uxSemaphoreCount_48 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _4 = uxSemaphoreCount_48 + 4294967295; pxQueue_41->uxMessagesWaiting ={v} _4; # DEBUG BEGIN_STMT _5 = pxQueue_41->pcHead; if (_5 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _6 = pvTaskIncrementMutexHeldCount (); pxQueue_41->u.xSemaphore.xMutexHolder = _6; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _7 ={v} pxQueue_41->xTasksWaitingToSend.uxNumberOfItems; if (_7 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _8 = &pxQueue_41->xTasksWaitingToSend; _9 = xTaskRemoveFromEventList (_8); if (_9 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _10 = 3758157060B; *_10 ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _91 = 1; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : # DEBUG BEGIN_STMT xTicksToWait.20_11 = xTicksToWait; if (xTicksToWait.20_11 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT if (xInheritanceOccurred_26 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _81 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : # DEBUG BEGIN_STMT if (xEntryTimeSet_24 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vTaskInternalSetTimeOutState (&xTimeOut); # DEBUG BEGIN_STMT xEntryTimeSet_50 = 1; # DEBUG xEntryTimeSet => xEntryTimeSet_50 : # xEntryTimeSet_25 = PHI # DEBUG xEntryTimeSet => xEntryTimeSet_25 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT vTaskSuspendAll (); # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _12 ={v} pxQueue_41->cRxLock; if (_12 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue_41->cRxLock ={v} 0; : # DEBUG BEGIN_STMT _13 ={v} pxQueue_41->cTxLock; if (_13 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue_41->cTxLock ={v} 0; : # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _14 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait); if (_14 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _15 = prvIsQueueEmpty (pxQueue_41); if (_15 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _16 = pxQueue_41->pcHead; if (_16 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _17 = pxQueue_41->u.xSemaphore.xMutexHolder; xInheritanceOccurred_72 = xTaskPriorityInherit (_17); # DEBUG xInheritanceOccurred => xInheritanceOccurred_72 # DEBUG BEGIN_STMT vPortExitCritical (); : # xInheritanceOccurred_27 = PHI # DEBUG xInheritanceOccurred => xInheritanceOccurred_27 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _18 = &pxQueue_41->xTasksWaitingToReceive; xTicksToWait.21_19 = xTicksToWait; vTaskPlaceOnEventList (_18, xTicksToWait.21_19); # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue_41); # DEBUG BEGIN_STMT _20 = xTaskResumeAll (); if (_20 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _21 = 3758157060B; *_21 ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue_41); # DEBUG BEGIN_STMT xTaskResumeAll (); goto ; [INV] : # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue_41); # DEBUG BEGIN_STMT xTaskResumeAll (); # DEBUG BEGIN_STMT _22 = prvIsQueueEmpty (pxQueue_41); if (_22 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT if (xInheritanceOccurred_26 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxHighestWaitingPriority_63 = prvGetDisinheritPriorityAfterTimeout (pxQueue_41); # DEBUG uxHighestWaitingPriority => uxHighestWaitingPriority_63 # DEBUG BEGIN_STMT _23 = pxQueue_41->u.xSemaphore.xMutexHolder; vTaskPriorityDisinheritAfterTimeout (_23, uxHighestWaitingPriority_63); # DEBUG BEGIN_STMT vPortExitCritical (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _66 = 0; // predicted unlikely by early return (on trees) predictor. : # _29 = PHI <_91(21), _81(26), _66(43)> xTimeOut ={v} {CLOBBER}; return _29; } xQueueReceive (struct QueueDefinition * xQueue, void * const pvBuffer, TickType_t xTicksToWait) { const UBaseType_t uxMessagesWaiting; struct Queue_t * const pxQueue; struct TimeOut_t xTimeOut; BaseType_t xEntryTimeSet; long unsigned int _1; long int _2; long unsigned int xTicksToWait.15_3; long unsigned int _4; long unsigned int _5; struct List_t * _6; long int _7; volatile uint32_t * _8; long unsigned int xTicksToWait.16_9; signed char _10; signed char _11; long int _12; long int _13; struct List_t * _14; long unsigned int xTicksToWait.17_15; long int _16; volatile uint32_t * _17; long int _18; int iftmp.13_21; int iftmp.14_22; BaseType_t _23; int iftmp.13_35; int iftmp.13_36; int iftmp.14_38; int iftmp.14_39; BaseType_t _54; BaseType_t _65; BaseType_t _73; : # DEBUG BEGIN_STMT xEntryTimeSet_30 = 0; # DEBUG xEntryTimeSet => xEntryTimeSet_30 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue_32 = xQueue_31(D); # DEBUG pxQueue => pxQueue_32 # DEBUG BEGIN_STMT if (pxQueue_32 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (pvBuffer_33(D) != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue_32->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.13_36 = 1; goto ; [INV] : iftmp.13_35 = 0; : # iftmp.13_21 = PHI if (iftmp.13_21 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = xTaskGetSchedulerState (); if (_2 != 0) goto ; [INV] else goto ; [INV] : xTicksToWait.15_3 = xTicksToWait; if (xTicksToWait.15_3 == 0) goto ; [INV] else goto ; [INV] : iftmp.14_39 = 1; goto ; [INV] : iftmp.14_38 = 0; : # iftmp.14_22 = PHI if (iftmp.14_22 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # xEntryTimeSet_19 = PHI # DEBUG xEntryTimeSet => xEntryTimeSet_19 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT uxMessagesWaiting_41 ={v} pxQueue_32->uxMessagesWaiting; # DEBUG uxMessagesWaiting => uxMessagesWaiting_41 # DEBUG BEGIN_STMT if (uxMessagesWaiting_41 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT prvCopyDataFromQueue (pxQueue_32, pvBuffer_33(D)); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _4 = uxMessagesWaiting_41 + 4294967295; pxQueue_32->uxMessagesWaiting ={v} _4; # DEBUG BEGIN_STMT _5 ={v} pxQueue_32->xTasksWaitingToSend.uxNumberOfItems; if (_5 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _6 = &pxQueue_32->xTasksWaitingToSend; _7 = xTaskRemoveFromEventList (_6); if (_7 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _8 = 3758157060B; *_8 ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _73 = 1; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : # DEBUG BEGIN_STMT xTicksToWait.16_9 = xTicksToWait; if (xTicksToWait.16_9 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _65 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : # DEBUG BEGIN_STMT if (xEntryTimeSet_19 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vTaskInternalSetTimeOutState (&xTimeOut); # DEBUG BEGIN_STMT xEntryTimeSet_43 = 1; # DEBUG xEntryTimeSet => xEntryTimeSet_43 : # xEntryTimeSet_20 = PHI # DEBUG xEntryTimeSet => xEntryTimeSet_20 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT vTaskSuspendAll (); # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _10 ={v} pxQueue_32->cRxLock; if (_10 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue_32->cRxLock ={v} 0; : # DEBUG BEGIN_STMT _11 ={v} pxQueue_32->cTxLock; if (_11 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue_32->cTxLock ={v} 0; : # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _12 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait); if (_12 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _13 = prvIsQueueEmpty (pxQueue_32); if (_13 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _14 = &pxQueue_32->xTasksWaitingToReceive; xTicksToWait.17_15 = xTicksToWait; vTaskPlaceOnEventList (_14, xTicksToWait.17_15); # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue_32); # DEBUG BEGIN_STMT _16 = xTaskResumeAll (); if (_16 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _17 = 3758157060B; *_17 ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue_32); # DEBUG BEGIN_STMT xTaskResumeAll (); goto ; [INV] : # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue_32); # DEBUG BEGIN_STMT xTaskResumeAll (); # DEBUG BEGIN_STMT _18 = prvIsQueueEmpty (pxQueue_32); if (_18 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _54 = 0; // predicted unlikely by early return (on trees) predictor. : # _23 = PHI <_73(23), _65(25), _54(38)> xTimeOut ={v} {CLOBBER}; return _23; } xQueueGiveFromISR (struct QueueDefinition * xQueue, BaseType_t * const pxHigherPriorityTaskWoken) { const int8_t cTxLock; const UBaseType_t uxMessagesWaiting; struct Queue_t * const pxQueue; UBaseType_t uxSavedInterruptStatus; BaseType_t xReturn; long unsigned int _1; int8_t * _2; struct tskTaskControlBlock * _3; long unsigned int _4; long unsigned int _5; long unsigned int _6; struct List_t * _7; long int _8; unsigned char cTxLock.12_9; unsigned char _10; signed char _11; int iftmp.11_13; int iftmp.11_19; int iftmp.11_20; BaseType_t _35; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue_17 = xQueue_16(D); # DEBUG pxQueue => pxQueue_17 # DEBUG BEGIN_STMT if (pxQueue_17 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = pxQueue_17->uxItemSize; if (_1 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = pxQueue_17->pcHead; if (_2 != 0B) goto ; [INV] else goto ; [INV] : _3 = pxQueue_17->u.xSemaphore.xMutexHolder; if (_3 == 0B) goto ; [INV] else goto ; [INV] : iftmp.11_20 = 1; goto ; [INV] : iftmp.11_19 = 0; : # iftmp.11_13 = PHI if (iftmp.11_13 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortValidateInterruptPriority (); # DEBUG BEGIN_STMT uxSavedInterruptStatus_23 = ulPortRaiseBASEPRI (); # DEBUG uxSavedInterruptStatus => uxSavedInterruptStatus_23 # DEBUG BEGIN_STMT uxMessagesWaiting_24 ={v} pxQueue_17->uxMessagesWaiting; # DEBUG uxMessagesWaiting => uxMessagesWaiting_24 # DEBUG BEGIN_STMT _4 = pxQueue_17->uxLength; if (uxMessagesWaiting_24 < _4) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT cTxLock_26 ={v} pxQueue_17->cTxLock; # DEBUG cTxLock => cTxLock_26 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _5 = uxMessagesWaiting_24 + 1; pxQueue_17->uxMessagesWaiting ={v} _5; # DEBUG BEGIN_STMT if (cTxLock_26 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _6 ={v} pxQueue_17->xTasksWaitingToReceive.uxNumberOfItems; if (_6 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _7 = &pxQueue_17->xTasksWaitingToReceive; _8 = xTaskRemoveFromEventList (_7); if (_8 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT if (pxHigherPriorityTaskWoken_31(D) != 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT *pxHigherPriorityTaskWoken_31(D) = 1; goto ; [INV] : # DEBUG BEGIN_STMT if (cTxLock_26 == 127) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT cTxLock.12_9 = (unsigned char) cTxLock_26; _10 = cTxLock.12_9 + 1; _11 = (signed char) _10; pxQueue_17->cTxLock ={v} _11; : # DEBUG BEGIN_STMT xReturn_33 = 1; # DEBUG xReturn => xReturn_33 goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xReturn_25 = 0; # DEBUG xReturn => xReturn_25 : # xReturn_12 = PHI # DEBUG xReturn => xReturn_12 # DEBUG BEGIN_STMT vPortSetBASEPRI (uxSavedInterruptStatus_23); # DEBUG BEGIN_STMT _35 = xReturn_12; return _35; } xQueueGenericSendFromISR (struct QueueDefinition * xQueue, const void * const pvItemToQueue, BaseType_t * const pxHigherPriorityTaskWoken, const BaseType_t xCopyPosition) { const UBaseType_t uxPreviousMessagesWaiting; const int8_t cTxLock; struct Queue_t * const pxQueue; UBaseType_t uxSavedInterruptStatus; BaseType_t xReturn; long unsigned int _1; long unsigned int _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; struct List_t * _6; long int _7; unsigned char cTxLock.10_8; unsigned char _9; signed char _10; int iftmp.8_12; int iftmp.9_13; int iftmp.8_20; int iftmp.8_21; int iftmp.9_23; int iftmp.9_24; BaseType_t _39; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue_17 = xQueue_16(D); # DEBUG pxQueue => pxQueue_17 # DEBUG BEGIN_STMT if (pxQueue_17 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (pvItemToQueue_18(D) != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue_17->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.8_21 = 1; goto ; [INV] : iftmp.8_20 = 0; : # iftmp.8_12 = PHI if (iftmp.8_12 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xCopyPosition_22(D) != 2) goto ; [INV] else goto ; [INV] : _2 = pxQueue_17->uxLength; if (_2 == 1) goto ; [INV] else goto ; [INV] : iftmp.9_24 = 1; goto ; [INV] : iftmp.9_23 = 0; : # iftmp.9_13 = PHI if (iftmp.9_13 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortValidateInterruptPriority (); # DEBUG BEGIN_STMT uxSavedInterruptStatus_27 = ulPortRaiseBASEPRI (); # DEBUG uxSavedInterruptStatus => uxSavedInterruptStatus_27 # DEBUG BEGIN_STMT _3 ={v} pxQueue_17->uxMessagesWaiting; _4 = pxQueue_17->uxLength; if (_3 < _4) goto ; [INV] else goto ; [INV] : if (xCopyPosition_22(D) == 2) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT cTxLock_29 ={v} pxQueue_17->cTxLock; # DEBUG cTxLock => cTxLock_29 # DEBUG BEGIN_STMT uxPreviousMessagesWaiting_30 ={v} pxQueue_17->uxMessagesWaiting; # DEBUG uxPreviousMessagesWaiting => uxPreviousMessagesWaiting_30 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT prvCopyDataToQueue (pxQueue_17, pvItemToQueue_18(D), xCopyPosition_22(D)); # DEBUG BEGIN_STMT if (cTxLock_29 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _5 ={v} pxQueue_17->xTasksWaitingToReceive.uxNumberOfItems; if (_5 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _6 = &pxQueue_17->xTasksWaitingToReceive; _7 = xTaskRemoveFromEventList (_6); if (_7 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT if (pxHigherPriorityTaskWoken_35(D) != 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT *pxHigherPriorityTaskWoken_35(D) = 1; goto ; [INV] : # DEBUG BEGIN_STMT if (cTxLock_29 == 127) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT cTxLock.10_8 = (unsigned char) cTxLock_29; _9 = cTxLock.10_8 + 1; _10 = (signed char) _9; pxQueue_17->cTxLock ={v} _10; : # DEBUG BEGIN_STMT xReturn_37 = 1; # DEBUG xReturn => xReturn_37 goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xReturn_28 = 0; # DEBUG xReturn => xReturn_28 : # xReturn_11 = PHI # DEBUG xReturn => xReturn_11 # DEBUG BEGIN_STMT vPortSetBASEPRI (uxSavedInterruptStatus_27); # DEBUG BEGIN_STMT _39 = xReturn_11; return _39; } xQueueGenericSend (struct QueueDefinition * xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition) { struct Queue_t * const pxQueue; struct TimeOut_t xTimeOut; BaseType_t xYieldRequired; BaseType_t xEntryTimeSet; long unsigned int _1; long unsigned int _2; long int _3; long unsigned int xTicksToWait.3_4; long unsigned int _5; long unsigned int _6; long unsigned int _7; struct List_t * _8; long int _9; volatile uint32_t * _10; volatile uint32_t * _11; long unsigned int xTicksToWait.4_12; signed char _13; signed char _14; long int _15; long int _16; struct List_t * _17; long unsigned int xTicksToWait.5_18; long int _19; volatile uint32_t * _20; int iftmp.0_23; int iftmp.1_24; int iftmp.2_25; BaseType_t _26; int iftmp.0_38; int iftmp.0_39; int iftmp.1_41; int iftmp.1_42; int iftmp.2_44; int iftmp.2_45; BaseType_t _58; BaseType_t _69; BaseType_t _80; : # DEBUG BEGIN_STMT xEntryTimeSet_33 = 0; # DEBUG xEntryTimeSet => xEntryTimeSet_33 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue_35 = xQueue_34(D); # DEBUG pxQueue => pxQueue_35 # DEBUG BEGIN_STMT if (pxQueue_35 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (pvItemToQueue_36(D) != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue_35->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.0_39 = 1; goto ; [INV] : iftmp.0_38 = 0; : # iftmp.0_23 = PHI if (iftmp.0_23 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xCopyPosition_40(D) != 2) goto ; [INV] else goto ; [INV] : _2 = pxQueue_35->uxLength; if (_2 == 1) goto ; [INV] else goto ; [INV] : iftmp.1_42 = 1; goto ; [INV] : iftmp.1_41 = 0; : # iftmp.1_24 = PHI if (iftmp.1_24 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _3 = xTaskGetSchedulerState (); if (_3 != 0) goto ; [INV] else goto ; [INV] : xTicksToWait.3_4 = xTicksToWait; if (xTicksToWait.3_4 == 0) goto ; [INV] else goto ; [INV] : iftmp.2_45 = 1; goto ; [INV] : iftmp.2_44 = 0; : # iftmp.2_25 = PHI if (iftmp.2_25 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # xEntryTimeSet_21 = PHI # DEBUG xEntryTimeSet => xEntryTimeSet_21 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _5 ={v} pxQueue_35->uxMessagesWaiting; _6 = pxQueue_35->uxLength; if (_5 < _6) goto ; [INV] else goto ; [INV] : if (xCopyPosition_40(D) == 2) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xYieldRequired_71 = prvCopyDataToQueue (pxQueue_35, pvItemToQueue_36(D), xCopyPosition_40(D)); # DEBUG xYieldRequired => xYieldRequired_71 # DEBUG BEGIN_STMT _7 ={v} pxQueue_35->xTasksWaitingToReceive.uxNumberOfItems; if (_7 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _8 = &pxQueue_35->xTasksWaitingToReceive; _9 = xTaskRemoveFromEventList (_8); if (_9 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _10 = 3758157060B; *_10 ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT if (xYieldRequired_71 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _11 = 3758157060B; *_11 ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _80 = 1; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : # DEBUG BEGIN_STMT xTicksToWait.4_12 = xTicksToWait; if (xTicksToWait.4_12 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _69 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : # DEBUG BEGIN_STMT if (xEntryTimeSet_21 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vTaskInternalSetTimeOutState (&xTimeOut); # DEBUG BEGIN_STMT xEntryTimeSet_48 = 1; # DEBUG xEntryTimeSet => xEntryTimeSet_48 : # xEntryTimeSet_22 = PHI # DEBUG xEntryTimeSet => xEntryTimeSet_22 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT vTaskSuspendAll (); # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _13 ={v} pxQueue_35->cRxLock; if (_13 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue_35->cRxLock ={v} 0; : # DEBUG BEGIN_STMT _14 ={v} pxQueue_35->cTxLock; if (_14 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue_35->cTxLock ={v} 0; : # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _15 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait); if (_15 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _16 = prvIsQueueFull (pxQueue_35); if (_16 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _17 = &pxQueue_35->xTasksWaitingToSend; xTicksToWait.5_18 = xTicksToWait; vTaskPlaceOnEventList (_17, xTicksToWait.5_18); # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue_35); # DEBUG BEGIN_STMT _19 = xTaskResumeAll (); if (_19 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _20 = 3758157060B; *_20 ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); goto ; [INV] : # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue_35); # DEBUG BEGIN_STMT xTaskResumeAll (); goto ; [INV] : # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue_35); # DEBUG BEGIN_STMT xTaskResumeAll (); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _58 = 0; // predicted unlikely by early return (on trees) predictor. : # _26 = PHI <_80(33), _69(35), _58(47)> xTimeOut ={v} {CLOBBER}; return _26; } xQueueCreateCountingSemaphore (const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount) { struct QueueDefinition * xHandle; struct QueueDefinition * _11; : # DEBUG BEGIN_STMT xHandle_3 = 0B; # DEBUG xHandle => xHandle_3 # DEBUG BEGIN_STMT if (uxMaxCount_4(D) != 0) goto ; [INV] else goto ; [INV] : if (uxInitialCount_5(D) <= uxMaxCount_4(D)) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT xHandle_8 = xQueueGenericCreate (uxMaxCount_4(D), 0, 2); # DEBUG xHandle => xHandle_8 # DEBUG BEGIN_STMT if (xHandle_8 != 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xHandle_8].uxMessagesWaiting ={v} uxInitialCount_5(D); # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT if (xHandle_3 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # xHandle_1 = PHI # DEBUG xHandle => xHandle_1 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _11 = xHandle_1; return _11; } xQueueTakeMutexRecursive (struct QueueDefinition * xMutex, TickType_t xTicksToWait) { struct Queue_t * const pxMutex; BaseType_t xReturn; struct tskTaskControlBlock * _1; struct tskTaskControlBlock * _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; long unsigned int _6; BaseType_t _19; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxMutex_10 = xMutex_9(D); # DEBUG pxMutex => pxMutex_10 # DEBUG BEGIN_STMT if (pxMutex_10 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = pxMutex_10->u.xSemaphore.xMutexHolder; _2 = xTaskGetCurrentTaskHandle (); if (_1 == _2) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _3 = pxMutex_10->u.xSemaphore.uxRecursiveCallCount; _4 = _3 + 1; pxMutex_10->u.xSemaphore.uxRecursiveCallCount = _4; # DEBUG BEGIN_STMT xReturn_18 = 1; # DEBUG xReturn => xReturn_18 goto ; [INV] : # DEBUG BEGIN_STMT xReturn_15 = xQueueSemaphoreTake (pxMutex_10, xTicksToWait_13(D)); # DEBUG xReturn => xReturn_15 # DEBUG BEGIN_STMT if (xReturn_15 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _5 = pxMutex_10->u.xSemaphore.uxRecursiveCallCount; _6 = _5 + 1; pxMutex_10->u.xSemaphore.uxRecursiveCallCount = _6; : # xReturn_7 = PHI # DEBUG xReturn => xReturn_7 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _19 = xReturn_7; return _19; } xQueueGiveMutexRecursive (struct QueueDefinition * xMutex) { struct Queue_t * const pxMutex; BaseType_t xReturn; struct tskTaskControlBlock * _1; struct tskTaskControlBlock * _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; BaseType_t _17; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxMutex_10 = xMutex_9(D); # DEBUG pxMutex => pxMutex_10 # DEBUG BEGIN_STMT if (pxMutex_10 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = pxMutex_10->u.xSemaphore.xMutexHolder; _2 = xTaskGetCurrentTaskHandle (); if (_1 == _2) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _3 = pxMutex_10->u.xSemaphore.uxRecursiveCallCount; _4 = _3 + 4294967295; pxMutex_10->u.xSemaphore.uxRecursiveCallCount = _4; # DEBUG BEGIN_STMT _5 = pxMutex_10->u.xSemaphore.uxRecursiveCallCount; if (_5 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT xQueueGenericSend (pxMutex_10, 0B, 0, 0); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xReturn_16 = 1; # DEBUG xReturn => xReturn_16 goto ; [INV] : # DEBUG BEGIN_STMT xReturn_13 = 0; # DEBUG xReturn => xReturn_13 : # xReturn_6 = PHI # DEBUG xReturn => xReturn_6 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _17 = xReturn_6; return _17; } xQueueGetMutexHolderFromISR (struct QueueDefinition * xSemaphore) { struct tskTaskControlBlock * pxReturn; int8_t * _1; struct tskTaskControlBlock * _7; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xSemaphore_3(D) == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = MEM[(struct Queue_t *)xSemaphore_3(D)].pcHead; if (_1 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxReturn_6 = MEM[(struct Queue_t *)xSemaphore_3(D)].u.xSemaphore.xMutexHolder; # DEBUG pxReturn => pxReturn_6 goto ; [INV] : # DEBUG BEGIN_STMT pxReturn_5 = 0B; # DEBUG pxReturn => pxReturn_5 : # pxReturn_2 = PHI # DEBUG pxReturn => pxReturn_2 # DEBUG BEGIN_STMT _7 = pxReturn_2; return _7; } xQueueGetMutexHolder (struct QueueDefinition * xSemaphore) { struct Queue_t * const pxSemaphore; struct tskTaskControlBlock * pxReturn; int8_t * _1; struct tskTaskControlBlock * _10; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxSemaphore_4 = xSemaphore_3(D); # DEBUG pxSemaphore => pxSemaphore_4 # DEBUG BEGIN_STMT if (xSemaphore_3(D) == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _1 = pxSemaphore_4->pcHead; if (_1 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxReturn_8 = pxSemaphore_4->u.xSemaphore.xMutexHolder; # DEBUG pxReturn => pxReturn_8 goto ; [INV] : # DEBUG BEGIN_STMT pxReturn_7 = 0B; # DEBUG pxReturn => pxReturn_7 : # pxReturn_2 = PHI # DEBUG pxReturn => pxReturn_2 # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _10 = pxReturn_2; return _10; } xQueueCreateMutex (const uint8_t ucQueueType) { const UBaseType_t uxMutexSize; const UBaseType_t uxMutexLength; struct QueueDefinition * xNewQueue; struct QueueDefinition * _8; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxMutexLength_1 = 1; # DEBUG uxMutexLength => uxMutexLength_1 uxMutexSize_2 = 0; # DEBUG uxMutexSize => uxMutexSize_2 # DEBUG BEGIN_STMT xNewQueue_6 = xQueueGenericCreate (1, 0, ucQueueType_4(D)); # DEBUG xNewQueue => xNewQueue_6 # DEBUG BEGIN_STMT prvInitialiseMutex (xNewQueue_6); # DEBUG BEGIN_STMT _8 = xNewQueue_6; return _8; } prvInitialiseMutex (struct Queue_t * pxNewQueue) { : # DEBUG BEGIN_STMT if (pxNewQueue_2(D) != 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxNewQueue_2(D)->u.xSemaphore.xMutexHolder = 0B; # DEBUG BEGIN_STMT pxNewQueue_2(D)->pcHead = 0B; # DEBUG BEGIN_STMT pxNewQueue_2(D)->u.xSemaphore.uxRecursiveCallCount = 0; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xQueueGenericSend (pxNewQueue_2(D), 0B, 0, 0); : # DEBUG BEGIN_STMT return; } prvInitialiseNewQueue (const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, uint8_t * pucQueueStorage, const uint8_t ucQueueType, struct Queue_t * pxNewQueue) { : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (uxItemSize_2(D) == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxNewQueue_4(D)->pcHead = pxNewQueue_4(D); goto ; [INV] : # DEBUG BEGIN_STMT pxNewQueue_4(D)->pcHead = pucQueueStorage_5(D); : # DEBUG BEGIN_STMT pxNewQueue_4(D)->uxLength = uxQueueLength_8(D); # DEBUG BEGIN_STMT pxNewQueue_4(D)->uxItemSize = uxItemSize_2(D); # DEBUG BEGIN_STMT xQueueGenericReset (pxNewQueue_4(D), 1); # DEBUG BEGIN_STMT pxNewQueue_4(D)->ucQueueType = ucQueueType_12(D); # DEBUG BEGIN_STMT return; } xQueueGenericCreate (const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, const uint8_t ucQueueType) { uint8_t * pucQueueStorage; size_t xQueueSizeInBytes; struct Queue_t * pxNewQueue; __complex__ long unsigned int _1; long unsigned int _2; long unsigned int _3; unsigned int _4; struct QueueDefinition * _19; : # DEBUG BEGIN_STMT pxNewQueue_7 = 0B; # DEBUG pxNewQueue => pxNewQueue_7 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (uxQueueLength_8(D) != 0) goto ; [INV] else goto ; [INV] : _1 = .MUL_OVERFLOW (uxItemSize_9(D), uxQueueLength_8(D)); _2 = IMAGPART_EXPR <_1>; if (_2 == 0) goto ; [INV] else goto ; [INV] : _3 = uxQueueLength_8(D) * uxItemSize_9(D); if (_3 <= 4294967215) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT xQueueSizeInBytes_10 = uxQueueLength_8(D) * uxItemSize_9(D); # DEBUG xQueueSizeInBytes => xQueueSizeInBytes_10 # DEBUG BEGIN_STMT _4 = xQueueSizeInBytes_10 + 80; pxNewQueue_13 = pvPortMalloc (_4); # DEBUG pxNewQueue => pxNewQueue_13 # DEBUG BEGIN_STMT if (pxNewQueue_13 != 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pucQueueStorage_14 = pxNewQueue_13; # DEBUG pucQueueStorage => pucQueueStorage_14 # DEBUG BEGIN_STMT pucQueueStorage_15 = pucQueueStorage_14 + 80; # DEBUG pucQueueStorage => pucQueueStorage_15 # DEBUG BEGIN_STMT prvInitialiseNewQueue (uxQueueLength_8(D), uxItemSize_9(D), pucQueueStorage_15, ucQueueType_16(D), pxNewQueue_13); goto ; [INV] : # DEBUG BEGIN_STMT if (pxNewQueue_7 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # pxNewQueue_5 = PHI # DEBUG pxNewQueue => pxNewQueue_5 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _19 = pxNewQueue_5; return _19; } xQueueGenericReset (struct QueueDefinition * xQueue, BaseType_t xNewQueue) { struct Queue_t * const pxQueue; BaseType_t xReturn; long unsigned int _1; __complex__ long unsigned int _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; int8_t * _6; long unsigned int _7; long unsigned int _8; long unsigned int _9; int8_t * _10; int8_t * _11; int8_t * _12; long unsigned int _13; long unsigned int _14; long unsigned int _15; long unsigned int _16; int8_t * _17; long unsigned int _18; struct List_t * _19; long int _20; volatile uint32_t * _21; struct List_t * _22; struct List_t * _23; BaseType_t _47; : # DEBUG BEGIN_STMT xReturn_27 = 1; # DEBUG xReturn => xReturn_27 # DEBUG BEGIN_STMT pxQueue_29 = xQueue_28(D); # DEBUG pxQueue => pxQueue_29 # DEBUG BEGIN_STMT if (pxQueue_29 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (pxQueue_29 != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue_29->uxLength; if (_1 != 0) goto ; [INV] else goto ; [INV] : _3 = pxQueue_29->uxItemSize; _4 = pxQueue_29->uxLength; _2 = .MUL_OVERFLOW (_3, _4); _5 = IMAGPART_EXPR <_2>; if (_5 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _6 = pxQueue_29->pcHead; _7 = pxQueue_29->uxLength; _8 = pxQueue_29->uxItemSize; _9 = _7 * _8; _10 = _6 + _9; pxQueue_29->u.xQueue.pcTail = _10; # DEBUG BEGIN_STMT pxQueue_29->uxMessagesWaiting ={v} 0; # DEBUG BEGIN_STMT _11 = pxQueue_29->pcHead; pxQueue_29->pcWriteTo = _11; # DEBUG BEGIN_STMT _12 = pxQueue_29->pcHead; _13 = pxQueue_29->uxLength; _14 = _13 + 4294967295; _15 = pxQueue_29->uxItemSize; _16 = _14 * _15; _17 = _12 + _16; pxQueue_29->u.xQueue.pcReadFrom = _17; # DEBUG BEGIN_STMT pxQueue_29->cRxLock ={v} -1; # DEBUG BEGIN_STMT pxQueue_29->cTxLock ={v} -1; # DEBUG BEGIN_STMT if (xNewQueue_38(D) == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _18 ={v} pxQueue_29->xTasksWaitingToSend.uxNumberOfItems; if (_18 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _19 = &pxQueue_29->xTasksWaitingToSend; _20 = xTaskRemoveFromEventList (_19); if (_20 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _21 = 3758157060B; *_21 ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT _22 = &pxQueue_29->xTasksWaitingToSend; vListInitialise (_22); # DEBUG BEGIN_STMT _23 = &pxQueue_29->xTasksWaitingToReceive; vListInitialise (_23); : # DEBUG BEGIN_STMT vPortExitCritical (); goto ; [INV] : # DEBUG BEGIN_STMT xReturn_46 = 0; # DEBUG xReturn => xReturn_46 : # xReturn_24 = PHI # DEBUG xReturn => xReturn_24 # DEBUG BEGIN_STMT if (xReturn_24 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortRaiseBASEPRI (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _47 = xReturn_24; return _47; } __attribute__((always_inline)) vPortSetBASEPRI (uint32_t ulNewMaskValue) { : # DEBUG BEGIN_STMT __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue_2(D) : "memory"); return; } __attribute__((always_inline)) ulPortRaiseBASEPRI () { uint32_t ulNewBASEPRI; uint32_t ulOriginalBASEPRI; uint32_t _5; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mrs %0, basepri mov %1, %2 msr basepri, %1 isb dsb " : "=r" ulOriginalBASEPRI_3, "=r" ulNewBASEPRI_4 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_4 # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_3 # DEBUG BEGIN_STMT _5 = ulOriginalBASEPRI_3; return _5; } __attribute__((always_inline)) vPortRaiseBASEPRI () { uint32_t ulNewBASEPRI; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_3 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_3 return; }