Marking local functions: Marking externally visible functions: vQueueWaitForMessageRestricted vQueueUnregisterQueue pcQueueGetName vQueueAddToRegistry xQueueIsQueueFullFromISR xQueueIsQueueEmptyFromISR ucQueueGetQueueType vQueueSetQueueNumber uxQueueGetQueueNumber vQueueDelete uxQueueMessagesWaitingFromISR uxQueueSpacesAvailable uxQueueMessagesWaiting xQueuePeekFromISR xQueueReceiveFromISR xQueuePeek xQueueSemaphoreTake xQueueReceive xQueueGiveFromISR xQueueGenericSendFromISR xQueueGenericSend xQueueCreateCountingSemaphore xQueueTakeMutexRecursive xQueueGiveMutexRecursive xQueueGetMutexHolderFromISR xQueueGetMutexHolder xQueueCreateMutex xQueueGenericCreate xQueueGenericReset Marking externally visible variables: xQueueRegistry Reclaiming functions: Reclaiming variables: Clearing address taken flags: Symbol table: vTaskPlaceOnEventListRestricted/62 (vTaskPlaceOnEventListRestricted) @060be700 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vQueueWaitForMessageRestricted/41 Calls: vTaskMissedYield/61 (vTaskMissedYield) @060a6ee0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: prvUnlockQueue/33 prvUnlockQueue/33 Calls: memcpy/60 (memcpy) @060a6c40 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: prvCopyDataFromQueue/32 prvCopyDataToQueue/31 prvCopyDataToQueue/31 Calls: xTaskPriorityDisinherit/59 (xTaskPriorityDisinherit) @060a6b60 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: prvCopyDataToQueue/31 Calls: vPortFree/58 (vPortFree) @060a6540 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vQueueDelete/26 Calls: vTaskPriorityDisinheritAfterTimeout/57 (vTaskPriorityDisinheritAfterTimeout) @0606dd20 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueueSemaphoreTake/19 Calls: xTaskPriorityInherit/56 (xTaskPriorityInherit) @0606dc40 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueueSemaphoreTake/19 Calls: pvTaskIncrementMutexHeldCount/55 (pvTaskIncrementMutexHeldCount) @0606db60 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueueSemaphoreTake/19 Calls: vPortValidateInterruptPriority/54 (vPortValidateInterruptPriority) @0606d0e0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueuePeekFromISR/22 xQueueReceiveFromISR/21 xQueueGenericSendFromISR/16 xQueueGiveFromISR/17 Calls: xTaskResumeAll/53 (xTaskResumeAll) @06013ee0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueueGenericSend/15 xQueueGenericSend/15 xQueueGenericSend/15 xQueuePeek/20 xQueuePeek/20 xQueuePeek/20 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueReceive/18 xQueueReceive/18 xQueueReceive/18 Calls: vTaskPlaceOnEventList/52 (vTaskPlaceOnEventList) @06013e00 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueueGenericSend/15 xQueuePeek/20 xQueueSemaphoreTake/19 xQueueReceive/18 Calls: xTaskCheckForTimeOut/51 (xTaskCheckForTimeOut) @06013d20 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueueGenericSend/15 xQueuePeek/20 xQueueSemaphoreTake/19 xQueueReceive/18 Calls: vTaskSuspendAll/50 (vTaskSuspendAll) @06013c40 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueueGenericSend/15 xQueuePeek/20 xQueueSemaphoreTake/19 xQueueReceive/18 Calls: vTaskInternalSetTimeOutState/49 (vTaskInternalSetTimeOutState) @06013b60 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueueGenericSend/15 xQueuePeek/20 xQueueSemaphoreTake/19 xQueueReceive/18 Calls: xTaskGetSchedulerState/48 (xTaskGetSchedulerState) @06013a80 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueueGenericSend/15 xQueuePeek/20 xQueueSemaphoreTake/19 xQueueReceive/18 Calls: xTaskGetCurrentTaskHandle/47 (xTaskGetCurrentTaskHandle) @06013540 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueueGiveMutexRecursive/12 xQueueTakeMutexRecursive/13 Calls: pvPortMalloc/46 (pvPortMalloc) @06009460 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueueGenericCreate/6 Calls: vPortExitCritical/45 (vPortExitCritical) @06009e00 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vQueueWaitForMessageRestricted/41 xQueueGenericSend/15 xQueueGenericSend/15 xQueueGenericSend/15 xQueueGenericSend/15 prvIsQueueFull/36 xQueuePeek/20 xQueuePeek/20 xQueuePeek/20 xQueuePeek/20 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueReceive/18 xQueueReceive/18 xQueueReceive/18 xQueueReceive/18 prvIsQueueEmpty/34 prvUnlockQueue/33 prvUnlockQueue/33 uxQueueSpacesAvailable/24 uxQueueMessagesWaiting/23 xQueueGetMutexHolder/10 xQueueGenericReset/5 Calls: vListInitialise/44 (vListInitialise) @06009d20 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueueGenericReset/5 xQueueGenericReset/5 Calls: xTaskRemoveFromEventList/43 (xTaskRemoveFromEventList) @06009c40 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueueGenericSend/15 xQueuePeek/20 xQueueSemaphoreTake/19 xQueueReceive/18 prvUnlockQueue/33 prvUnlockQueue/33 xQueueReceiveFromISR/21 xQueueGenericSendFromISR/16 xQueueGiveFromISR/17 xQueueGenericReset/5 Calls: vPortEnterCritical/42 (vPortEnterCritical) @06009b60 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vQueueWaitForMessageRestricted/41 xQueueGenericSend/15 xQueueGenericSend/15 prvIsQueueFull/36 xQueuePeek/20 xQueuePeek/20 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueReceive/18 xQueueReceive/18 prvIsQueueEmpty/34 prvUnlockQueue/33 prvUnlockQueue/33 uxQueueSpacesAvailable/24 uxQueueMessagesWaiting/23 xQueueGetMutexHolder/10 xQueueGenericReset/5 Calls: vQueueWaitForMessageRestricted/41 (vQueueWaitForMessageRestricted) @06009620 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: prvUnlockQueue/33 vTaskPlaceOnEventListRestricted/62 vPortExitCritical/45 vPortEnterCritical/42 vQueueUnregisterQueue/40 (vQueueUnregisterQueue) @06009380 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: xQueueRegistry/4 (read)xQueueRegistry/4 (write)xQueueRegistry/4 (write) Referring: Availability: available Function flags: body Called by: vQueueDelete/26 Calls: pcQueueGetName/39 (pcQueueGetName) @06009000 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: xQueueRegistry/4 (read)xQueueRegistry/4 (read) Referring: Availability: available Function flags: body Called by: Calls: vQueueAddToRegistry/38 (vQueueAddToRegistry) @060018c0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: xQueueRegistry/4 (read)xQueueRegistry/4 (addr)xQueueRegistry/4 (read)xQueueRegistry/4 (addr) Referring: Availability: available Function flags: body Called by: Calls: xQueueIsQueueFullFromISR/37 (xQueueIsQueueFullFromISR) @06001e00 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: prvIsQueueFull/36 (prvIsQueueFull) @06001a80 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: Availability: available Function flags: body Called by: xQueueGenericSend/15 Calls: vPortExitCritical/45 vPortEnterCritical/42 xQueueIsQueueEmptyFromISR/35 (xQueueIsQueueEmptyFromISR) @060017e0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: prvIsQueueEmpty/34 (prvIsQueueEmpty) @06001460 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: Availability: available Function flags: body Called by: xQueuePeek/20 xQueuePeek/20 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueReceive/18 xQueueReceive/18 Calls: vPortExitCritical/45 vPortEnterCritical/42 prvUnlockQueue/33 (prvUnlockQueue) @060011c0 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: Availability: available Function flags: body Called by: vQueueWaitForMessageRestricted/41 xQueueGenericSend/15 xQueueGenericSend/15 xQueueGenericSend/15 xQueuePeek/20 xQueuePeek/20 xQueuePeek/20 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueReceive/18 xQueueReceive/18 xQueueReceive/18 Calls: vPortExitCritical/45 vTaskMissedYield/61 xTaskRemoveFromEventList/43 vPortEnterCritical/42 vPortExitCritical/45 vTaskMissedYield/61 xTaskRemoveFromEventList/43 vPortEnterCritical/42 prvCopyDataFromQueue/32 (prvCopyDataFromQueue) @05ffb9a0 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: Availability: available Function flags: body Called by: xQueuePeek/20 xQueueReceive/18 xQueuePeekFromISR/22 xQueueReceiveFromISR/21 Calls: memcpy/60 prvCopyDataToQueue/31 (prvCopyDataToQueue) @05ffb460 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: Availability: available Function flags: body Called by: xQueueGenericSend/15 xQueueGenericSendFromISR/16 Calls: memcpy/60 memcpy/60 xTaskPriorityDisinherit/59 prvGetDisinheritPriorityAfterTimeout/30 (prvGetDisinheritPriorityAfterTimeout) @05ffbee0 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: Availability: available Function flags: body Called by: xQueueSemaphoreTake/19 Calls: ucQueueGetQueueType/29 (ucQueueGetQueueType) @05ffbb60 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: vQueueSetQueueNumber/28 (vQueueSetQueueNumber) @05ffb8c0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: uxQueueGetQueueNumber/27 (uxQueueGetQueueNumber) @05ffb620 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: vQueueDelete/26 (vQueueDelete) @05ffb380 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: vPortFree/58 vQueueUnregisterQueue/40 uxQueueMessagesWaitingFromISR/25 (uxQueueMessagesWaitingFromISR) @05ffb000 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: uxQueueSpacesAvailable/24 (uxQueueSpacesAvailable) @05ff2620 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: vPortExitCritical/45 vPortEnterCritical/42 uxQueueMessagesWaiting/23 (uxQueueMessagesWaiting) @05ff2d20 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: vPortExitCritical/45 vPortEnterCritical/42 xQueuePeekFromISR/22 (xQueuePeekFromISR) @05ff29a0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: prvCopyDataFromQueue/32 vPortValidateInterruptPriority/54 xQueueReceiveFromISR/21 (xQueueReceiveFromISR) @05ff2540 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: xTaskRemoveFromEventList/43 prvCopyDataFromQueue/32 vPortValidateInterruptPriority/54 xQueuePeek/20 (xQueuePeek) @05ff20e0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: prvIsQueueEmpty/34 xTaskResumeAll/53 prvUnlockQueue/33 xTaskResumeAll/53 prvUnlockQueue/33 xTaskResumeAll/53 prvUnlockQueue/33 vTaskPlaceOnEventList/52 prvIsQueueEmpty/34 xTaskCheckForTimeOut/51 vPortExitCritical/45 vPortEnterCritical/42 vTaskSuspendAll/50 vPortExitCritical/45 vTaskInternalSetTimeOutState/49 vPortExitCritical/45 vPortExitCritical/45 xTaskRemoveFromEventList/43 prvCopyDataFromQueue/32 vPortEnterCritical/42 xTaskGetSchedulerState/48 xQueueSemaphoreTake/19 (xQueueSemaphoreTake) @05fe4d20 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: xQueueTakeMutexRecursive/13 Calls: vPortExitCritical/45 vTaskPriorityDisinheritAfterTimeout/57 prvGetDisinheritPriorityAfterTimeout/30 vPortEnterCritical/42 prvIsQueueEmpty/34 xTaskResumeAll/53 prvUnlockQueue/33 xTaskResumeAll/53 prvUnlockQueue/33 xTaskResumeAll/53 prvUnlockQueue/33 vTaskPlaceOnEventList/52 vPortExitCritical/45 xTaskPriorityInherit/56 vPortEnterCritical/42 prvIsQueueEmpty/34 xTaskCheckForTimeOut/51 vPortExitCritical/45 vPortEnterCritical/42 vTaskSuspendAll/50 vPortExitCritical/45 vTaskInternalSetTimeOutState/49 vPortExitCritical/45 vPortExitCritical/45 xTaskRemoveFromEventList/43 pvTaskIncrementMutexHeldCount/55 vPortEnterCritical/42 xTaskGetSchedulerState/48 xQueueReceive/18 (xQueueReceive) @05fe4620 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: prvIsQueueEmpty/34 xTaskResumeAll/53 prvUnlockQueue/33 xTaskResumeAll/53 prvUnlockQueue/33 xTaskResumeAll/53 prvUnlockQueue/33 vTaskPlaceOnEventList/52 prvIsQueueEmpty/34 xTaskCheckForTimeOut/51 vPortExitCritical/45 vPortEnterCritical/42 vTaskSuspendAll/50 vPortExitCritical/45 vTaskInternalSetTimeOutState/49 vPortExitCritical/45 vPortExitCritical/45 xTaskRemoveFromEventList/43 prvCopyDataFromQueue/32 vPortEnterCritical/42 xTaskGetSchedulerState/48 xQueueGiveFromISR/17 (xQueueGiveFromISR) @05fe4000 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: xTaskRemoveFromEventList/43 vPortValidateInterruptPriority/54 xQueueGenericSendFromISR/16 (xQueueGenericSendFromISR) @05f8de00 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: xTaskRemoveFromEventList/43 prvCopyDataToQueue/31 vPortValidateInterruptPriority/54 xQueueGenericSend/15 (xQueueGenericSend) @05f8d9a0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: xQueueGiveMutexRecursive/12 prvInitialiseMutex/8 Calls: xTaskResumeAll/53 prvUnlockQueue/33 xTaskResumeAll/53 prvUnlockQueue/33 xTaskResumeAll/53 prvUnlockQueue/33 vTaskPlaceOnEventList/52 prvIsQueueFull/36 xTaskCheckForTimeOut/51 vPortExitCritical/45 vPortEnterCritical/42 vTaskSuspendAll/50 vPortExitCritical/45 vTaskInternalSetTimeOutState/49 vPortExitCritical/45 vPortExitCritical/45 xTaskRemoveFromEventList/43 prvCopyDataToQueue/31 vPortEnterCritical/42 xTaskGetSchedulerState/48 xQueueCreateCountingSemaphore/14 (xQueueCreateCountingSemaphore) @05f8d2a0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: xQueueGenericCreate/6 xQueueTakeMutexRecursive/13 (xQueueTakeMutexRecursive) @05f85ee0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: xQueueSemaphoreTake/19 xTaskGetCurrentTaskHandle/47 xQueueGiveMutexRecursive/12 (xQueueGiveMutexRecursive) @05f85540 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: xQueueGenericSend/15 xTaskGetCurrentTaskHandle/47 xQueueGetMutexHolderFromISR/11 (xQueueGetMutexHolderFromISR) @05f85e00 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: xQueueGetMutexHolder/10 (xQueueGetMutexHolder) @05f85a80 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: vPortExitCritical/45 vPortEnterCritical/42 xQueueCreateMutex/9 (xQueueCreateMutex) @05f85700 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: prvInitialiseMutex/8 xQueueGenericCreate/6 prvInitialiseMutex/8 (prvInitialiseMutex) @05f85460 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: Availability: available Function flags: body Called by: xQueueCreateMutex/9 Calls: xQueueGenericSend/15 prvInitialiseNewQueue/7 (prvInitialiseNewQueue) @05f851c0 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: Availability: available Function flags: body Called by: xQueueGenericCreate/6 Calls: xQueueGenericReset/5 xQueueGenericCreate/6 (xQueueGenericCreate) @05f9ce00 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: xQueueCreateMutex/9 xQueueCreateCountingSemaphore/14 Calls: prvInitialiseNewQueue/7 pvPortMalloc/46 xQueueGenericReset/5 (xQueueGenericReset) @05f9cd20 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: prvInitialiseNewQueue/7 Calls: vPortExitCritical/45 vListInitialise/44 vListInitialise/44 xTaskRemoveFromEventList/43 vPortEnterCritical/42 xQueueRegistry/4 (xQueueRegistry) @05f98630 Type: variable definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: pcQueueGetName/39 (read)vQueueAddToRegistry/38 (addr)vQueueAddToRegistry/38 (read)vQueueAddToRegistry/38 (addr)pcQueueGetName/39 (read)vQueueAddToRegistry/38 (read)vQueueUnregisterQueue/40 (read)vQueueUnregisterQueue/40 (write)vQueueUnregisterQueue/40 (write) Availability: available Varpool flags: 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; : pxQueue_9 = xQueue_8(D); vPortEnterCritical (); _1 ={v} pxQueue_9->cRxLock; if (_1 == -1) goto ; [INV] else goto ; [INV] : pxQueue_9->cRxLock ={v} 0; : _2 ={v} pxQueue_9->cTxLock; if (_2 == -1) goto ; [INV] else goto ; [INV] : pxQueue_9->cTxLock ={v} 0; : vPortExitCritical (); _3 ={v} pxQueue_9->uxMessagesWaiting; if (_3 == 0) goto ; [INV] else goto ; [INV] : _4 = &pxQueue_9->xTasksWaitingToReceive; vTaskPlaceOnEventListRestricted (_4, xTicksToWait_15(D), xWaitIndefinitely_16(D)); : prvUnlockQueue (pxQueue_9); return; } vQueueUnregisterQueue (struct QueueDefinition * xQueue) { uint32_t ulNewBASEPRI; UBaseType_t ux; struct QueueDefinition * _1; : if (xQueue_4(D) == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_10 : "i" 16 : "memory"); : : goto ; [INV] : ux_5 = 0; goto ; [INV] : _1 = xQueueRegistry[ux_2].xHandle; if (xQueue_4(D) == _1) goto ; [INV] else goto ; [INV] : xQueueRegistry[ux_2].pcQueueName = 0B; xQueueRegistry[ux_2].xHandle = 0B; goto ; [INV] : ux_7 = ux_2 + 1; : # ux_2 = PHI if (ux_2 <= 1) goto ; [INV] else goto ; [INV] : return; } pcQueueGetName (struct QueueDefinition * xQueue) { uint32_t ulNewBASEPRI; const char * pcReturn; UBaseType_t ux; const char * D.7264; struct QueueDefinition * _1; const char * _10; : pcReturn_4 = 0B; if (xQueue_5(D) == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_11 : "i" 16 : "memory"); : : goto ; [INV] : ux_6 = 0; goto ; [INV] : _1 = xQueueRegistry[ux_2].xHandle; if (xQueue_5(D) == _1) goto ; [INV] else goto ; [INV] : pcReturn_9 = xQueueRegistry[ux_2].pcQueueName; goto ; [INV] : ux_8 = ux_2 + 1; : # ux_2 = PHI if (ux_2 <= 1) goto ; [INV] else goto ; [INV] : # pcReturn_3 = PHI _10 = pcReturn_3; : : return _10; } vQueueAddToRegistry (struct QueueDefinition * xQueue, const char * pcQueueName) { uint32_t ulNewBASEPRI; struct QueueRegistryItem_t * pxEntryToWrite; UBaseType_t ux; struct QueueDefinition * _1; const char * _2; : if (xQueue_8(D) == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_18 : "i" 16 : "memory"); : : goto ; [INV] : pxEntryToWrite_9 = 0B; if (pcQueueName_10(D) != 0B) goto ; [INV] else goto ; [INV] : ux_11 = 0; goto ; [INV] : _1 = xQueueRegistry[ux_3].xHandle; if (xQueue_8(D) == _1) goto ; [INV] else goto ; [INV] : pxEntryToWrite_15 = &xQueueRegistry[ux_3]; goto ; [INV] : if (pxEntryToWrite_5 == 0B) goto ; [INV] else goto ; [INV] : _2 = xQueueRegistry[ux_3].pcQueueName; if (_2 == 0B) goto ; [INV] else goto ; [INV] : pxEntryToWrite_13 = &xQueueRegistry[ux_3]; : # pxEntryToWrite_4 = PHI ux_14 = ux_3 + 1; : # ux_3 = PHI # pxEntryToWrite_5 = PHI if (ux_3 <= 1) goto ; [INV] else goto ; [INV] : # pxEntryToWrite_6 = PHI if (pxEntryToWrite_6 != 0B) goto ; [INV] else goto ; [INV] : pxEntryToWrite_6->pcQueueName = pcQueueName_10(D); pxEntryToWrite_6->xHandle = xQueue_8(D); : return; } xQueueIsQueueFullFromISR (struct QueueDefinition * const xQueue) { uint32_t ulNewBASEPRI; struct Queue_t * const pxQueue; BaseType_t xReturn; BaseType_t D.7245; long unsigned int _1; long unsigned int _2; BaseType_t _9; : pxQueue_5 = xQueue_4(D); if (pxQueue_5 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_10 : "i" 16 : "memory"); : : goto ; [INV] : _1 ={v} pxQueue_5->uxMessagesWaiting; _2 = pxQueue_5->uxLength; if (_1 == _2) goto ; [INV] else goto ; [INV] : xReturn_8 = 1; goto ; [INV] : xReturn_7 = 0; : # xReturn_3 = PHI _9 = xReturn_3; : : return _9; } prvIsQueueFull (const struct Queue_t * pxQueue) { BaseType_t xReturn; BaseType_t D.7238; long unsigned int _1; long unsigned int _2; BaseType_t _10; : vPortEnterCritical (); _1 ={v} pxQueue_6(D)->uxMessagesWaiting; _2 = pxQueue_6(D)->uxLength; if (_1 == _2) goto ; [INV] else goto ; [INV] : xReturn_8 = 1; goto ; [INV] : xReturn_7 = 0; : # xReturn_3 = PHI vPortExitCritical (); _10 = xReturn_3; : : return _10; } xQueueIsQueueEmptyFromISR (struct QueueDefinition * const xQueue) { uint32_t ulNewBASEPRI; struct Queue_t * const pxQueue; BaseType_t xReturn; BaseType_t D.7233; long unsigned int _1; BaseType_t _8; : pxQueue_4 = xQueue_3(D); if (pxQueue_4 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_9 : "i" 16 : "memory"); : : goto ; [INV] : _1 ={v} pxQueue_4->uxMessagesWaiting; if (_1 == 0) goto ; [INV] else goto ; [INV] : xReturn_7 = 1; goto ; [INV] : xReturn_6 = 0; : # xReturn_2 = PHI _8 = xReturn_2; : : return _8; } prvIsQueueEmpty (const struct Queue_t * pxQueue) { BaseType_t xReturn; BaseType_t D.7226; long unsigned int _1; BaseType_t _9; : vPortEnterCritical (); _1 ={v} pxQueue_5(D)->uxMessagesWaiting; if (_1 == 0) goto ; [INV] else goto ; [INV] : xReturn_7 = 1; goto ; [INV] : xReturn_6 = 0; : # xReturn_2 = PHI vPortExitCritical (); _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.28_4; unsigned char _5; long unsigned int _6; struct List_t * _7; long int _8; unsigned char cRxLock.29_9; unsigned char _10; : vPortEnterCritical (); cTxLock_20 ={v} pxQueue_19(D)->cTxLock; goto ; [INV] : _1 ={v} pxQueue_19(D)->xTasksWaitingToReceive.uxNumberOfItems; if (_1 != 0) goto ; [INV] else goto ; [INV] : _2 = &pxQueue_19(D)->xTasksWaitingToReceive; _3 = xTaskRemoveFromEventList (_2); if (_3 != 0) goto ; [INV] else goto ; [INV] : vTaskMissedYield (); goto ; [INV] : goto ; [INV] : cTxLock.28_4 = (unsigned char) cTxLock_11; _5 = cTxLock.28_4 + 255; cTxLock_23 = (int8_t) _5; : # cTxLock_11 = PHI if (cTxLock_11 > 0) goto ; [INV] else goto ; [INV] : pxQueue_19(D)->cTxLock ={v} -1; vPortExitCritical (); vPortEnterCritical (); cRxLock_27 ={v} pxQueue_19(D)->cRxLock; goto ; [INV] : _6 ={v} pxQueue_19(D)->xTasksWaitingToSend.uxNumberOfItems; if (_6 != 0) goto ; [INV] else goto ; [INV] : _7 = &pxQueue_19(D)->xTasksWaitingToSend; _8 = xTaskRemoveFromEventList (_7); if (_8 != 0) goto ; [INV] else goto ; [INV] : vTaskMissedYield (); : cRxLock.29_9 = (unsigned char) cRxLock_12; _10 = cRxLock.29_9 + 255; cRxLock_30 = (int8_t) _10; goto ; [INV] : goto ; [INV] : # cRxLock_12 = PHI if (cRxLock_12 > 0) goto ; [INV] else goto ; [INV] : pxQueue_19(D)->cRxLock ={v} -1; 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; : _1 = pxQueue_13(D)->uxItemSize; if (_1 != 0) goto ; [INV] else goto ; [INV] : _2 = pxQueue_13(D)->u.xQueue.pcReadFrom; _3 = pxQueue_13(D)->uxItemSize; _4 = _2 + _3; pxQueue_13(D)->u.xQueue.pcReadFrom = _4; _5 = pxQueue_13(D)->u.xQueue.pcReadFrom; _6 = pxQueue_13(D)->u.xQueue.pcTail; if (_5 >= _6) goto ; [INV] else goto ; [INV] : _7 = pxQueue_13(D)->pcHead; pxQueue_13(D)->u.xQueue.pcReadFrom = _7; : _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; BaseType_t D.7204; 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; : xReturn_29 = 0; uxMessagesWaiting_32 ={v} pxQueue_31(D)->uxMessagesWaiting; _1 = pxQueue_31(D)->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : _2 = pxQueue_31(D)->pcHead; if (_2 == 0B) goto ; [INV] else goto ; [INV] : _3 = pxQueue_31(D)->u.xSemaphore.xMutexHolder; xReturn_43 = xTaskPriorityDisinherit (_3); pxQueue_31(D)->u.xSemaphore.xMutexHolder = 0B; goto ; [INV] : if (xPosition_33(D) == 0) goto ; [INV] else goto ; [INV] : _4 = pxQueue_31(D)->pcWriteTo; _5 = pxQueue_31(D)->uxItemSize; memcpy (_4, pvItemToQueue_34(D), _5); _6 = pxQueue_31(D)->pcWriteTo; _7 = pxQueue_31(D)->uxItemSize; _8 = _6 + _7; pxQueue_31(D)->pcWriteTo = _8; _9 = pxQueue_31(D)->pcWriteTo; _10 = pxQueue_31(D)->u.xQueue.pcTail; if (_9 >= _10) goto ; [INV] else goto ; [INV] : _11 = pxQueue_31(D)->pcHead; pxQueue_31(D)->pcWriteTo = _11; goto ; [INV] : _12 = pxQueue_31(D)->u.xQueue.pcReadFrom; _13 = pxQueue_31(D)->uxItemSize; memcpy (_12, pvItemToQueue_34(D), _13); _14 = pxQueue_31(D)->u.xQueue.pcReadFrom; _15 = pxQueue_31(D)->uxItemSize; _16 = -_15; _17 = _14 + _16; pxQueue_31(D)->u.xQueue.pcReadFrom = _17; _18 = pxQueue_31(D)->u.xQueue.pcReadFrom; _19 = pxQueue_31(D)->pcHead; if (_18 < _19) goto ; [INV] else goto ; [INV] : _20 = pxQueue_31(D)->u.xQueue.pcTail; _21 = pxQueue_31(D)->uxItemSize; _22 = -_21; _23 = _20 + _22; pxQueue_31(D)->u.xQueue.pcReadFrom = _23; : if (xPosition_33(D) == 2) goto ; [INV] else goto ; [INV] : if (uxMessagesWaiting_32 != 0) goto ; [INV] else goto ; [INV] : uxMessagesWaiting_38 = uxMessagesWaiting_32 + 4294967295; : # xReturn_25 = PHI # uxMessagesWaiting_26 = PHI _24 = uxMessagesWaiting_26 + 1; pxQueue_31(D)->uxMessagesWaiting ={v} _24; _46 = xReturn_25; : : return _46; } prvGetDisinheritPriorityAfterTimeout (const struct Queue_t * const pxQueue) { UBaseType_t uxHighestPriorityOfWaitingTasks; UBaseType_t D.7181; long unsigned int _1; struct xLIST_ITEM * _2; long unsigned int _3; UBaseType_t _9; : _1 ={v} pxQueue_6(D)->xTasksWaitingToReceive.uxNumberOfItems; if (_1 != 0) goto ; [INV] else goto ; [INV] : _2 = pxQueue_6(D)->xTasksWaitingToReceive.xListEnd.pxNext; _3 = _2->xItemValue; uxHighestPriorityOfWaitingTasks_8 = 5 - _3; goto ; [INV] : uxHighestPriorityOfWaitingTasks_7 = 0; : # uxHighestPriorityOfWaitingTasks_4 = PHI _9 = uxHighestPriorityOfWaitingTasks_4; : : return _9; } ucQueueGetQueueType (struct QueueDefinition * xQueue) { uint8_t D.7176; uint8_t _3; : _3 = MEM[(struct Queue_t *)xQueue_2(D)].ucQueueType; : : return _3; } vQueueSetQueueNumber (struct QueueDefinition * xQueue, UBaseType_t uxQueueNumber) { : MEM[(struct Queue_t *)xQueue_2(D)].uxQueueNumber = uxQueueNumber_3(D); return; } uxQueueGetQueueNumber (struct QueueDefinition * xQueue) { UBaseType_t D.7174; UBaseType_t _3; : _3 = MEM[(struct Queue_t *)xQueue_2(D)].uxQueueNumber; : : return _3; } vQueueDelete (struct QueueDefinition * xQueue) { uint32_t ulNewBASEPRI; struct Queue_t * const pxQueue; : pxQueue_2 = xQueue_1(D); if (pxQueue_2 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_6 : "i" 16 : "memory"); : : goto ; [INV] : vQueueUnregisterQueue (pxQueue_2); vPortFree (pxQueue_2); return; } uxQueueMessagesWaitingFromISR (struct QueueDefinition * const xQueue) { uint32_t ulNewBASEPRI; struct Queue_t * const pxQueue; UBaseType_t uxReturn; UBaseType_t D.7170; UBaseType_t _5; : pxQueue_2 = xQueue_1(D); if (pxQueue_2 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_6 : "i" 16 : "memory"); : : goto ; [INV] : uxReturn_4 ={v} pxQueue_2->uxMessagesWaiting; _5 = uxReturn_4; : : return _5; } uxQueueSpacesAvailable (struct QueueDefinition * const xQueue) { uint32_t ulNewBASEPRI; struct Queue_t * const pxQueue; UBaseType_t uxReturn; UBaseType_t D.7166; long unsigned int _1; long unsigned int _2; UBaseType_t _9; : pxQueue_4 = xQueue_3(D); if (pxQueue_4 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_10 : "i" 16 : "memory"); : : goto ; [INV] : vPortEnterCritical (); _1 = pxQueue_4->uxLength; _2 ={v} pxQueue_4->uxMessagesWaiting; uxReturn_7 = _1 - _2; vPortExitCritical (); _9 = uxReturn_7; : : return _9; } uxQueueMessagesWaiting (struct QueueDefinition * const xQueue) { uint32_t ulNewBASEPRI; UBaseType_t uxReturn; UBaseType_t D.7162; UBaseType_t _6; : if (xQueue_1(D) == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_7 : "i" 16 : "memory"); : : goto ; [INV] : vPortEnterCritical (); uxReturn_4 ={v} MEM[(struct Queue_t *)xQueue_1(D)].uxMessagesWaiting; vPortExitCritical (); _6 = uxReturn_4; : : return _6; } xQueuePeekFromISR (struct QueueDefinition * xQueue, void * const pvBuffer) { uint32_t ulNewMaskValue; uint32_t D.7361; uint32_t ulOriginalBASEPRI; uint32_t ulNewBASEPRI; uint32_t D.7360; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; struct Queue_t * const pxQueue; int8_t * pcOriginalReadPosition; UBaseType_t uxSavedInterruptStatus; BaseType_t xReturn; BaseType_t D.7158; int iftmp.27; long unsigned int _1; long unsigned int _2; long unsigned int _3; int iftmp.27_5; int iftmp.27_11; int iftmp.27_12; BaseType_t _20; long unsigned int _26; : pxQueue_8 = xQueue_7(D); if (pxQueue_8 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_21 : "i" 16 : "memory"); : : goto ; [INV] : if (pvBuffer_9(D) != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue_8->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.27_12 = 1; goto ; [INV] : iftmp.27_11 = 0; : # iftmp.27_5 = PHI if (iftmp.27_5 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_22 : "i" 16 : "memory"); : : goto ; [INV] : _2 = pxQueue_8->uxItemSize; if (_2 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_23 : "i" 16 : "memory"); : : goto ; [INV] : vPortValidateInterruptPriority (); __asm__ __volatile__(" mrs %0, basepri mov %1, %2 msr basepri, %1 isb dsb " : "=r" ulOriginalBASEPRI_24, "=r" ulNewBASEPRI_25 : "i" 16 : "memory"); _26 = ulOriginalBASEPRI_24; : : _29 = _26; : uxSavedInterruptStatus_14 = _29; _3 ={v} pxQueue_8->uxMessagesWaiting; if (_3 != 0) goto ; [INV] else goto ; [INV] : pcOriginalReadPosition_16 = pxQueue_8->u.xQueue.pcReadFrom; prvCopyDataFromQueue (pxQueue_8, pvBuffer_9(D)); pxQueue_8->u.xQueue.pcReadFrom = pcOriginalReadPosition_16; xReturn_19 = 1; goto ; [INV] : xReturn_15 = 0; : # xReturn_4 = PHI ulNewMaskValue_27 = uxSavedInterruptStatus_14; __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue_27 : "memory"); : _20 = xReturn_4; : : return _20; } xQueueReceiveFromISR (struct QueueDefinition * xQueue, void * const pvBuffer, BaseType_t * const pxHigherPriorityTaskWoken) { uint32_t ulNewMaskValue; uint32_t ulNewBASEPRI; uint32_t D.7351; uint32_t ulOriginalBASEPRI; uint32_t ulNewBASEPRI; uint32_t D.7350; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; const int8_t cRxLock; const UBaseType_t uxMessagesWaiting; struct Queue_t * const pxQueue; UBaseType_t uxSavedInterruptStatus; BaseType_t xReturn; BaseType_t D.7142; int iftmp.25; long unsigned int _1; long unsigned int _2; long unsigned int _3; struct List_t * _4; long int _5; unsigned char cRxLock.26_6; unsigned char _7; signed char _8; int iftmp.25_10; int iftmp.25_17; int iftmp.25_18; BaseType_t _31; long unsigned int _36; : pxQueue_14 = xQueue_13(D); if (pxQueue_14 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_32 : "i" 16 : "memory"); : : goto ; [INV] : if (pvBuffer_15(D) != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue_14->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.25_18 = 1; goto ; [INV] : iftmp.25_17 = 0; : # iftmp.25_10 = PHI if (iftmp.25_10 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_33 : "i" 16 : "memory"); : : goto ; [INV] : vPortValidateInterruptPriority (); __asm__ __volatile__(" mrs %0, basepri mov %1, %2 msr basepri, %1 isb dsb " : "=r" ulOriginalBASEPRI_34, "=r" ulNewBASEPRI_35 : "i" 16 : "memory"); _36 = ulOriginalBASEPRI_34; : : _40 = _36; : uxSavedInterruptStatus_20 = _40; uxMessagesWaiting_21 ={v} pxQueue_14->uxMessagesWaiting; if (uxMessagesWaiting_21 != 0) goto ; [INV] else goto ; [INV] : cRxLock_23 ={v} pxQueue_14->cRxLock; prvCopyDataFromQueue (pxQueue_14, pvBuffer_15(D)); _2 = uxMessagesWaiting_21 + 4294967295; pxQueue_14->uxMessagesWaiting ={v} _2; if (cRxLock_23 == -1) goto ; [INV] else goto ; [INV] : _3 ={v} pxQueue_14->xTasksWaitingToSend.uxNumberOfItems; if (_3 != 0) goto ; [INV] else goto ; [INV] : _4 = &pxQueue_14->xTasksWaitingToSend; _5 = xTaskRemoveFromEventList (_4); if (_5 != 0) goto ; [INV] else goto ; [INV] : if (pxHigherPriorityTaskWoken_28(D) != 0B) goto ; [INV] else goto ; [INV] : *pxHigherPriorityTaskWoken_28(D) = 1; goto ; [INV] : if (cRxLock_23 == 127) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_37 : "i" 16 : "memory"); : : goto ; [INV] : cRxLock.26_6 = (unsigned char) cRxLock_23; _7 = cRxLock.26_6 + 1; _8 = (signed char) _7; pxQueue_14->cRxLock ={v} _8; : xReturn_30 = 1; goto ; [INV] : xReturn_22 = 0; : # xReturn_9 = PHI ulNewMaskValue_38 = uxSavedInterruptStatus_20; __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue_38 : "memory"); : _31 = xReturn_9; : : return _31; } xQueuePeek (struct QueueDefinition * xQueue, void * const pvBuffer, TickType_t xTicksToWait) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; const UBaseType_t uxMessagesWaiting; struct Queue_t * const pxQueue; int8_t * pcOriginalReadPosition; struct TimeOut_t xTimeOut; BaseType_t xEntryTimeSet; BaseType_t D.7093; int iftmp.21; int iftmp.20; long unsigned int _1; long int _2; long unsigned int xTicksToWait.22_3; long unsigned int _4; struct List_t * _5; long int _6; volatile uint32_t * _7; long unsigned int xTicksToWait.23_8; signed char _9; signed char _10; long int _11; long int _12; struct List_t * _13; long unsigned int xTicksToWait.24_14; long int _15; volatile uint32_t * _16; long int _17; int iftmp.20_20; int iftmp.21_21; BaseType_t _22; int iftmp.20_35; int iftmp.20_36; int iftmp.21_38; int iftmp.21_39; BaseType_t _54; BaseType_t _65; BaseType_t _74; : xEntryTimeSet_30 = 0; pxQueue_32 = xQueue_31(D); if (pxQueue_32 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_76 : "i" 16 : "memory"); : : goto ; [INV] : if (pvBuffer_33(D) != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue_32->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.20_36 = 1; goto ; [INV] : iftmp.20_35 = 0; : # iftmp.20_20 = PHI if (iftmp.20_20 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_77 : "i" 16 : "memory"); : : goto ; [INV] : _2 = xTaskGetSchedulerState (); if (_2 != 0) goto ; [INV] else goto ; [INV] : xTicksToWait.22_3 = xTicksToWait; if (xTicksToWait.22_3 == 0) goto ; [INV] else goto ; [INV] : iftmp.21_39 = 1; goto ; [INV] : iftmp.21_38 = 0; : # iftmp.21_21 = PHI if (iftmp.21_21 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_78 : "i" 16 : "memory"); : : goto ; [INV] : # xEntryTimeSet_18 = PHI vPortEnterCritical (); uxMessagesWaiting_41 ={v} pxQueue_32->uxMessagesWaiting; if (uxMessagesWaiting_41 != 0) goto ; [INV] else goto ; [INV] : pcOriginalReadPosition_66 = pxQueue_32->u.xQueue.pcReadFrom; prvCopyDataFromQueue (pxQueue_32, pvBuffer_33(D)); pxQueue_32->u.xQueue.pcReadFrom = pcOriginalReadPosition_66; _4 ={v} pxQueue_32->xTasksWaitingToReceive.uxNumberOfItems; if (_4 != 0) goto ; [INV] else goto ; [INV] : _5 = &pxQueue_32->xTasksWaitingToReceive; _6 = xTaskRemoveFromEventList (_5); if (_6 != 0) goto ; [INV] else goto ; [INV] : _7 = 3758157060B; *_7 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : vPortExitCritical (); _74 = 1; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : xTicksToWait.23_8 = xTicksToWait; if (xTicksToWait.23_8 == 0) goto ; [INV] else goto ; [INV] : vPortExitCritical (); _65 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : if (xEntryTimeSet_18 == 0) goto ; [INV] else goto ; [INV] : vTaskInternalSetTimeOutState (&xTimeOut); xEntryTimeSet_43 = 1; : # xEntryTimeSet_19 = PHI vPortExitCritical (); vTaskSuspendAll (); vPortEnterCritical (); _9 ={v} pxQueue_32->cRxLock; if (_9 == -1) goto ; [INV] else goto ; [INV] : pxQueue_32->cRxLock ={v} 0; : _10 ={v} pxQueue_32->cTxLock; if (_10 == -1) goto ; [INV] else goto ; [INV] : pxQueue_32->cTxLock ={v} 0; : vPortExitCritical (); _11 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait); if (_11 == 0) goto ; [INV] else goto ; [INV] : _12 = prvIsQueueEmpty (pxQueue_32); if (_12 != 0) goto ; [INV] else goto ; [INV] : _13 = &pxQueue_32->xTasksWaitingToReceive; xTicksToWait.24_14 = xTicksToWait; vTaskPlaceOnEventList (_13, xTicksToWait.24_14); prvUnlockQueue (pxQueue_32); _15 = xTaskResumeAll (); if (_15 == 0) goto ; [INV] else goto ; [INV] : _16 = 3758157060B; *_16 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); goto ; [INV] : prvUnlockQueue (pxQueue_32); xTaskResumeAll (); goto ; [INV] : prvUnlockQueue (pxQueue_32); xTaskResumeAll (); _17 = prvIsQueueEmpty (pxQueue_32); if (_17 != 0) goto ; [INV] else goto ; [INV] : _54 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : goto ; [INV] : # _22 = PHI <_74(26), _65(28), _54(41)> xTimeOut ={v} {CLOBBER}; : : return _22; } xQueueSemaphoreTake (struct QueueDefinition * xQueue, TickType_t xTicksToWait) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; 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.7039; int iftmp.16; long unsigned int _1; long int _2; long unsigned int xTicksToWait.17_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.18_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.19_19; long int _20; volatile uint32_t * _21; long int _22; struct tskTaskControlBlock * _23; int iftmp.16_29; BaseType_t _30; int iftmp.16_47; int iftmp.16_48; BaseType_t _68; BaseType_t _83; BaseType_t _92; : xEntryTimeSet_41 = 0; pxQueue_43 = xQueue_42(D); xInheritanceOccurred_44 = 0; if (pxQueue_43 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_94 : "i" 16 : "memory"); : : goto ; [INV] : _1 = pxQueue_43->uxItemSize; if (_1 != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_95 : "i" 16 : "memory"); : : goto ; [INV] : _2 = xTaskGetSchedulerState (); if (_2 != 0) goto ; [INV] else goto ; [INV] : xTicksToWait.17_3 = xTicksToWait; if (xTicksToWait.17_3 == 0) goto ; [INV] else goto ; [INV] : iftmp.16_48 = 1; goto ; [INV] : iftmp.16_47 = 0; : # iftmp.16_29 = PHI if (iftmp.16_29 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_96 : "i" 16 : "memory"); : : goto ; [INV] : # xEntryTimeSet_24 = PHI # xInheritanceOccurred_26 = PHI vPortEnterCritical (); uxSemaphoreCount_50 ={v} pxQueue_43->uxMessagesWaiting; if (uxSemaphoreCount_50 != 0) goto ; [INV] else goto ; [INV] : _4 = uxSemaphoreCount_50 + 4294967295; pxQueue_43->uxMessagesWaiting ={v} _4; _5 = pxQueue_43->pcHead; if (_5 == 0B) goto ; [INV] else goto ; [INV] : _6 = pvTaskIncrementMutexHeldCount (); pxQueue_43->u.xSemaphore.xMutexHolder = _6; : _7 ={v} pxQueue_43->xTasksWaitingToSend.uxNumberOfItems; if (_7 != 0) goto ; [INV] else goto ; [INV] : _8 = &pxQueue_43->xTasksWaitingToSend; _9 = xTaskRemoveFromEventList (_8); if (_9 != 0) goto ; [INV] else goto ; [INV] : _10 = 3758157060B; *_10 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : vPortExitCritical (); _92 = 1; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : xTicksToWait.18_11 = xTicksToWait; if (xTicksToWait.18_11 == 0) goto ; [INV] else goto ; [INV] : if (xInheritanceOccurred_26 != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_97 : "i" 16 : "memory"); : : goto ; [INV] : vPortExitCritical (); _83 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : if (xEntryTimeSet_24 == 0) goto ; [INV] else goto ; [INV] : vTaskInternalSetTimeOutState (&xTimeOut); xEntryTimeSet_52 = 1; : # xEntryTimeSet_25 = PHI vPortExitCritical (); vTaskSuspendAll (); vPortEnterCritical (); _12 ={v} pxQueue_43->cRxLock; if (_12 == -1) goto ; [INV] else goto ; [INV] : pxQueue_43->cRxLock ={v} 0; : _13 ={v} pxQueue_43->cTxLock; if (_13 == -1) goto ; [INV] else goto ; [INV] : pxQueue_43->cTxLock ={v} 0; : vPortExitCritical (); _14 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait); if (_14 == 0) goto ; [INV] else goto ; [INV] : _15 = prvIsQueueEmpty (pxQueue_43); if (_15 != 0) goto ; [INV] else goto ; [INV] : _16 = pxQueue_43->pcHead; if (_16 == 0B) goto ; [INV] else goto ; [INV] : vPortEnterCritical (); _17 = pxQueue_43->u.xSemaphore.xMutexHolder; xInheritanceOccurred_74 = xTaskPriorityInherit (_17); vPortExitCritical (); : # xInheritanceOccurred_27 = PHI _18 = &pxQueue_43->xTasksWaitingToReceive; xTicksToWait.19_19 = xTicksToWait; vTaskPlaceOnEventList (_18, xTicksToWait.19_19); prvUnlockQueue (pxQueue_43); _20 = xTaskResumeAll (); if (_20 == 0) goto ; [INV] else goto ; [INV] : _21 = 3758157060B; *_21 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); goto ; [INV] : prvUnlockQueue (pxQueue_43); xTaskResumeAll (); goto ; [INV] : prvUnlockQueue (pxQueue_43); xTaskResumeAll (); _22 = prvIsQueueEmpty (pxQueue_43); if (_22 != 0) goto ; [INV] else goto ; [INV] : if (xInheritanceOccurred_26 != 0) goto ; [INV] else goto ; [INV] : vPortEnterCritical (); uxHighestWaitingPriority_65 = prvGetDisinheritPriorityAfterTimeout (pxQueue_43); _23 = pxQueue_43->u.xSemaphore.xMutexHolder; vTaskPriorityDisinheritAfterTimeout (_23, uxHighestWaitingPriority_65); vPortExitCritical (); : _68 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : # xInheritanceOccurred_28 = PHI goto ; [INV] : # _30 = PHI <_92(24), _83(30), _68(47)> xTimeOut ={v} {CLOBBER}; : : return _30; } xQueueReceive (struct QueueDefinition * xQueue, void * const pvBuffer, TickType_t xTicksToWait) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; const UBaseType_t uxMessagesWaiting; struct Queue_t * const pxQueue; struct TimeOut_t xTimeOut; BaseType_t xEntryTimeSet; BaseType_t D.6994; int iftmp.12; int iftmp.11; long unsigned int _1; long int _2; long unsigned int xTicksToWait.13_3; long unsigned int _4; long unsigned int _5; struct List_t * _6; long int _7; volatile uint32_t * _8; long unsigned int xTicksToWait.14_9; signed char _10; signed char _11; long int _12; long int _13; struct List_t * _14; long unsigned int xTicksToWait.15_15; long int _16; volatile uint32_t * _17; long int _18; int iftmp.11_21; int iftmp.12_22; BaseType_t _23; int iftmp.11_36; int iftmp.11_37; int iftmp.12_39; int iftmp.12_40; BaseType_t _55; BaseType_t _66; BaseType_t _74; : xEntryTimeSet_31 = 0; pxQueue_33 = xQueue_32(D); if (pxQueue_33 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_76 : "i" 16 : "memory"); : : goto ; [INV] : if (pvBuffer_34(D) != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue_33->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.11_37 = 1; goto ; [INV] : iftmp.11_36 = 0; : # iftmp.11_21 = PHI if (iftmp.11_21 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_77 : "i" 16 : "memory"); : : goto ; [INV] : _2 = xTaskGetSchedulerState (); if (_2 != 0) goto ; [INV] else goto ; [INV] : xTicksToWait.13_3 = xTicksToWait; if (xTicksToWait.13_3 == 0) goto ; [INV] else goto ; [INV] : iftmp.12_40 = 1; goto ; [INV] : iftmp.12_39 = 0; : # iftmp.12_22 = PHI if (iftmp.12_22 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_78 : "i" 16 : "memory"); : : goto ; [INV] : # xEntryTimeSet_19 = PHI vPortEnterCritical (); uxMessagesWaiting_42 ={v} pxQueue_33->uxMessagesWaiting; if (uxMessagesWaiting_42 != 0) goto ; [INV] else goto ; [INV] : prvCopyDataFromQueue (pxQueue_33, pvBuffer_34(D)); _4 = uxMessagesWaiting_42 + 4294967295; pxQueue_33->uxMessagesWaiting ={v} _4; _5 ={v} pxQueue_33->xTasksWaitingToSend.uxNumberOfItems; if (_5 != 0) goto ; [INV] else goto ; [INV] : _6 = &pxQueue_33->xTasksWaitingToSend; _7 = xTaskRemoveFromEventList (_6); if (_7 != 0) goto ; [INV] else goto ; [INV] : _8 = 3758157060B; *_8 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : vPortExitCritical (); _74 = 1; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : xTicksToWait.14_9 = xTicksToWait; if (xTicksToWait.14_9 == 0) goto ; [INV] else goto ; [INV] : vPortExitCritical (); _66 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : if (xEntryTimeSet_19 == 0) goto ; [INV] else goto ; [INV] : vTaskInternalSetTimeOutState (&xTimeOut); xEntryTimeSet_44 = 1; : # xEntryTimeSet_20 = PHI vPortExitCritical (); vTaskSuspendAll (); vPortEnterCritical (); _10 ={v} pxQueue_33->cRxLock; if (_10 == -1) goto ; [INV] else goto ; [INV] : pxQueue_33->cRxLock ={v} 0; : _11 ={v} pxQueue_33->cTxLock; if (_11 == -1) goto ; [INV] else goto ; [INV] : pxQueue_33->cTxLock ={v} 0; : vPortExitCritical (); _12 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait); if (_12 == 0) goto ; [INV] else goto ; [INV] : _13 = prvIsQueueEmpty (pxQueue_33); if (_13 != 0) goto ; [INV] else goto ; [INV] : _14 = &pxQueue_33->xTasksWaitingToReceive; xTicksToWait.15_15 = xTicksToWait; vTaskPlaceOnEventList (_14, xTicksToWait.15_15); prvUnlockQueue (pxQueue_33); _16 = xTaskResumeAll (); if (_16 == 0) goto ; [INV] else goto ; [INV] : _17 = 3758157060B; *_17 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); goto ; [INV] : prvUnlockQueue (pxQueue_33); xTaskResumeAll (); goto ; [INV] : prvUnlockQueue (pxQueue_33); xTaskResumeAll (); _18 = prvIsQueueEmpty (pxQueue_33); if (_18 != 0) goto ; [INV] else goto ; [INV] : _55 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : goto ; [INV] : # _23 = PHI <_74(26), _66(28), _55(41)> xTimeOut ={v} {CLOBBER}; : : return _23; } xQueueGiveFromISR (struct QueueDefinition * xQueue, BaseType_t * const pxHigherPriorityTaskWoken) { uint32_t ulNewMaskValue; uint32_t ulNewBASEPRI; uint32_t D.7329; uint32_t ulOriginalBASEPRI; uint32_t ulNewBASEPRI; uint32_t D.7328; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; const int8_t cTxLock; const UBaseType_t uxMessagesWaiting; struct Queue_t * const pxQueue; UBaseType_t uxSavedInterruptStatus; BaseType_t xReturn; BaseType_t D.6968; int iftmp.9; 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.10_9; unsigned char _10; signed char _11; int iftmp.9_13; int iftmp.9_19; int iftmp.9_20; BaseType_t _32; long unsigned int _38; : pxQueue_17 = xQueue_16(D); if (pxQueue_17 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_33 : "i" 16 : "memory"); : : goto ; [INV] : _1 = pxQueue_17->uxItemSize; if (_1 != 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_34 : "i" 16 : "memory"); : : goto ; [INV] : _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.9_20 = 1; goto ; [INV] : iftmp.9_19 = 0; : # iftmp.9_13 = PHI if (iftmp.9_13 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_35 : "i" 16 : "memory"); : : goto ; [INV] : vPortValidateInterruptPriority (); __asm__ __volatile__(" mrs %0, basepri mov %1, %2 msr basepri, %1 isb dsb " : "=r" ulOriginalBASEPRI_36, "=r" ulNewBASEPRI_37 : "i" 16 : "memory"); _38 = ulOriginalBASEPRI_36; : : _42 = _38; : uxSavedInterruptStatus_22 = _42; uxMessagesWaiting_23 ={v} pxQueue_17->uxMessagesWaiting; _4 = pxQueue_17->uxLength; if (uxMessagesWaiting_23 < _4) goto ; [INV] else goto ; [INV] : cTxLock_25 ={v} pxQueue_17->cTxLock; _5 = uxMessagesWaiting_23 + 1; pxQueue_17->uxMessagesWaiting ={v} _5; if (cTxLock_25 == -1) goto ; [INV] else goto ; [INV] : _6 ={v} pxQueue_17->xTasksWaitingToReceive.uxNumberOfItems; if (_6 != 0) goto ; [INV] else goto ; [INV] : _7 = &pxQueue_17->xTasksWaitingToReceive; _8 = xTaskRemoveFromEventList (_7); if (_8 != 0) goto ; [INV] else goto ; [INV] : if (pxHigherPriorityTaskWoken_29(D) != 0B) goto ; [INV] else goto ; [INV] : *pxHigherPriorityTaskWoken_29(D) = 1; goto ; [INV] : if (cTxLock_25 == 127) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_39 : "i" 16 : "memory"); : : goto ; [INV] : cTxLock.10_9 = (unsigned char) cTxLock_25; _10 = cTxLock.10_9 + 1; _11 = (signed char) _10; pxQueue_17->cTxLock ={v} _11; : xReturn_31 = 1; goto ; [INV] : xReturn_24 = 0; : # xReturn_12 = PHI ulNewMaskValue_40 = uxSavedInterruptStatus_22; __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue_40 : "memory"); : _32 = xReturn_12; : : return _32; } xQueueGenericSendFromISR (struct QueueDefinition * xQueue, const void * const pvItemToQueue, BaseType_t * const pxHigherPriorityTaskWoken, const BaseType_t xCopyPosition) { uint32_t ulNewMaskValue; uint32_t ulNewBASEPRI; uint32_t D.7342; uint32_t ulOriginalBASEPRI; uint32_t ulNewBASEPRI; uint32_t D.7341; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; const UBaseType_t uxPreviousMessagesWaiting; const int8_t cTxLock; struct Queue_t * const pxQueue; UBaseType_t uxSavedInterruptStatus; BaseType_t xReturn; BaseType_t D.6936; int iftmp.7; int iftmp.6; 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.8_8; unsigned char _9; signed char _10; int iftmp.6_12; int iftmp.7_13; int iftmp.6_20; int iftmp.6_21; int iftmp.7_23; int iftmp.7_24; BaseType_t _36; long unsigned int _42; : pxQueue_17 = xQueue_16(D); if (pxQueue_17 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_37 : "i" 16 : "memory"); : : goto ; [INV] : if (pvItemToQueue_18(D) != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue_17->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.6_21 = 1; goto ; [INV] : iftmp.6_20 = 0; : # iftmp.6_12 = PHI if (iftmp.6_12 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_38 : "i" 16 : "memory"); : : goto ; [INV] : if (xCopyPosition_22(D) != 2) goto ; [INV] else goto ; [INV] : _2 = pxQueue_17->uxLength; if (_2 == 1) goto ; [INV] else goto ; [INV] : iftmp.7_24 = 1; goto ; [INV] : iftmp.7_23 = 0; : # iftmp.7_13 = PHI if (iftmp.7_13 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_39 : "i" 16 : "memory"); : : goto ; [INV] : vPortValidateInterruptPriority (); __asm__ __volatile__(" mrs %0, basepri mov %1, %2 msr basepri, %1 isb dsb " : "=r" ulOriginalBASEPRI_40, "=r" ulNewBASEPRI_41 : "i" 16 : "memory"); _42 = ulOriginalBASEPRI_40; : : _46 = _42; : uxSavedInterruptStatus_26 = _46; _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] : cTxLock_28 ={v} pxQueue_17->cTxLock; uxPreviousMessagesWaiting_29 ={v} pxQueue_17->uxMessagesWaiting; prvCopyDataToQueue (pxQueue_17, pvItemToQueue_18(D), xCopyPosition_22(D)); if (cTxLock_28 == -1) goto ; [INV] else goto ; [INV] : _5 ={v} pxQueue_17->xTasksWaitingToReceive.uxNumberOfItems; if (_5 != 0) goto ; [INV] else goto ; [INV] : _6 = &pxQueue_17->xTasksWaitingToReceive; _7 = xTaskRemoveFromEventList (_6); if (_7 != 0) goto ; [INV] else goto ; [INV] : if (pxHigherPriorityTaskWoken_33(D) != 0B) goto ; [INV] else goto ; [INV] : *pxHigherPriorityTaskWoken_33(D) = 1; goto ; [INV] : if (cTxLock_28 == 127) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_43 : "i" 16 : "memory"); : : goto ; [INV] : cTxLock.8_8 = (unsigned char) cTxLock_28; _9 = cTxLock.8_8 + 1; _10 = (signed char) _9; pxQueue_17->cTxLock ={v} _10; : xReturn_35 = 1; goto ; [INV] : xReturn_27 = 0; : # xReturn_11 = PHI ulNewMaskValue_44 = uxSavedInterruptStatus_26; __asm__ __volatile__(" msr basepri, %0 " : : "r" ulNewMaskValue_44 : "memory"); : _36 = xReturn_11; : : return _36; } xQueueGenericSend (struct QueueDefinition * xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; struct Queue_t * const pxQueue; struct TimeOut_t xTimeOut; BaseType_t xYieldRequired; BaseType_t xEntryTimeSet; BaseType_t D.6882; int iftmp.2; int iftmp.1; int iftmp.0; 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_39; int iftmp.0_40; int iftmp.1_42; int iftmp.1_43; int iftmp.2_45; int iftmp.2_46; BaseType_t _59; BaseType_t _70; BaseType_t _81; : xEntryTimeSet_34 = 0; pxQueue_36 = xQueue_35(D); if (pxQueue_36 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_83 : "i" 16 : "memory"); : : goto ; [INV] : if (pvItemToQueue_37(D) != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue_36->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.0_40 = 1; goto ; [INV] : iftmp.0_39 = 0; : # iftmp.0_23 = PHI if (iftmp.0_23 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_84 : "i" 16 : "memory"); : : goto ; [INV] : if (xCopyPosition_41(D) != 2) goto ; [INV] else goto ; [INV] : _2 = pxQueue_36->uxLength; if (_2 == 1) goto ; [INV] else goto ; [INV] : iftmp.1_43 = 1; goto ; [INV] : iftmp.1_42 = 0; : # iftmp.1_24 = PHI if (iftmp.1_24 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_85 : "i" 16 : "memory"); : : goto ; [INV] : _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_46 = 1; goto ; [INV] : iftmp.2_45 = 0; : # iftmp.2_25 = PHI if (iftmp.2_25 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_86 : "i" 16 : "memory"); : : goto ; [INV] : # xEntryTimeSet_21 = PHI vPortEnterCritical (); _5 ={v} pxQueue_36->uxMessagesWaiting; _6 = pxQueue_36->uxLength; if (_5 < _6) goto ; [INV] else goto ; [INV] : if (xCopyPosition_41(D) == 2) goto ; [INV] else goto ; [INV] : xYieldRequired_72 = prvCopyDataToQueue (pxQueue_36, pvItemToQueue_37(D), xCopyPosition_41(D)); _7 ={v} pxQueue_36->xTasksWaitingToReceive.uxNumberOfItems; if (_7 != 0) goto ; [INV] else goto ; [INV] : _8 = &pxQueue_36->xTasksWaitingToReceive; _9 = xTaskRemoveFromEventList (_8); if (_9 != 0) goto ; [INV] else goto ; [INV] : _10 = 3758157060B; *_10 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); goto ; [INV] : if (xYieldRequired_72 != 0) goto ; [INV] else goto ; [INV] : _11 = 3758157060B; *_11 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : vPortExitCritical (); _81 = 1; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : xTicksToWait.4_12 = xTicksToWait; if (xTicksToWait.4_12 == 0) goto ; [INV] else goto ; [INV] : vPortExitCritical (); _70 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : if (xEntryTimeSet_21 == 0) goto ; [INV] else goto ; [INV] : vTaskInternalSetTimeOutState (&xTimeOut); xEntryTimeSet_49 = 1; : # xEntryTimeSet_22 = PHI vPortExitCritical (); vTaskSuspendAll (); vPortEnterCritical (); _13 ={v} pxQueue_36->cRxLock; if (_13 == -1) goto ; [INV] else goto ; [INV] : pxQueue_36->cRxLock ={v} 0; : _14 ={v} pxQueue_36->cTxLock; if (_14 == -1) goto ; [INV] else goto ; [INV] : pxQueue_36->cTxLock ={v} 0; : vPortExitCritical (); _15 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait); if (_15 == 0) goto ; [INV] else goto ; [INV] : _16 = prvIsQueueFull (pxQueue_36); if (_16 != 0) goto ; [INV] else goto ; [INV] : _17 = &pxQueue_36->xTasksWaitingToSend; xTicksToWait.5_18 = xTicksToWait; vTaskPlaceOnEventList (_17, xTicksToWait.5_18); prvUnlockQueue (pxQueue_36); _19 = xTaskResumeAll (); if (_19 == 0) goto ; [INV] else goto ; [INV] : _20 = 3758157060B; *_20 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); goto ; [INV] : prvUnlockQueue (pxQueue_36); xTaskResumeAll (); goto ; [INV] : prvUnlockQueue (pxQueue_36); xTaskResumeAll (); _59 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : goto ; [INV] : # _26 = PHI <_81(37), _70(39), _59(51)> xTimeOut ={v} {CLOBBER}; : : return _26; } xQueueCreateCountingSemaphore (const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount) { uint32_t ulNewBASEPRI; struct QueueDefinition * xHandle; struct QueueDefinition * D.6845; struct QueueDefinition * _11; : xHandle_4 = 0B; if (uxMaxCount_5(D) != 0) goto ; [INV] else goto ; [INV] : if (uxInitialCount_6(D) <= uxMaxCount_5(D)) goto ; [INV] else goto ; [INV] : xHandle_9 = xQueueGenericCreate (uxMaxCount_5(D), 0, 2); if (xHandle_9 != 0B) goto ; [INV] else goto ; [INV] : MEM[(struct Queue_t *)xHandle_9].uxMessagesWaiting ={v} uxInitialCount_6(D); : goto ; [INV] : if (xHandle_4 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_12 : "i" 16 : "memory"); : : goto ; [INV] : # xHandle_1 = PHI _11 = xHandle_1; : : return _11; } xQueueTakeMutexRecursive (struct QueueDefinition * xMutex, TickType_t xTicksToWait) { uint32_t ulNewBASEPRI; struct Queue_t * const pxMutex; BaseType_t xReturn; BaseType_t D.6834; 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; : pxMutex_10 = xMutex_9(D); if (pxMutex_10 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_20 : "i" 16 : "memory"); : : goto ; [INV] : _1 = pxMutex_10->u.xSemaphore.xMutexHolder; _2 = xTaskGetCurrentTaskHandle (); if (_1 == _2) goto ; [INV] else goto ; [INV] : _3 = pxMutex_10->u.xSemaphore.uxRecursiveCallCount; _4 = _3 + 1; pxMutex_10->u.xSemaphore.uxRecursiveCallCount = _4; xReturn_18 = 1; goto ; [INV] : xReturn_15 = xQueueSemaphoreTake (pxMutex_10, xTicksToWait_13(D)); if (xReturn_15 != 0) goto ; [INV] else goto ; [INV] : _5 = pxMutex_10->u.xSemaphore.uxRecursiveCallCount; _6 = _5 + 1; pxMutex_10->u.xSemaphore.uxRecursiveCallCount = _6; : # xReturn_7 = PHI _19 = xReturn_7; : : return _19; } xQueueGiveMutexRecursive (struct QueueDefinition * xMutex) { uint32_t ulNewBASEPRI; struct Queue_t * const pxMutex; BaseType_t xReturn; BaseType_t D.6824; struct tskTaskControlBlock * _1; struct tskTaskControlBlock * _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; BaseType_t _17; : pxMutex_10 = xMutex_9(D); if (pxMutex_10 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_18 : "i" 16 : "memory"); : : goto ; [INV] : _1 = pxMutex_10->u.xSemaphore.xMutexHolder; _2 = xTaskGetCurrentTaskHandle (); if (_1 == _2) goto ; [INV] else goto ; [INV] : _3 = pxMutex_10->u.xSemaphore.uxRecursiveCallCount; _4 = _3 + 4294967295; pxMutex_10->u.xSemaphore.uxRecursiveCallCount = _4; _5 = pxMutex_10->u.xSemaphore.uxRecursiveCallCount; if (_5 == 0) goto ; [INV] else goto ; [INV] : xQueueGenericSend (pxMutex_10, 0B, 0, 0); : xReturn_16 = 1; goto ; [INV] : xReturn_13 = 0; : # xReturn_6 = PHI _17 = xReturn_6; : : return _17; } xQueueGetMutexHolderFromISR (struct QueueDefinition * xSemaphore) { uint32_t ulNewBASEPRI; struct tskTaskControlBlock * pxReturn; struct tskTaskControlBlock * D.6814; int8_t * _1; struct tskTaskControlBlock * _7; : if (xSemaphore_3(D) == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory"); : : goto ; [INV] : _1 = MEM[(struct Queue_t *)xSemaphore_3(D)].pcHead; if (_1 == 0B) goto ; [INV] else goto ; [INV] : pxReturn_6 = MEM[(struct Queue_t *)xSemaphore_3(D)].u.xSemaphore.xMutexHolder; goto ; [INV] : pxReturn_5 = 0B; : # pxReturn_2 = PHI _7 = pxReturn_2; : : return _7; } xQueueGetMutexHolder (struct QueueDefinition * xSemaphore) { uint32_t ulNewBASEPRI; struct Queue_t * const pxSemaphore; struct tskTaskControlBlock * pxReturn; struct tskTaskControlBlock * D.6807; int8_t * _1; struct tskTaskControlBlock * _10; : pxSemaphore_4 = xSemaphore_3(D); if (xSemaphore_3(D) == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_11 : "i" 16 : "memory"); : : goto ; [INV] : vPortEnterCritical (); _1 = pxSemaphore_4->pcHead; if (_1 == 0B) goto ; [INV] else goto ; [INV] : pxReturn_8 = pxSemaphore_4->u.xSemaphore.xMutexHolder; goto ; [INV] : pxReturn_7 = 0B; : # pxReturn_2 = PHI vPortExitCritical (); _10 = pxReturn_2; : : return _10; } xQueueCreateMutex (const uint8_t ucQueueType) { const UBaseType_t uxMutexSize; const UBaseType_t uxMutexLength; struct QueueDefinition * xNewQueue; struct QueueDefinition * D.6800; struct QueueDefinition * _8; : uxMutexLength_1 = 1; uxMutexSize_2 = 0; xNewQueue_6 = xQueueGenericCreate (uxMutexLength_1, uxMutexSize_2, ucQueueType_4(D)); prvInitialiseMutex (xNewQueue_6); _8 = xNewQueue_6; : : return _8; } prvInitialiseMutex (struct Queue_t * pxNewQueue) { : if (pxNewQueue_2(D) != 0B) goto ; [INV] else goto ; [INV] : pxNewQueue_2(D)->u.xSemaphore.xMutexHolder = 0B; pxNewQueue_2(D)->pcHead = 0B; pxNewQueue_2(D)->u.xSemaphore.uxRecursiveCallCount = 0; xQueueGenericSend (pxNewQueue_2(D), 0B, 0, 0); : return; } prvInitialiseNewQueue (const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, uint8_t * pucQueueStorage, const uint8_t ucQueueType, struct Queue_t * pxNewQueue) { : if (uxItemSize_2(D) == 0) goto ; [INV] else goto ; [INV] : pxNewQueue_4(D)->pcHead = pxNewQueue_4(D); goto ; [INV] : pxNewQueue_4(D)->pcHead = pucQueueStorage_5(D); : pxNewQueue_4(D)->uxLength = uxQueueLength_8(D); pxNewQueue_4(D)->uxItemSize = uxItemSize_2(D); xQueueGenericReset (pxNewQueue_4(D), 1); pxNewQueue_4(D)->ucQueueType = ucQueueType_12(D); return; } xQueueGenericCreate (const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, const uint8_t ucQueueType) { uint32_t ulNewBASEPRI; uint8_t * pucQueueStorage; size_t xQueueSizeInBytes; struct Queue_t * pxNewQueue; struct QueueDefinition * D.6792; __complex__ long unsigned int _1; long unsigned int _2; long unsigned int _3; unsigned int _4; struct QueueDefinition * _19; : pxNewQueue_8 = 0B; if (uxQueueLength_9(D) != 0) goto ; [INV] else goto ; [INV] : _1 = .MUL_OVERFLOW (uxItemSize_10(D), uxQueueLength_9(D)); _2 = IMAGPART_EXPR <_1>; if (_2 == 0) goto ; [INV] else goto ; [INV] : _3 = uxQueueLength_9(D) * uxItemSize_10(D); if (_3 <= 4294967215) goto ; [INV] else goto ; [INV] : xQueueSizeInBytes_11 = uxQueueLength_9(D) * uxItemSize_10(D); _4 = xQueueSizeInBytes_11 + 80; pxNewQueue_14 = pvPortMalloc (_4); if (pxNewQueue_14 != 0B) goto ; [INV] else goto ; [INV] : pucQueueStorage_15 = pxNewQueue_14; pucQueueStorage_16 = pucQueueStorage_15 + 80; prvInitialiseNewQueue (uxQueueLength_9(D), uxItemSize_10(D), pucQueueStorage_16, ucQueueType_17(D), pxNewQueue_14); : goto ; [INV] : if (pxNewQueue_8 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_20 : "i" 16 : "memory"); : : goto ; [INV] : # pxNewQueue_5 = PHI _19 = pxNewQueue_5; : : return _19; } xQueueGenericReset (struct QueueDefinition * xQueue, BaseType_t xNewQueue) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; struct Queue_t * const pxQueue; BaseType_t xReturn; BaseType_t D.6780; 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; : xReturn_27 = 1; pxQueue_29 = xQueue_28(D); if (pxQueue_29 == 0B) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_48 : "i" 16 : "memory"); : : goto ; [INV] : 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] : vPortEnterCritical (); _6 = pxQueue_29->pcHead; _7 = pxQueue_29->uxLength; _8 = pxQueue_29->uxItemSize; _9 = _7 * _8; _10 = _6 + _9; pxQueue_29->u.xQueue.pcTail = _10; pxQueue_29->uxMessagesWaiting ={v} 0; _11 = pxQueue_29->pcHead; pxQueue_29->pcWriteTo = _11; _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; pxQueue_29->cRxLock ={v} -1; pxQueue_29->cTxLock ={v} -1; if (xNewQueue_38(D) == 0) goto ; [INV] else goto ; [INV] : _18 ={v} pxQueue_29->xTasksWaitingToSend.uxNumberOfItems; if (_18 != 0) goto ; [INV] else goto ; [INV] : _19 = &pxQueue_29->xTasksWaitingToSend; _20 = xTaskRemoveFromEventList (_19); if (_20 != 0) goto ; [INV] else goto ; [INV] : _21 = 3758157060B; *_21 ={v} 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); goto ; [INV] : _22 = &pxQueue_29->xTasksWaitingToSend; vListInitialise (_22); _23 = &pxQueue_29->xTasksWaitingToReceive; vListInitialise (_23); : vPortExitCritical (); goto ; [INV] : xReturn_46 = 0; : # xReturn_24 = PHI if (xReturn_24 == 0) goto ; [INV] else goto ; [INV] : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_49 : "i" 16 : "memory"); : : goto ; [INV] : _47 = xReturn_24; : : return _47; }