vQueueWaitForMessageRestricted (struct QueueDefinition * xQueue, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely) { struct Queue_t * const pxQueue; : # DEBUG BEGIN_STMT pxQueue = xQueue; # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _1 = pxQueue->cRxLock; if (_1 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue->cRxLock = 0; : # DEBUG BEGIN_STMT _2 = pxQueue->cTxLock; if (_2 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue->cTxLock = 0; : # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _3 = pxQueue->uxMessagesWaiting; if (_3 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _4 = &pxQueue->xTasksWaitingToReceive; vTaskPlaceOnEventListRestricted (_4, xTicksToWait, xWaitIndefinitely); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue); return; } vQueueUnregisterQueue (struct QueueDefinition * xQueue) { UBaseType_t ux; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xQueue == 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 = 0; goto ; [INV] : # DEBUG BEGIN_STMT _1 = xQueueRegistry[ux].xHandle; if (xQueue == _1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT xQueueRegistry[ux].pcQueueName = 0B; # DEBUG BEGIN_STMT xQueueRegistry[ux].xHandle = 0B; # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT ux = ux + 1; : # DEBUG BEGIN_STMT if (ux <= 1) goto ; [INV] else goto ; [INV] : return; } pcQueueGetName (struct QueueDefinition * xQueue) { const char * pcReturn; UBaseType_t ux; const char * D.7259; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pcReturn = 0B; # DEBUG BEGIN_STMT if (xQueue == 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 = 0; goto ; [INV] : # DEBUG BEGIN_STMT _1 = xQueueRegistry[ux].xHandle; if (xQueue == _1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pcReturn = xQueueRegistry[ux].pcQueueName; # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT ux = ux + 1; : # DEBUG BEGIN_STMT if (ux <= 1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT D.7259 = pcReturn; return D.7259; } vQueueAddToRegistry (struct QueueDefinition * xQueue, const char * pcQueueName) { struct QueueRegistryItem_t * pxEntryToWrite; UBaseType_t ux; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xQueue == 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 = 0B; # DEBUG BEGIN_STMT if (pcQueueName != 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT ux = 0; goto ; [INV] : # DEBUG BEGIN_STMT _1 = xQueueRegistry[ux].xHandle; if (xQueue == _1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxEntryToWrite = &xQueueRegistry[ux]; # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT if (pxEntryToWrite == 0B) goto ; [INV] else goto ; [INV] : _2 = xQueueRegistry[ux].pcQueueName; if (_2 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxEntryToWrite = &xQueueRegistry[ux]; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT ux = ux + 1; : # DEBUG BEGIN_STMT if (ux <= 1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT if (pxEntryToWrite != 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxEntryToWrite->pcQueueName = pcQueueName; # DEBUG BEGIN_STMT pxEntryToWrite->xHandle = xQueue; : # DEBUG BEGIN_STMT return; } xQueueIsQueueFullFromISR (struct QueueDefinition * const xQueue) { struct Queue_t * const pxQueue; BaseType_t xReturn; BaseType_t D.7240; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue = xQueue; # DEBUG BEGIN_STMT if (pxQueue == 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->uxMessagesWaiting; _2 = pxQueue->uxLength; if (_1 == _2) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT xReturn = 1; goto ; [INV] : # DEBUG BEGIN_STMT xReturn = 0; : # DEBUG BEGIN_STMT D.7240 = xReturn; return D.7240; } prvIsQueueFull (const struct Queue_t * pxQueue) { BaseType_t xReturn; BaseType_t D.6927; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _1 = pxQueue->uxMessagesWaiting; _2 = pxQueue->uxLength; if (_1 == _2) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT xReturn = 1; goto ; [INV] : # DEBUG BEGIN_STMT xReturn = 0; : # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT D.6927 = xReturn; return D.6927; } xQueueIsQueueEmptyFromISR (struct QueueDefinition * const xQueue) { struct Queue_t * const pxQueue; BaseType_t xReturn; BaseType_t D.7233; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue = xQueue; # DEBUG BEGIN_STMT if (pxQueue == 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->uxMessagesWaiting; if (_1 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT xReturn = 1; goto ; [INV] : # DEBUG BEGIN_STMT xReturn = 0; : # DEBUG BEGIN_STMT D.7233 = xReturn; return D.7233; } prvIsQueueEmpty (const struct Queue_t * pxQueue) { BaseType_t xReturn; BaseType_t D.7060; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _1 = pxQueue->uxMessagesWaiting; if (_1 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT xReturn = 1; goto ; [INV] : # DEBUG BEGIN_STMT xReturn = 0; : # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT D.7060 = xReturn; return D.7060; } prvUnlockQueue (struct Queue_t * const pxQueue) { int8_t cRxLock; int8_t cTxLock; : # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT cTxLock = pxQueue->cTxLock; # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT _1 = pxQueue->xTasksWaitingToReceive.uxNumberOfItems; if (_1 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _2 = &pxQueue->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; _5 = cTxLock.6_4 + 255; cTxLock = (int8_t) _5; : # DEBUG BEGIN_STMT if (cTxLock > 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue->cTxLock = -1; # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT cRxLock = pxQueue->cRxLock; # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT _6 = pxQueue->xTasksWaitingToSend.uxNumberOfItems; if (_6 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _7 = &pxQueue->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; _10 = cRxLock.7_9 + 255; cRxLock = (int8_t) _10; : # DEBUG BEGIN_STMT if (cRxLock > 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue->cRxLock = -1; # DEBUG BEGIN_STMT vPortExitCritical (); return; } prvCopyDataFromQueue (struct Queue_t * const pxQueue, void * const pvBuffer) { : # DEBUG BEGIN_STMT _1 = pxQueue->uxItemSize; if (_1 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _2 = pxQueue->u.xQueue.pcReadFrom; _3 = pxQueue->uxItemSize; _4 = _2 + _3; pxQueue->u.xQueue.pcReadFrom = _4; # DEBUG BEGIN_STMT _5 = pxQueue->u.xQueue.pcReadFrom; _6 = pxQueue->u.xQueue.pcTail; if (_5 >= _6) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _7 = pxQueue->pcHead; pxQueue->u.xQueue.pcReadFrom = _7; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _8 = pxQueue->u.xQueue.pcReadFrom; _9 = pxQueue->uxItemSize; memcpy (pvBuffer, _8, _9); : return; } prvCopyDataToQueue (struct Queue_t * const pxQueue, const void * pvItemToQueue, const BaseType_t xPosition) { UBaseType_t uxMessagesWaiting; BaseType_t xReturn; BaseType_t D.6922; : # DEBUG BEGIN_STMT xReturn = 0; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxMessagesWaiting = pxQueue->uxMessagesWaiting; # DEBUG BEGIN_STMT _1 = pxQueue->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _2 = pxQueue->pcHead; if (_2 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _3 = pxQueue->u.xSemaphore.xMutexHolder; xReturn = xTaskPriorityDisinherit (_3); # DEBUG BEGIN_STMT pxQueue->u.xSemaphore.xMutexHolder = 0B; goto ; [INV] : # DEBUG BEGIN_STMT if (xPosition == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _4 = pxQueue->pcWriteTo; _5 = pxQueue->uxItemSize; memcpy (_4, pvItemToQueue, _5); # DEBUG BEGIN_STMT _6 = pxQueue->pcWriteTo; _7 = pxQueue->uxItemSize; _8 = _6 + _7; pxQueue->pcWriteTo = _8; # DEBUG BEGIN_STMT _9 = pxQueue->pcWriteTo; _10 = pxQueue->u.xQueue.pcTail; if (_9 >= _10) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _11 = pxQueue->pcHead; pxQueue->pcWriteTo = _11; goto ; [INV] : # DEBUG BEGIN_STMT _12 = pxQueue->u.xQueue.pcReadFrom; _13 = pxQueue->uxItemSize; memcpy (_12, pvItemToQueue, _13); # DEBUG BEGIN_STMT _14 = pxQueue->u.xQueue.pcReadFrom; _15 = pxQueue->uxItemSize; _16 = -_15; _17 = _14 + _16; pxQueue->u.xQueue.pcReadFrom = _17; # DEBUG BEGIN_STMT _18 = pxQueue->u.xQueue.pcReadFrom; _19 = pxQueue->pcHead; if (_18 < _19) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _20 = pxQueue->u.xQueue.pcTail; _21 = pxQueue->uxItemSize; _22 = -_21; _23 = _20 + _22; pxQueue->u.xQueue.pcReadFrom = _23; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xPosition == 2) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT if (uxMessagesWaiting != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT uxMessagesWaiting = uxMessagesWaiting + 4294967295; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _24 = uxMessagesWaiting + 1; pxQueue->uxMessagesWaiting = _24; # DEBUG BEGIN_STMT D.6922 = xReturn; return D.6922; } prvGetDisinheritPriorityAfterTimeout (const struct Queue_t * const pxQueue) { UBaseType_t uxHighestPriorityOfWaitingTasks; UBaseType_t D.7117; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = pxQueue->xTasksWaitingToReceive.uxNumberOfItems; if (_1 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _2 = pxQueue->xTasksWaitingToReceive.xListEnd.pxNext; _3 = _2->xItemValue; uxHighestPriorityOfWaitingTasks = 5 - _3; goto ; [INV] : # DEBUG BEGIN_STMT uxHighestPriorityOfWaitingTasks = 0; : # DEBUG BEGIN_STMT D.7117 = uxHighestPriorityOfWaitingTasks; return D.7117; } ucQueueGetQueueType (struct QueueDefinition * xQueue) { uint8_t D.7226; : # DEBUG BEGIN_STMT D.7226 = MEM[(struct Queue_t *)xQueue].ucQueueType; return D.7226; } vQueueSetQueueNumber (struct QueueDefinition * xQueue, UBaseType_t uxQueueNumber) { : # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xQueue].uxQueueNumber = uxQueueNumber; return; } uxQueueGetQueueNumber (struct QueueDefinition * xQueue) { UBaseType_t D.7224; : # DEBUG BEGIN_STMT D.7224 = MEM[(struct Queue_t *)xQueue].uxQueueNumber; return D.7224; } vQueueDelete (struct QueueDefinition * xQueue) { struct Queue_t * const pxQueue; : # DEBUG BEGIN_STMT pxQueue = xQueue; # DEBUG BEGIN_STMT if (pxQueue == 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); # DEBUG BEGIN_STMT vPortFree (pxQueue); return; } uxQueueMessagesWaitingFromISR (struct QueueDefinition * const xQueue) { struct Queue_t * const pxQueue; UBaseType_t uxReturn; UBaseType_t D.7220; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue = xQueue; # DEBUG BEGIN_STMT if (pxQueue == 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 = pxQueue->uxMessagesWaiting; # DEBUG BEGIN_STMT D.7220 = uxReturn; return D.7220; } uxQueueSpacesAvailable (struct QueueDefinition * const xQueue) { struct Queue_t * const pxQueue; UBaseType_t uxReturn; UBaseType_t D.7216; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue = xQueue; # DEBUG BEGIN_STMT if (pxQueue == 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->uxLength; _2 = pxQueue->uxMessagesWaiting; uxReturn = _1 - _2; # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT D.7216 = uxReturn; return D.7216; } uxQueueMessagesWaiting (struct QueueDefinition * const xQueue) { UBaseType_t uxReturn; UBaseType_t D.7212; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xQueue == 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 = MEM[(struct Queue_t *)xQueue].uxMessagesWaiting; # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT D.7212 = uxReturn; return D.7212; } xQueuePeekFromISR (struct QueueDefinition * xQueue, void * const pvBuffer) { struct Queue_t * const pxQueue; int8_t * pcOriginalReadPosition; UBaseType_t uxSavedInterruptStatus; BaseType_t xReturn; BaseType_t D.7208; int iftmp.29; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue = xQueue; # DEBUG BEGIN_STMT if (pxQueue == 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 != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.29 = 1; goto ; [INV] : iftmp.29 = 0; : if (iftmp.29 == 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->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 = ulPortRaiseBASEPRI (); # DEBUG BEGIN_STMT _3 = pxQueue->uxMessagesWaiting; if (_3 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pcOriginalReadPosition = pxQueue->u.xQueue.pcReadFrom; # DEBUG BEGIN_STMT prvCopyDataFromQueue (pxQueue, pvBuffer); # DEBUG BEGIN_STMT pxQueue->u.xQueue.pcReadFrom = pcOriginalReadPosition; # DEBUG BEGIN_STMT xReturn = 1; goto ; [INV] : # DEBUG BEGIN_STMT xReturn = 0; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortSetBASEPRI (uxSavedInterruptStatus); # DEBUG BEGIN_STMT D.7208 = xReturn; return D.7208; } 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; BaseType_t D.7192; int iftmp.27; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue = xQueue; # DEBUG BEGIN_STMT if (pxQueue == 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 != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.27 = 1; goto ; [INV] : iftmp.27 = 0; : if (iftmp.27 == 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 = ulPortRaiseBASEPRI (); # DEBUG BEGIN_STMT uxMessagesWaiting = pxQueue->uxMessagesWaiting; # DEBUG BEGIN_STMT if (uxMessagesWaiting != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT cRxLock = pxQueue->cRxLock; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT prvCopyDataFromQueue (pxQueue, pvBuffer); # DEBUG BEGIN_STMT _2 = uxMessagesWaiting + 4294967295; pxQueue->uxMessagesWaiting = _2; # DEBUG BEGIN_STMT if (cRxLock == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _3 = pxQueue->xTasksWaitingToSend.uxNumberOfItems; if (_3 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _4 = &pxQueue->xTasksWaitingToSend; _5 = xTaskRemoveFromEventList (_4); if (_5 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT if (pxHigherPriorityTaskWoken != 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT *pxHigherPriorityTaskWoken = 1; goto ; [INV] : # DEBUG BEGIN_STMT if (cRxLock == 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; _7 = cRxLock.28_6 + 1; _8 = (signed char) _7; pxQueue->cRxLock = _8; : # DEBUG BEGIN_STMT xReturn = 1; goto ; [INV] : # DEBUG BEGIN_STMT xReturn = 0; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortSetBASEPRI (uxSavedInterruptStatus); # DEBUG BEGIN_STMT D.7192 = xReturn; return D.7192; } 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; BaseType_t D.7143; int iftmp.23; int iftmp.22; : # DEBUG BEGIN_STMT xEntryTimeSet = 0; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue = xQueue; # DEBUG BEGIN_STMT if (pxQueue == 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 != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.22 = 1; goto ; [INV] : iftmp.22 = 0; : if (iftmp.22 == 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 = 1; goto ; [INV] : iftmp.23 = 0; : if (iftmp.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 # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT uxMessagesWaiting = pxQueue->uxMessagesWaiting; # DEBUG BEGIN_STMT if (uxMessagesWaiting != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pcOriginalReadPosition = pxQueue->u.xQueue.pcReadFrom; # DEBUG BEGIN_STMT prvCopyDataFromQueue (pxQueue, pvBuffer); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue->u.xQueue.pcReadFrom = pcOriginalReadPosition; # DEBUG BEGIN_STMT _4 = pxQueue->xTasksWaitingToReceive.uxNumberOfItems; if (_4 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _5 = &pxQueue->xTasksWaitingToReceive; _6 = xTaskRemoveFromEventList (_5); if (_6 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _7 = 3758157060B; *_7 = 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 D.7143 = 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 D.7143 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : # DEBUG BEGIN_STMT if (xEntryTimeSet == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vTaskInternalSetTimeOutState (&xTimeOut); # DEBUG BEGIN_STMT xEntryTimeSet = 1; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT vTaskSuspendAll (); # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _9 = pxQueue->cRxLock; if (_9 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue->cRxLock = 0; : # DEBUG BEGIN_STMT _10 = pxQueue->cTxLock; if (_10 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue->cTxLock = 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); if (_12 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _13 = &pxQueue->xTasksWaitingToReceive; xTicksToWait.26_14 = xTicksToWait; vTaskPlaceOnEventList (_13, xTicksToWait.26_14); # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue); # DEBUG BEGIN_STMT _15 = xTaskResumeAll (); if (_15 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _16 = 3758157060B; *_16 = 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue); # DEBUG BEGIN_STMT xTaskResumeAll (); goto ; [INV] : # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue); # DEBUG BEGIN_STMT xTaskResumeAll (); # DEBUG BEGIN_STMT _17 = prvIsQueueEmpty (pxQueue); if (_17 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT D.7143 = 0; // predicted unlikely by early return (on trees) predictor. : xTimeOut = {CLOBBER}; return D.7143; } 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; BaseType_t D.7084; int iftmp.18; : # DEBUG BEGIN_STMT xEntryTimeSet = 0; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue = xQueue; # DEBUG BEGIN_STMT xInheritanceOccurred = 0; # DEBUG BEGIN_STMT if (pxQueue == 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->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 = 1; goto ; [INV] : iftmp.18 = 0; : if (iftmp.18 == 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 # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT uxSemaphoreCount = pxQueue->uxMessagesWaiting; # DEBUG BEGIN_STMT if (uxSemaphoreCount != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _4 = uxSemaphoreCount + 4294967295; pxQueue->uxMessagesWaiting = _4; # DEBUG BEGIN_STMT _5 = pxQueue->pcHead; if (_5 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _6 = pvTaskIncrementMutexHeldCount (); pxQueue->u.xSemaphore.xMutexHolder = _6; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _7 = pxQueue->xTasksWaitingToSend.uxNumberOfItems; if (_7 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _8 = &pxQueue->xTasksWaitingToSend; _9 = xTaskRemoveFromEventList (_8); if (_9 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _10 = 3758157060B; *_10 = 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 D.7084 = 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 != 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 D.7084 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : # DEBUG BEGIN_STMT if (xEntryTimeSet == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vTaskInternalSetTimeOutState (&xTimeOut); # DEBUG BEGIN_STMT xEntryTimeSet = 1; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT vTaskSuspendAll (); # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _12 = pxQueue->cRxLock; if (_12 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue->cRxLock = 0; : # DEBUG BEGIN_STMT _13 = pxQueue->cTxLock; if (_13 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue->cTxLock = 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); if (_15 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _16 = pxQueue->pcHead; if (_16 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _17 = pxQueue->u.xSemaphore.xMutexHolder; xInheritanceOccurred = xTaskPriorityInherit (_17); # DEBUG BEGIN_STMT vPortExitCritical (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _18 = &pxQueue->xTasksWaitingToReceive; xTicksToWait.21_19 = xTicksToWait; vTaskPlaceOnEventList (_18, xTicksToWait.21_19); # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue); # DEBUG BEGIN_STMT _20 = xTaskResumeAll (); if (_20 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _21 = 3758157060B; *_21 = 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue); # DEBUG BEGIN_STMT xTaskResumeAll (); goto ; [INV] : # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue); # DEBUG BEGIN_STMT xTaskResumeAll (); # DEBUG BEGIN_STMT _22 = prvIsQueueEmpty (pxQueue); if (_22 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT if (xInheritanceOccurred != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxHighestWaitingPriority = prvGetDisinheritPriorityAfterTimeout (pxQueue); # DEBUG BEGIN_STMT _23 = pxQueue->u.xSemaphore.xMutexHolder; vTaskPriorityDisinheritAfterTimeout (_23, uxHighestWaitingPriority); # DEBUG BEGIN_STMT vPortExitCritical (); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT D.7084 = 0; // predicted unlikely by early return (on trees) predictor. : xTimeOut = {CLOBBER}; return D.7084; } 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; BaseType_t D.7029; int iftmp.14; int iftmp.13; : # DEBUG BEGIN_STMT xEntryTimeSet = 0; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue = xQueue; # DEBUG BEGIN_STMT if (pxQueue == 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 != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.13 = 1; goto ; [INV] : iftmp.13 = 0; : if (iftmp.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 _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 = 1; goto ; [INV] : iftmp.14 = 0; : if (iftmp.14 == 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 # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT uxMessagesWaiting = pxQueue->uxMessagesWaiting; # DEBUG BEGIN_STMT if (uxMessagesWaiting != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT prvCopyDataFromQueue (pxQueue, pvBuffer); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _4 = uxMessagesWaiting + 4294967295; pxQueue->uxMessagesWaiting = _4; # DEBUG BEGIN_STMT _5 = pxQueue->xTasksWaitingToSend.uxNumberOfItems; if (_5 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _6 = &pxQueue->xTasksWaitingToSend; _7 = xTaskRemoveFromEventList (_6); if (_7 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _8 = 3758157060B; *_8 = 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 D.7029 = 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 D.7029 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : # DEBUG BEGIN_STMT if (xEntryTimeSet == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vTaskInternalSetTimeOutState (&xTimeOut); # DEBUG BEGIN_STMT xEntryTimeSet = 1; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT vTaskSuspendAll (); # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _10 = pxQueue->cRxLock; if (_10 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue->cRxLock = 0; : # DEBUG BEGIN_STMT _11 = pxQueue->cTxLock; if (_11 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue->cTxLock = 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); if (_13 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _14 = &pxQueue->xTasksWaitingToReceive; xTicksToWait.17_15 = xTicksToWait; vTaskPlaceOnEventList (_14, xTicksToWait.17_15); # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue); # DEBUG BEGIN_STMT _16 = xTaskResumeAll (); if (_16 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _17 = 3758157060B; *_17 = 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue); # DEBUG BEGIN_STMT xTaskResumeAll (); goto ; [INV] : # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue); # DEBUG BEGIN_STMT xTaskResumeAll (); # DEBUG BEGIN_STMT _18 = prvIsQueueEmpty (pxQueue); if (_18 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT D.7029 = 0; // predicted unlikely by early return (on trees) predictor. : xTimeOut = {CLOBBER}; return D.7029; } 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; BaseType_t D.7003; int iftmp.11; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue = xQueue; # DEBUG BEGIN_STMT if (pxQueue == 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->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->pcHead; if (_2 != 0B) goto ; [INV] else goto ; [INV] : _3 = pxQueue->u.xSemaphore.xMutexHolder; if (_3 == 0B) goto ; [INV] else goto ; [INV] : iftmp.11 = 1; goto ; [INV] : iftmp.11 = 0; : if (iftmp.11 == 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 = ulPortRaiseBASEPRI (); # DEBUG BEGIN_STMT uxMessagesWaiting = pxQueue->uxMessagesWaiting; # DEBUG BEGIN_STMT _4 = pxQueue->uxLength; if (uxMessagesWaiting < _4) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT cTxLock = pxQueue->cTxLock; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _5 = uxMessagesWaiting + 1; pxQueue->uxMessagesWaiting = _5; # DEBUG BEGIN_STMT if (cTxLock == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _6 = pxQueue->xTasksWaitingToReceive.uxNumberOfItems; if (_6 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _7 = &pxQueue->xTasksWaitingToReceive; _8 = xTaskRemoveFromEventList (_7); if (_8 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT if (pxHigherPriorityTaskWoken != 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT *pxHigherPriorityTaskWoken = 1; goto ; [INV] : # DEBUG BEGIN_STMT if (cTxLock == 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; _10 = cTxLock.12_9 + 1; _11 = (signed char) _10; pxQueue->cTxLock = _11; : # DEBUG BEGIN_STMT xReturn = 1; goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xReturn = 0; : # DEBUG BEGIN_STMT vPortSetBASEPRI (uxSavedInterruptStatus); # DEBUG BEGIN_STMT D.7003 = xReturn; return D.7003; } 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; BaseType_t D.6971; int iftmp.9; int iftmp.8; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue = xQueue; # DEBUG BEGIN_STMT if (pxQueue == 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 != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.8 = 1; goto ; [INV] : iftmp.8 = 0; : if (iftmp.8 == 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 != 2) goto ; [INV] else goto ; [INV] : _2 = pxQueue->uxLength; if (_2 == 1) goto ; [INV] else goto ; [INV] : iftmp.9 = 1; goto ; [INV] : iftmp.9 = 0; : if (iftmp.9 == 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 = ulPortRaiseBASEPRI (); # DEBUG BEGIN_STMT _3 = pxQueue->uxMessagesWaiting; _4 = pxQueue->uxLength; if (_3 < _4) goto ; [INV] else goto ; [INV] : if (xCopyPosition == 2) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT cTxLock = pxQueue->cTxLock; # DEBUG BEGIN_STMT uxPreviousMessagesWaiting = pxQueue->uxMessagesWaiting; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT prvCopyDataToQueue (pxQueue, pvItemToQueue, xCopyPosition); # DEBUG BEGIN_STMT if (cTxLock == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _5 = pxQueue->xTasksWaitingToReceive.uxNumberOfItems; if (_5 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _6 = &pxQueue->xTasksWaitingToReceive; _7 = xTaskRemoveFromEventList (_6); if (_7 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT if (pxHigherPriorityTaskWoken != 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT *pxHigherPriorityTaskWoken = 1; goto ; [INV] : # DEBUG BEGIN_STMT if (cTxLock == 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; _9 = cTxLock.10_8 + 1; _10 = (signed char) _9; pxQueue->cTxLock = _10; : # DEBUG BEGIN_STMT xReturn = 1; goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xReturn = 0; : # DEBUG BEGIN_STMT vPortSetBASEPRI (uxSavedInterruptStatus); # DEBUG BEGIN_STMT D.6971 = xReturn; return D.6971; } 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; BaseType_t D.6881; int iftmp.2; int iftmp.1; int iftmp.0; : # DEBUG BEGIN_STMT xEntryTimeSet = 0; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxQueue = xQueue; # DEBUG BEGIN_STMT if (pxQueue == 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 != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.0 = 1; goto ; [INV] : iftmp.0 = 0; : if (iftmp.0 == 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 != 2) goto ; [INV] else goto ; [INV] : _2 = pxQueue->uxLength; if (_2 == 1) goto ; [INV] else goto ; [INV] : iftmp.1 = 1; goto ; [INV] : iftmp.1 = 0; : if (iftmp.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 _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 = 1; goto ; [INV] : iftmp.2 = 0; : if (iftmp.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 # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _5 = pxQueue->uxMessagesWaiting; _6 = pxQueue->uxLength; if (_5 < _6) goto ; [INV] else goto ; [INV] : if (xCopyPosition == 2) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xYieldRequired = prvCopyDataToQueue (pxQueue, pvItemToQueue, xCopyPosition); # DEBUG BEGIN_STMT _7 = pxQueue->xTasksWaitingToReceive.uxNumberOfItems; if (_7 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _8 = &pxQueue->xTasksWaitingToReceive; _9 = xTaskRemoveFromEventList (_8); if (_9 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _10 = 3758157060B; *_10 = 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT if (xYieldRequired != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _11 = 3758157060B; *_11 = 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 D.6881 = 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 D.6881 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : # DEBUG BEGIN_STMT if (xEntryTimeSet == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT vTaskInternalSetTimeOutState (&xTimeOut); # DEBUG BEGIN_STMT xEntryTimeSet = 1; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT vTaskSuspendAll (); # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _13 = pxQueue->cRxLock; if (_13 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue->cRxLock = 0; : # DEBUG BEGIN_STMT _14 = pxQueue->cTxLock; if (_14 == -1) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxQueue->cTxLock = 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); if (_16 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _17 = &pxQueue->xTasksWaitingToSend; xTicksToWait.5_18 = xTicksToWait; vTaskPlaceOnEventList (_17, xTicksToWait.5_18); # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue); # DEBUG BEGIN_STMT _19 = xTaskResumeAll (); if (_19 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _20 = 3758157060B; *_20 = 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); goto ; [INV] : # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue); # DEBUG BEGIN_STMT xTaskResumeAll (); goto ; [INV] : # DEBUG BEGIN_STMT prvUnlockQueue (pxQueue); # DEBUG BEGIN_STMT xTaskResumeAll (); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT D.6881 = 0; // predicted unlikely by early return (on trees) predictor. : xTimeOut = {CLOBBER}; return D.6881; } xQueueCreateCountingSemaphore (const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount) { struct QueueDefinition * xHandle; struct QueueDefinition * D.6844; : # DEBUG BEGIN_STMT xHandle = 0B; # DEBUG BEGIN_STMT if (uxMaxCount != 0) goto ; [INV] else goto ; [INV] : if (uxInitialCount <= uxMaxCount) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT xHandle = xQueueGenericCreate (uxMaxCount, 0, 2); # DEBUG BEGIN_STMT if (xHandle != 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xHandle].uxMessagesWaiting = uxInitialCount; # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT if (xHandle == 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 D.6844 = xHandle; return D.6844; } xQueueTakeMutexRecursive (struct QueueDefinition * xMutex, TickType_t xTicksToWait) { struct Queue_t * const pxMutex; BaseType_t xReturn; BaseType_t D.6833; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxMutex = xMutex; # DEBUG BEGIN_STMT if (pxMutex == 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->u.xSemaphore.xMutexHolder; _2 = xTaskGetCurrentTaskHandle (); if (_1 == _2) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _3 = pxMutex->u.xSemaphore.uxRecursiveCallCount; _4 = _3 + 1; pxMutex->u.xSemaphore.uxRecursiveCallCount = _4; # DEBUG BEGIN_STMT xReturn = 1; goto ; [INV] : # DEBUG BEGIN_STMT xReturn = xQueueSemaphoreTake (pxMutex, xTicksToWait); # DEBUG BEGIN_STMT if (xReturn != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _5 = pxMutex->u.xSemaphore.uxRecursiveCallCount; _6 = _5 + 1; pxMutex->u.xSemaphore.uxRecursiveCallCount = _6; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT D.6833 = xReturn; return D.6833; } xQueueGiveMutexRecursive (struct QueueDefinition * xMutex) { struct Queue_t * const pxMutex; BaseType_t xReturn; BaseType_t D.6823; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxMutex = xMutex; # DEBUG BEGIN_STMT if (pxMutex == 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->u.xSemaphore.xMutexHolder; _2 = xTaskGetCurrentTaskHandle (); if (_1 == _2) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _3 = pxMutex->u.xSemaphore.uxRecursiveCallCount; _4 = _3 + 4294967295; pxMutex->u.xSemaphore.uxRecursiveCallCount = _4; # DEBUG BEGIN_STMT _5 = pxMutex->u.xSemaphore.uxRecursiveCallCount; if (_5 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT xQueueGenericSend (pxMutex, 0B, 0, 0); : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xReturn = 1; goto ; [INV] : # DEBUG BEGIN_STMT xReturn = 0; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT D.6823 = xReturn; return D.6823; } xQueueGetMutexHolderFromISR (struct QueueDefinition * xSemaphore) { struct tskTaskControlBlock * pxReturn; struct tskTaskControlBlock * D.6813; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xSemaphore == 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].pcHead; if (_1 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxReturn = MEM[(struct Queue_t *)xSemaphore].u.xSemaphore.xMutexHolder; goto ; [INV] : # DEBUG BEGIN_STMT pxReturn = 0B; : # DEBUG BEGIN_STMT D.6813 = pxReturn; return D.6813; } xQueueGetMutexHolder (struct QueueDefinition * xSemaphore) { struct Queue_t * const pxSemaphore; struct tskTaskControlBlock * pxReturn; struct tskTaskControlBlock * D.6806; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxSemaphore = xSemaphore; # DEBUG BEGIN_STMT if (xSemaphore == 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->pcHead; if (_1 == 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxReturn = pxSemaphore->u.xSemaphore.xMutexHolder; goto ; [INV] : # DEBUG BEGIN_STMT pxReturn = 0B; : # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT D.6806 = pxReturn; return D.6806; } xQueueCreateMutex (const uint8_t ucQueueType) { const UBaseType_t uxMutexSize; const UBaseType_t uxMutexLength; struct QueueDefinition * xNewQueue; struct QueueDefinition * D.6796; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxMutexLength = 1; uxMutexSize = 0; # DEBUG BEGIN_STMT xNewQueue = xQueueGenericCreate (1, 0, ucQueueType); # DEBUG BEGIN_STMT prvInitialiseMutex (xNewQueue); # DEBUG BEGIN_STMT D.6796 = xNewQueue; return D.6796; } prvInitialiseMutex (struct Queue_t * pxNewQueue) { : # DEBUG BEGIN_STMT if (pxNewQueue != 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxNewQueue->u.xSemaphore.xMutexHolder = 0B; # DEBUG BEGIN_STMT pxNewQueue->pcHead = 0B; # DEBUG BEGIN_STMT pxNewQueue->u.xSemaphore.uxRecursiveCallCount = 0; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xQueueGenericSend (pxNewQueue, 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 == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pxNewQueue->pcHead = pxNewQueue; goto ; [INV] : # DEBUG BEGIN_STMT pxNewQueue->pcHead = pucQueueStorage; : # DEBUG BEGIN_STMT pxNewQueue->uxLength = uxQueueLength; # DEBUG BEGIN_STMT pxNewQueue->uxItemSize = uxItemSize; # DEBUG BEGIN_STMT xQueueGenericReset (pxNewQueue, 1); # DEBUG BEGIN_STMT pxNewQueue->ucQueueType = ucQueueType; # 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; struct QueueDefinition * D.6791; : # DEBUG BEGIN_STMT pxNewQueue = 0B; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (uxQueueLength != 0) goto ; [INV] else goto ; [INV] : _1 = .MUL_OVERFLOW (uxItemSize, uxQueueLength); _2 = IMAGPART_EXPR <_1>; if (_2 == 0) goto ; [INV] else goto ; [INV] : _3 = uxQueueLength * uxItemSize; if (_3 <= 4294967215) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT xQueueSizeInBytes = uxQueueLength * uxItemSize; # DEBUG BEGIN_STMT _4 = xQueueSizeInBytes + 80; pxNewQueue = pvPortMalloc (_4); # DEBUG BEGIN_STMT if (pxNewQueue != 0B) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT pucQueueStorage = pxNewQueue; # DEBUG BEGIN_STMT pucQueueStorage = pucQueueStorage + 80; # DEBUG BEGIN_STMT prvInitialiseNewQueue (uxQueueLength, uxItemSize, pucQueueStorage, ucQueueType, pxNewQueue); goto ; [INV] : # DEBUG BEGIN_STMT if (pxNewQueue == 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 D.6791 = pxNewQueue; return D.6791; } xQueueGenericReset (struct QueueDefinition * xQueue, BaseType_t xNewQueue) { struct Queue_t * const pxQueue; BaseType_t xReturn; BaseType_t D.6779; : # DEBUG BEGIN_STMT xReturn = 1; # DEBUG BEGIN_STMT pxQueue = xQueue; # DEBUG BEGIN_STMT if (pxQueue == 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 != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue->uxLength; if (_1 != 0) goto ; [INV] else goto ; [INV] : _3 = pxQueue->uxItemSize; _4 = pxQueue->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->pcHead; _7 = pxQueue->uxLength; _8 = pxQueue->uxItemSize; _9 = _7 * _8; _10 = _6 + _9; pxQueue->u.xQueue.pcTail = _10; # DEBUG BEGIN_STMT pxQueue->uxMessagesWaiting = 0; # DEBUG BEGIN_STMT _11 = pxQueue->pcHead; pxQueue->pcWriteTo = _11; # DEBUG BEGIN_STMT _12 = pxQueue->pcHead; _13 = pxQueue->uxLength; _14 = _13 + 4294967295; _15 = pxQueue->uxItemSize; _16 = _14 * _15; _17 = _12 + _16; pxQueue->u.xQueue.pcReadFrom = _17; # DEBUG BEGIN_STMT pxQueue->cRxLock = -1; # DEBUG BEGIN_STMT pxQueue->cTxLock = -1; # DEBUG BEGIN_STMT if (xNewQueue == 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _18 = pxQueue->xTasksWaitingToSend.uxNumberOfItems; if (_18 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _19 = &pxQueue->xTasksWaitingToSend; _20 = xTaskRemoveFromEventList (_19); if (_20 != 0) goto ; [INV] else goto ; [INV] : # DEBUG BEGIN_STMT _21 = 3758157060B; *_21 = 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT goto ; [INV] : # DEBUG BEGIN_STMT _22 = &pxQueue->xTasksWaitingToSend; vListInitialise (_22); # DEBUG BEGIN_STMT _23 = &pxQueue->xTasksWaitingToReceive; vListInitialise (_23); : # DEBUG BEGIN_STMT vPortExitCritical (); goto ; [INV] : # DEBUG BEGIN_STMT xReturn = 0; : # DEBUG BEGIN_STMT if (xReturn == 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 D.6779 = xReturn; return D.6779; } __attribute__((always_inline)) vPortSetBASEPRI (uint32_t ulNewMaskValue) { : # DEBUG BEGIN_STMT __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue : "memory"); return; } __attribute__((always_inline)) ulPortRaiseBASEPRI () { uint32_t ulNewBASEPRI; uint32_t ulOriginalBASEPRI; uint32_t D.6973; : # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mrs %0, basepri mov %1, %2 msr basepri, %1 isb dsb " : "=r" ulOriginalBASEPRI, "=r" ulNewBASEPRI : "i" 16 : "memory"); # DEBUG BEGIN_STMT D.6973 = ulOriginalBASEPRI; return D.6973; } __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 : "i" 16 : "memory"); return; }