ucStreamBufferGetStreamBufferType (struct StreamBufferDef_t * xStreamBuffer) { uint8_t D.6586; : _1 = xStreamBuffer->ucFlags; D.6586 = _1 & 1; : : return D.6586; } vStreamBufferSetStreamBufferNumber (struct StreamBufferDef_t * xStreamBuffer, UBaseType_t uxStreamBufferNumber) { : xStreamBuffer->uxStreamBufferNumber = uxStreamBufferNumber; return; } uxStreamBufferGetStreamBufferNumber (struct StreamBufferDef_t * xStreamBuffer) { UBaseType_t D.6584; : D.6584 = xStreamBuffer->uxStreamBufferNumber; : : return D.6584; } prvInitialiseNewStreamBuffer (struct StreamBuffer_t * const pxStreamBuffer, uint8_t * const pucBuffer, size_t xBufferSizeBytes, size_t xTriggerLevelBytes, uint8_t ucFlags) { const BaseType_t xWriteValue; : xWriteValue = 85; _1 = memset (pucBuffer, xWriteValue, xBufferSizeBytes); if (pucBuffer != _1) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : memset (pxStreamBuffer, 0, 36); pxStreamBuffer->pucBuffer = pucBuffer; pxStreamBuffer->xLength = xBufferSizeBytes; pxStreamBuffer->xTriggerLevelBytes = xTriggerLevelBytes; pxStreamBuffer->ucFlags = ucFlags; return; } prvBytesInBuffer (const struct StreamBuffer_t * const pxStreamBuffer) { size_t xCount; size_t D.6580; unsigned int D.6576; : _1 = pxStreamBuffer->xLength; _2 = pxStreamBuffer->xHead; xCount = _1 + _2; D.6576 = pxStreamBuffer->xTail; xCount = xCount - D.6576; _3 = pxStreamBuffer->xLength; if (xCount >= _3) goto ; [INV] else goto ; [INV] : _4 = pxStreamBuffer->xLength; xCount = xCount - _4; : D.6580 = xCount; : : return D.6580; } prvReadBytesFromBuffer (struct StreamBuffer_t * pxStreamBuffer, uint8_t * pucData, size_t xCount, size_t xTail) { size_t xFirstLength; size_t D.6574; : if (xCount == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _1 = pxStreamBuffer->xLength; _2 = _1 - xTail; xFirstLength = MIN_EXPR ; if (xFirstLength > xCount) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _3 = xTail + xFirstLength; _4 = pxStreamBuffer->xLength; if (_3 > _4) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _5 = pxStreamBuffer->pucBuffer; _6 = _5 + xTail; memcpy (pucData, _6, xFirstLength); if (xCount > xFirstLength) goto ; [INV] else goto ; [INV] : _7 = pucData + xFirstLength; _8 = pxStreamBuffer->pucBuffer; _9 = xCount - xFirstLength; memcpy (_7, _8, _9); : xTail = xTail + xCount; _10 = pxStreamBuffer->xLength; if (xTail >= _10) goto ; [INV] else goto ; [INV] : _11 = pxStreamBuffer->xLength; xTail = xTail - _11; : D.6574 = xTail; : : return D.6574; } prvWriteBytesToBuffer (struct StreamBuffer_t * const pxStreamBuffer, const uint8_t * pucData, size_t xCount, size_t xHead) { size_t xFirstLength; size_t D.6561; : if (xCount == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _1 = pxStreamBuffer->xLength; _2 = _1 - xHead; xFirstLength = MIN_EXPR ; _3 = xHead + xFirstLength; _4 = pxStreamBuffer->xLength; if (_3 > _4) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _5 = pxStreamBuffer->pucBuffer; _6 = _5 + xHead; memcpy (_6, pucData, xFirstLength); if (xCount > xFirstLength) goto ; [INV] else goto ; [INV] : _7 = xCount - xFirstLength; _8 = pxStreamBuffer->xLength; if (_7 > _8) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _9 = pxStreamBuffer->pucBuffer; _10 = pucData + xFirstLength; _11 = xCount - xFirstLength; memcpy (_9, _10, _11); : xHead = xHead + xCount; _12 = pxStreamBuffer->xLength; if (xHead >= _12) goto ; [INV] else goto ; [INV] : _13 = pxStreamBuffer->xLength; xHead = xHead - _13; : D.6561 = xHead; : : return D.6561; } xStreamBufferReceiveCompletedFromISR (struct StreamBufferDef_t * xStreamBuffer, BaseType_t * pxHigherPriorityTaskWoken) { UBaseType_t uxSavedInterruptStatus; BaseType_t xReturn; struct StreamBuffer_t * const pxStreamBuffer; BaseType_t D.6547; : pxStreamBuffer = xStreamBuffer; if (pxStreamBuffer == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : uxSavedInterruptStatus = ulPortRaiseBASEPRI (); _1 = pxStreamBuffer->xTaskWaitingToSend; if (_1 != 0B) goto ; [INV] else goto ; [INV] : _2 = pxStreamBuffer->xTaskWaitingToSend; xTaskGenericNotifyFromISR (_2, 0, 0, 0, 0B, pxHigherPriorityTaskWoken); pxStreamBuffer->xTaskWaitingToSend = 0B; xReturn = 1; goto ; [INV] : xReturn = 0; : vPortSetBASEPRI (uxSavedInterruptStatus); D.6547 = xReturn; : : return D.6547; } xStreamBufferSendCompletedFromISR (struct StreamBufferDef_t * xStreamBuffer, BaseType_t * pxHigherPriorityTaskWoken) { UBaseType_t uxSavedInterruptStatus; BaseType_t xReturn; struct StreamBuffer_t * const pxStreamBuffer; BaseType_t D.6540; : pxStreamBuffer = xStreamBuffer; if (pxStreamBuffer == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : uxSavedInterruptStatus = ulPortRaiseBASEPRI (); _1 = pxStreamBuffer->xTaskWaitingToReceive; if (_1 != 0B) goto ; [INV] else goto ; [INV] : _2 = pxStreamBuffer->xTaskWaitingToReceive; xTaskGenericNotifyFromISR (_2, 0, 0, 0, 0B, pxHigherPriorityTaskWoken); pxStreamBuffer->xTaskWaitingToReceive = 0B; xReturn = 1; goto ; [INV] : xReturn = 0; : vPortSetBASEPRI (uxSavedInterruptStatus); D.6540 = xReturn; : : return D.6540; } xStreamBufferIsFull (struct StreamBufferDef_t * xStreamBuffer) { const struct StreamBuffer_t * const pxStreamBuffer; size_t xBytesToStoreMessageLength; BaseType_t xReturn; BaseType_t D.6533; : pxStreamBuffer = xStreamBuffer; if (pxStreamBuffer == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _1 = pxStreamBuffer->ucFlags; _2 = (int) _1; _3 = _2 & 1; if (_3 != 0) goto ; [INV] else goto ; [INV] : xBytesToStoreMessageLength = 4; goto ; [INV] : xBytesToStoreMessageLength = 0; : _4 = xStreamBufferSpacesAvailable (xStreamBuffer); if (xBytesToStoreMessageLength >= _4) goto ; [INV] else goto ; [INV] : xReturn = 1; goto ; [INV] : xReturn = 0; : D.6533 = xReturn; : : return D.6533; } xStreamBufferIsEmpty (struct StreamBufferDef_t * xStreamBuffer) { size_t xTail; BaseType_t xReturn; const struct StreamBuffer_t * const pxStreamBuffer; BaseType_t D.6523; : pxStreamBuffer = xStreamBuffer; if (pxStreamBuffer == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : xTail = pxStreamBuffer->xTail; _1 = pxStreamBuffer->xHead; if (xTail == _1) goto ; [INV] else goto ; [INV] : xReturn = 1; goto ; [INV] : xReturn = 0; : D.6523 = xReturn; : : return D.6523; } prvReadMessageFromBuffer (struct StreamBuffer_t * pxStreamBuffer, void * pvRxData, size_t xBufferLengthBytes, size_t xBytesAvailable) { size_t xNextTail; size_t xTempNextMessageLength; size_t xNextMessageLength; size_t xCount; size_t D.6515; : xNextTail = pxStreamBuffer->xTail; _1 = pxStreamBuffer->ucFlags; _2 = (int) _1; _3 = _2 & 1; if (_3 != 0) goto ; [INV] else goto ; [INV] : xNextTail = prvReadBytesFromBuffer (pxStreamBuffer, &xTempNextMessageLength, 4, xNextTail); xNextMessageLength = xTempNextMessageLength; xBytesAvailable = xBytesAvailable + 4294967292; if (xNextMessageLength > xBufferLengthBytes) goto ; [INV] else goto ; [INV] : xNextMessageLength = 0; goto ; [INV] : xNextMessageLength = xBufferLengthBytes; : xCount = MIN_EXPR ; if (xCount != 0) goto ; [INV] else goto ; [INV] : _4 = prvReadBytesFromBuffer (pxStreamBuffer, pvRxData, xCount, xNextTail); pxStreamBuffer->xTail = _4; : D.6515 = xCount; xTempNextMessageLength = {CLOBBER}; : : return D.6515; } xStreamBufferReceiveFromISR (struct StreamBufferDef_t * xStreamBuffer, void * pvRxData, size_t xBufferLengthBytes, BaseType_t * const pxHigherPriorityTaskWoken) { UBaseType_t uxSavedInterruptStatus; size_t xBytesToStoreMessageLength; size_t xBytesAvailable; size_t xReceivedLength; struct StreamBuffer_t * const pxStreamBuffer; size_t D.6505; : pxStreamBuffer = xStreamBuffer; xReceivedLength = 0; if (pvRxData == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (pxStreamBuffer == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _1 = pxStreamBuffer->ucFlags; _2 = (int) _1; _3 = _2 & 1; if (_3 != 0) goto ; [INV] else goto ; [INV] : xBytesToStoreMessageLength = 4; goto ; [INV] : xBytesToStoreMessageLength = 0; : xBytesAvailable = prvBytesInBuffer (pxStreamBuffer); if (xBytesAvailable > xBytesToStoreMessageLength) goto ; [INV] else goto ; [INV] : xReceivedLength = prvReadMessageFromBuffer (pxStreamBuffer, pvRxData, xBufferLengthBytes, xBytesAvailable); if (xReceivedLength != 0) goto ; [INV] else goto ; [INV] : uxSavedInterruptStatus = ulPortRaiseBASEPRI (); _4 = pxStreamBuffer->xTaskWaitingToSend; if (_4 != 0B) goto ; [INV] else goto ; [INV] : _5 = pxStreamBuffer->xTaskWaitingToSend; xTaskGenericNotifyFromISR (_5, 0, 0, 0, 0B, pxHigherPriorityTaskWoken); pxStreamBuffer->xTaskWaitingToSend = 0B; : vPortSetBASEPRI (uxSavedInterruptStatus); : D.6505 = xReceivedLength; : : return D.6505; } xStreamBufferNextMessageLengthBytes (struct StreamBufferDef_t * xStreamBuffer) { size_t xTempReturn; size_t xBytesAvailable; size_t xReturn; struct StreamBuffer_t * const pxStreamBuffer; size_t D.6487; : pxStreamBuffer = xStreamBuffer; if (pxStreamBuffer == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _1 = pxStreamBuffer->ucFlags; _2 = (int) _1; _3 = _2 & 1; if (_3 != 0) goto ; [INV] else goto ; [INV] : xBytesAvailable = prvBytesInBuffer (pxStreamBuffer); if (xBytesAvailable > 4) goto ; [INV] else goto ; [INV] : _4 = pxStreamBuffer->xTail; prvReadBytesFromBuffer (pxStreamBuffer, &xTempReturn, 4, _4); xReturn = xTempReturn; goto ; [INV] : if (xBytesAvailable != 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : xReturn = 0; goto ; [INV] : xReturn = 0; : D.6487 = xReturn; xTempReturn = {CLOBBER}; : : return D.6487; } xStreamBufferReceive (struct StreamBufferDef_t * xStreamBuffer, void * pvRxData, size_t xBufferLengthBytes, TickType_t xTicksToWait) { size_t xBytesToStoreMessageLength; size_t xBytesAvailable; size_t xReceivedLength; struct StreamBuffer_t * const pxStreamBuffer; size_t D.6475; : pxStreamBuffer = xStreamBuffer; xReceivedLength = 0; if (pvRxData == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (pxStreamBuffer == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _1 = pxStreamBuffer->ucFlags; _2 = (int) _1; _3 = _2 & 1; if (_3 != 0) goto ; [INV] else goto ; [INV] : xBytesToStoreMessageLength = 4; goto ; [INV] : xBytesToStoreMessageLength = 0; : if (xTicksToWait != 0) goto ; [INV] else goto ; [INV] : vPortEnterCritical (); xBytesAvailable = prvBytesInBuffer (pxStreamBuffer); if (xBytesAvailable <= xBytesToStoreMessageLength) goto ; [INV] else goto ; [INV] : xTaskGenericNotifyStateClear (0B, 0); _4 = pxStreamBuffer->xTaskWaitingToReceive; if (_4 != 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _5 = xTaskGetCurrentTaskHandle (); pxStreamBuffer->xTaskWaitingToReceive = _5; : vPortExitCritical (); if (xBytesAvailable <= xBytesToStoreMessageLength) goto ; [INV] else goto ; [INV] : xTaskGenericNotifyWait (0, 0, 0, 0B, xTicksToWait); pxStreamBuffer->xTaskWaitingToReceive = 0B; xBytesAvailable = prvBytesInBuffer (pxStreamBuffer); goto ; [INV] : xBytesAvailable = prvBytesInBuffer (pxStreamBuffer); : if (xBytesAvailable > xBytesToStoreMessageLength) goto ; [INV] else goto ; [INV] : xReceivedLength = prvReadMessageFromBuffer (pxStreamBuffer, pvRxData, xBufferLengthBytes, xBytesAvailable); if (xReceivedLength != 0) goto ; [INV] else goto ; [INV] : vTaskSuspendAll (); _6 = pxStreamBuffer->xTaskWaitingToSend; if (_6 != 0B) goto ; [INV] else goto ; [INV] : _7 = pxStreamBuffer->xTaskWaitingToSend; xTaskGenericNotify (_7, 0, 0, 0, 0B); pxStreamBuffer->xTaskWaitingToSend = 0B; : xTaskResumeAll (); : D.6475 = xReceivedLength; : : return D.6475; } prvWriteMessageToBuffer (struct StreamBuffer_t * const pxStreamBuffer, const void * pvTxData, size_t xDataLengthBytes, size_t xSpace, size_t xRequiredSpace) { size_t xNextHead; size_t D.6447; : xNextHead = pxStreamBuffer->xHead; _1 = pxStreamBuffer->ucFlags; _2 = (int) _1; _3 = _2 & 1; if (_3 != 0) goto ; [INV] else goto ; [INV] : if (xSpace >= xRequiredSpace) goto ; [INV] else goto ; [INV] : xNextHead = prvWriteBytesToBuffer (pxStreamBuffer, &xDataLengthBytes, 4, xNextHead); goto ; [INV] : xDataLengthBytes = 0; goto ; [INV] : xDataLengthBytes.2_4 = xDataLengthBytes; _5 = MIN_EXPR ; xDataLengthBytes = _5; : xDataLengthBytes.3_6 = xDataLengthBytes; if (xDataLengthBytes.3_6 != 0) goto ; [INV] else goto ; [INV] : xDataLengthBytes.4_7 = xDataLengthBytes; _8 = prvWriteBytesToBuffer (pxStreamBuffer, pvTxData, xDataLengthBytes.4_7, xNextHead); pxStreamBuffer->xHead = _8; : D.6447 = xDataLengthBytes; : : return D.6447; } xStreamBufferSendFromISR (struct StreamBufferDef_t * xStreamBuffer, const void * pvTxData, size_t xDataLengthBytes, BaseType_t * const pxHigherPriorityTaskWoken) { UBaseType_t uxSavedInterruptStatus; size_t xRequiredSpace; size_t xSpace; size_t xReturn; struct StreamBuffer_t * const pxStreamBuffer; size_t D.6435; : pxStreamBuffer = xStreamBuffer; xRequiredSpace = xDataLengthBytes; if (pvTxData == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (pxStreamBuffer == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _1 = pxStreamBuffer->ucFlags; _2 = (int) _1; _3 = _2 & 1; if (_3 != 0) goto ; [INV] else goto ; [INV] : xRequiredSpace = xRequiredSpace + 4; : xSpace = xStreamBufferSpacesAvailable (pxStreamBuffer); xReturn = prvWriteMessageToBuffer (pxStreamBuffer, pvTxData, xDataLengthBytes, xSpace, xRequiredSpace); if (xReturn != 0) goto ; [INV] else goto ; [INV] : _4 = prvBytesInBuffer (pxStreamBuffer); _5 = pxStreamBuffer->xTriggerLevelBytes; if (_4 >= _5) goto ; [INV] else goto ; [INV] : uxSavedInterruptStatus = ulPortRaiseBASEPRI (); _6 = pxStreamBuffer->xTaskWaitingToReceive; if (_6 != 0B) goto ; [INV] else goto ; [INV] : _7 = pxStreamBuffer->xTaskWaitingToReceive; xTaskGenericNotifyFromISR (_7, 0, 0, 0, 0B, pxHigherPriorityTaskWoken); pxStreamBuffer->xTaskWaitingToReceive = 0B; : vPortSetBASEPRI (uxSavedInterruptStatus); : D.6435 = xReturn; : : return D.6435; } xStreamBufferSend (struct StreamBufferDef_t * xStreamBuffer, const void * pvTxData, size_t xDataLengthBytes, TickType_t xTicksToWait) { size_t xMaxReportedSpace; struct TimeOut_t xTimeOut; size_t xRequiredSpace; size_t xSpace; size_t xReturn; struct StreamBuffer_t * const pxStreamBuffer; size_t D.6417; : pxStreamBuffer = xStreamBuffer; xSpace = 0; xRequiredSpace = xDataLengthBytes; xMaxReportedSpace = 0; if (pvTxData == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (pxStreamBuffer == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _1 = pxStreamBuffer->xLength; xMaxReportedSpace = _1 + 4294967295; _2 = pxStreamBuffer->ucFlags; _3 = (int) _2; _4 = _3 & 1; if (_4 != 0) goto ; [INV] else goto ; [INV] : xRequiredSpace = xRequiredSpace + 4; if (xRequiredSpace <= xDataLengthBytes) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (xRequiredSpace > xMaxReportedSpace) goto ; [INV] else goto ; [INV] : xTicksToWait = 0; goto ; [INV] : if (xRequiredSpace > xMaxReportedSpace) goto ; [INV] else goto ; [INV] : xRequiredSpace = xMaxReportedSpace; : xTicksToWait.0_5 = xTicksToWait; if (xTicksToWait.0_5 != 0) goto ; [INV] else goto ; [INV] : vTaskSetTimeOutState (&xTimeOut); : vPortEnterCritical (); xSpace = xStreamBufferSpacesAvailable (pxStreamBuffer); if (xSpace < xRequiredSpace) goto ; [INV] else goto ; [INV] : xTaskGenericNotifyStateClear (0B, 0); _6 = pxStreamBuffer->xTaskWaitingToSend; if (_6 != 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _7 = xTaskGetCurrentTaskHandle (); pxStreamBuffer->xTaskWaitingToSend = _7; goto ; [INV] : vPortExitCritical (); goto ; [INV] : vPortExitCritical (); xTicksToWait.1_8 = xTicksToWait; xTaskGenericNotifyWait (0, 0, 0, 0B, xTicksToWait.1_8); pxStreamBuffer->xTaskWaitingToSend = 0B; _9 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait); if (_9 == 0) goto ; [INV] else goto ; [INV] : : if (xSpace == 0) goto ; [INV] else goto ; [INV] : xSpace = xStreamBufferSpacesAvailable (pxStreamBuffer); : xReturn = prvWriteMessageToBuffer (pxStreamBuffer, pvTxData, xDataLengthBytes, xSpace, xRequiredSpace); if (xReturn != 0) goto ; [INV] else goto ; [INV] : _10 = prvBytesInBuffer (pxStreamBuffer); _11 = pxStreamBuffer->xTriggerLevelBytes; if (_10 >= _11) goto ; [INV] else goto ; [INV] : vTaskSuspendAll (); _12 = pxStreamBuffer->xTaskWaitingToReceive; if (_12 != 0B) goto ; [INV] else goto ; [INV] : _13 = pxStreamBuffer->xTaskWaitingToReceive; xTaskGenericNotify (_13, 0, 0, 0, 0B); pxStreamBuffer->xTaskWaitingToReceive = 0B; : xTaskResumeAll (); : D.6417 = xReturn; xTimeOut = {CLOBBER}; : : return D.6417; } xStreamBufferBytesAvailable (struct StreamBufferDef_t * xStreamBuffer) { size_t xReturn; const struct StreamBuffer_t * const pxStreamBuffer; size_t D.6381; : pxStreamBuffer = xStreamBuffer; if (pxStreamBuffer == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : xReturn = prvBytesInBuffer (pxStreamBuffer); D.6381 = xReturn; : : return D.6381; } xStreamBufferSpacesAvailable (struct StreamBufferDef_t * xStreamBuffer) { size_t xOriginalTail; size_t xSpace; const struct StreamBuffer_t * const pxStreamBuffer; size_t D.6377; unsigned int D.6373; : pxStreamBuffer = xStreamBuffer; if (pxStreamBuffer == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : xOriginalTail = pxStreamBuffer->xTail; _1 = pxStreamBuffer->xLength; _2 = pxStreamBuffer->xTail; xSpace = _1 + _2; D.6373 = pxStreamBuffer->xHead; xSpace = xSpace - D.6373; _3 = pxStreamBuffer->xTail; if (xOriginalTail != _3) goto ; [INV] else goto ; [INV] : xSpace = xSpace + 4294967295; _4 = pxStreamBuffer->xLength; if (xSpace >= _4) goto ; [INV] else goto ; [INV] : _5 = pxStreamBuffer->xLength; xSpace = xSpace - _5; : D.6377 = xSpace; : : return D.6377; } xStreamBufferSetTriggerLevel (struct StreamBufferDef_t * xStreamBuffer, size_t xTriggerLevel) { BaseType_t xReturn; struct StreamBuffer_t * const pxStreamBuffer; BaseType_t D.6369; : pxStreamBuffer = xStreamBuffer; if (pxStreamBuffer == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (xTriggerLevel == 0) goto ; [INV] else goto ; [INV] : xTriggerLevel = 1; : _1 = pxStreamBuffer->xLength; if (xTriggerLevel < _1) goto ; [INV] else goto ; [INV] : pxStreamBuffer->xTriggerLevelBytes = xTriggerLevel; xReturn = 1; goto ; [INV] : xReturn = 0; : D.6369 = xReturn; : : return D.6369; } xStreamBufferReset (struct StreamBufferDef_t * xStreamBuffer) { UBaseType_t uxStreamBufferNumber; BaseType_t xReturn; struct StreamBuffer_t * const pxStreamBuffer; BaseType_t D.6360; : pxStreamBuffer = xStreamBuffer; xReturn = 0; if (pxStreamBuffer == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : uxStreamBufferNumber = pxStreamBuffer->uxStreamBufferNumber; vPortEnterCritical (); _1 = pxStreamBuffer->xTaskWaitingToReceive; if (_1 == 0B) goto ; [INV] else goto ; [INV] : _2 = pxStreamBuffer->xTaskWaitingToSend; if (_2 == 0B) goto ; [INV] else goto ; [INV] : _3 = pxStreamBuffer->pucBuffer; _4 = pxStreamBuffer->xLength; _5 = pxStreamBuffer->xTriggerLevelBytes; _6 = pxStreamBuffer->ucFlags; prvInitialiseNewStreamBuffer (pxStreamBuffer, _3, _4, _5, _6); xReturn = 1; pxStreamBuffer->uxStreamBufferNumber = uxStreamBufferNumber; : vPortExitCritical (); D.6360 = xReturn; : : return D.6360; } vStreamBufferDelete (struct StreamBufferDef_t * xStreamBuffer) { struct StreamBuffer_t * pxStreamBuffer; : pxStreamBuffer = xStreamBuffer; if (pxStreamBuffer == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _1 = pxStreamBuffer->ucFlags; _2 = (int) _1; _3 = _2 & 2; if (_3 == 0) goto ; [INV] else goto ; [INV] : vPortFree (pxStreamBuffer); goto ; [INV] : memset (pxStreamBuffer, 0, 36); : return; } xStreamBufferGenericCreate (size_t xBufferSizeBytes, size_t xTriggerLevelBytes, BaseType_t xIsMessageBuffer) { uint8_t ucFlags; uint8_t * pucAllocatedMemory; struct StreamBufferDef_t * D.6347; : if (xIsMessageBuffer == 1) goto ; [INV] else goto ; [INV] : ucFlags = 1; if (xBufferSizeBytes <= 4) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : ucFlags = 0; if (xBufferSizeBytes == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (xTriggerLevelBytes > xBufferSizeBytes) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (xTriggerLevelBytes == 0) goto ; [INV] else goto ; [INV] : xTriggerLevelBytes = 1; : if (xBufferSizeBytes <= 4294967258) goto ; [INV] else goto ; [INV] : xBufferSizeBytes = xBufferSizeBytes + 1; _1 = xBufferSizeBytes + 36; pucAllocatedMemory = pvPortMalloc (_1); goto ; [INV] : pucAllocatedMemory = 0B; : if (pucAllocatedMemory != 0B) goto ; [INV] else goto ; [INV] : _2 = pucAllocatedMemory + 36; prvInitialiseNewStreamBuffer (pucAllocatedMemory, _2, xBufferSizeBytes, xTriggerLevelBytes, ucFlags); : D.6347 = pucAllocatedMemory; : : return D.6347; } __attribute__((always_inline)) vPortSetBASEPRI (uint32_t ulNewMaskValue) { : __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue : "memory"); return; } __attribute__((always_inline)) ulPortRaiseBASEPRI () { uint32_t ulNewBASEPRI; uint32_t ulOriginalBASEPRI; uint32_t D.6437; : __asm__ __volatile__(" mrs %0, basepri mov %1, %2 msr basepri, %1 isb dsb " : "=r" ulOriginalBASEPRI, "=r" ulNewBASEPRI : "i" 16 : "memory"); D.6437 = ulOriginalBASEPRI; : : return D.6437; } __attribute__((always_inline)) vPortRaiseBASEPRI () { uint32_t ulNewBASEPRI; : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI : "i" 16 : "memory"); return; }