Marking local functions: vPortSetBASEPRI ulPortRaiseBASEPRI vPortRaiseBASEPRI 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) @06c3d620 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vQueueWaitForMessageRestricted/41 Calls: vTaskMissedYield/61 (vTaskMissedYield) @06c26e00 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: prvUnlockQueue/33 prvUnlockQueue/33 Calls: memcpy/60 (memcpy) @06c26b60 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: prvCopyDataFromQueue/32 prvCopyDataToQueue/31 prvCopyDataToQueue/31 Calls: xTaskPriorityDisinherit/59 (xTaskPriorityDisinherit) @06c26a80 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: prvCopyDataToQueue/31 Calls: vPortFree/58 (vPortFree) @06c26460 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vQueueDelete/26 Calls: vTaskPriorityDisinheritAfterTimeout/57 (vTaskPriorityDisinheritAfterTimeout) @06beec40 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueueSemaphoreTake/19 Calls: xTaskPriorityInherit/56 (xTaskPriorityInherit) @06beeb60 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueueSemaphoreTake/19 Calls: pvTaskIncrementMutexHeldCount/55 (pvTaskIncrementMutexHeldCount) @06beea80 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueueSemaphoreTake/19 Calls: vPortValidateInterruptPriority/54 (vPortValidateInterruptPriority) @06bee000 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueuePeekFromISR/22 xQueueReceiveFromISR/21 xQueueGiveFromISR/17 xQueueGenericSendFromISR/16 Calls: xTaskResumeAll/53 (xTaskResumeAll) @06b97e00 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueuePeek/20 xQueuePeek/20 xQueuePeek/20 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueReceive/18 xQueueReceive/18 xQueueReceive/18 xQueueGenericSend/15 xQueueGenericSend/15 xQueueGenericSend/15 Calls: vTaskPlaceOnEventList/52 (vTaskPlaceOnEventList) @06b97d20 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueuePeek/20 xQueueSemaphoreTake/19 xQueueReceive/18 xQueueGenericSend/15 Calls: xTaskCheckForTimeOut/51 (xTaskCheckForTimeOut) @06b97c40 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueuePeek/20 xQueueSemaphoreTake/19 xQueueReceive/18 xQueueGenericSend/15 Calls: vTaskSuspendAll/50 (vTaskSuspendAll) @06b97b60 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueuePeek/20 xQueueSemaphoreTake/19 xQueueReceive/18 xQueueGenericSend/15 Calls: vTaskInternalSetTimeOutState/49 (vTaskInternalSetTimeOutState) @06b97a80 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueuePeek/20 xQueueSemaphoreTake/19 xQueueReceive/18 xQueueGenericSend/15 Calls: xTaskGetSchedulerState/48 (xTaskGetSchedulerState) @06b979a0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueuePeek/20 xQueueSemaphoreTake/19 xQueueReceive/18 xQueueGenericSend/15 Calls: xTaskGetCurrentTaskHandle/47 (xTaskGetCurrentTaskHandle) @06b97460 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueueTakeMutexRecursive/13 xQueueGiveMutexRecursive/12 Calls: pvPortMalloc/46 (pvPortMalloc) @06b8b000 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueueGenericCreate/6 Calls: vPortExitCritical/45 (vPortExitCritical) @06b8bd20 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vQueueWaitForMessageRestricted/41 prvIsQueueFull/36 prvIsQueueEmpty/34 prvUnlockQueue/33 prvUnlockQueue/33 uxQueueSpacesAvailable/24 uxQueueMessagesWaiting/23 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 xQueueGenericSend/15 xQueueGenericSend/15 xQueueGenericSend/15 xQueueGenericSend/15 xQueueGetMutexHolder/10 xQueueGenericReset/5 Calls: vListInitialise/44 (vListInitialise) @06b8bc40 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: xQueueGenericReset/5 xQueueGenericReset/5 Calls: xTaskRemoveFromEventList/43 (xTaskRemoveFromEventList) @06b8bb60 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: prvUnlockQueue/33 prvUnlockQueue/33 xQueueReceiveFromISR/21 xQueuePeek/20 xQueueSemaphoreTake/19 xQueueReceive/18 xQueueGiveFromISR/17 xQueueGenericSendFromISR/16 xQueueGenericSend/15 xQueueGenericReset/5 Calls: vPortEnterCritical/42 (vPortEnterCritical) @06b8ba80 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: Called by: vQueueWaitForMessageRestricted/41 prvIsQueueFull/36 prvIsQueueEmpty/34 prvUnlockQueue/33 prvUnlockQueue/33 uxQueueSpacesAvailable/24 uxQueueMessagesWaiting/23 xQueuePeek/20 xQueuePeek/20 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueReceive/18 xQueueReceive/18 xQueueGenericSend/15 xQueueGenericSend/15 xQueueGetMutexHolder/10 xQueueGenericReset/5 Calls: vQueueWaitForMessageRestricted/41 (vQueueWaitForMessageRestricted) @06b8b540 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) @06b8b2a0 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: vPortRaiseBASEPRI/1 pcQueueGetName/39 (pcQueueGetName) @06b84e00 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: vPortRaiseBASEPRI/1 vQueueAddToRegistry/38 (vQueueAddToRegistry) @06b84460 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: vPortRaiseBASEPRI/1 xQueueIsQueueFullFromISR/37 (xQueueIsQueueFullFromISR) @06b84d20 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: vPortRaiseBASEPRI/1 prvIsQueueFull/36 (prvIsQueueFull) @06b849a0 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) @06b84700 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: vPortRaiseBASEPRI/1 prvIsQueueEmpty/34 (prvIsQueueEmpty) @06b84380 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) @06b840e0 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: Availability: available Function flags: body Called by: vQueueWaitForMessageRestricted/41 xQueuePeek/20 xQueuePeek/20 xQueuePeek/20 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueReceive/18 xQueueReceive/18 xQueueReceive/18 xQueueGenericSend/15 xQueueGenericSend/15 xQueueGenericSend/15 Calls: vPortExitCritical/45 vTaskMissedYield/61 xTaskRemoveFromEventList/43 vPortEnterCritical/42 vPortExitCritical/45 vTaskMissedYield/61 xTaskRemoveFromEventList/43 vPortEnterCritical/42 prvCopyDataFromQueue/32 (prvCopyDataFromQueue) @06b7d8c0 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: Availability: available Function flags: body Called by: xQueuePeekFromISR/22 xQueueReceiveFromISR/21 xQueuePeek/20 xQueueReceive/18 Calls: memcpy/60 prvCopyDataToQueue/31 (prvCopyDataToQueue) @06b7d380 Type: function definition analyzed Visibility: force_output no_reorder prevailing_def_ironly References: Referring: Availability: available Function flags: body Called by: xQueueGenericSendFromISR/16 xQueueGenericSend/15 Calls: memcpy/60 memcpy/60 xTaskPriorityDisinherit/59 prvGetDisinheritPriorityAfterTimeout/30 (prvGetDisinheritPriorityAfterTimeout) @06b7de00 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) @06b7da80 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) @06b7d7e0 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) @06b7d540 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) @06b7d2a0 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 vPortRaiseBASEPRI/1 uxQueueMessagesWaitingFromISR/25 (uxQueueMessagesWaitingFromISR) @06b72d20 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: vPortRaiseBASEPRI/1 uxQueueSpacesAvailable/24 (uxQueueSpacesAvailable) @06b720e0 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 vPortRaiseBASEPRI/1 uxQueueMessagesWaiting/23 (uxQueueMessagesWaiting) @06b72c40 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 vPortRaiseBASEPRI/1 xQueuePeekFromISR/22 (xQueuePeekFromISR) @06b728c0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: vPortSetBASEPRI/3 prvCopyDataFromQueue/32 ulPortRaiseBASEPRI/2 vPortValidateInterruptPriority/54 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 xQueueReceiveFromISR/21 (xQueueReceiveFromISR) @06b72460 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: vPortSetBASEPRI/3 vPortRaiseBASEPRI/1 xTaskRemoveFromEventList/43 prvCopyDataFromQueue/32 ulPortRaiseBASEPRI/2 vPortValidateInterruptPriority/54 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 xQueuePeek/20 (xQueuePeek) @06b72000 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 vPortRaiseBASEPRI/1 xTaskGetSchedulerState/48 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 xQueueSemaphoreTake/19 (xQueueSemaphoreTake) @06b64c40 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 vPortRaiseBASEPRI/1 vPortExitCritical/45 xTaskRemoveFromEventList/43 pvTaskIncrementMutexHeldCount/55 vPortEnterCritical/42 vPortRaiseBASEPRI/1 xTaskGetSchedulerState/48 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 xQueueReceive/18 (xQueueReceive) @06b64540 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 vPortRaiseBASEPRI/1 xTaskGetSchedulerState/48 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 xQueueGiveFromISR/17 (xQueueGiveFromISR) @06b0dd20 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: vPortSetBASEPRI/3 vPortRaiseBASEPRI/1 xTaskRemoveFromEventList/43 ulPortRaiseBASEPRI/2 vPortValidateInterruptPriority/54 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 xQueueGenericSendFromISR/16 (xQueueGenericSendFromISR) @06b0dc40 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: vPortSetBASEPRI/3 vPortRaiseBASEPRI/1 xTaskRemoveFromEventList/43 prvCopyDataToQueue/31 ulPortRaiseBASEPRI/2 vPortValidateInterruptPriority/54 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 xQueueGenericSend/15 (xQueueGenericSend) @06b0d7e0 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 vPortRaiseBASEPRI/1 xTaskGetSchedulerState/48 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 vPortRaiseBASEPRI/1 xQueueCreateCountingSemaphore/14 (xQueueCreateCountingSemaphore) @06b0d0e0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: vPortRaiseBASEPRI/1 xQueueGenericCreate/6 xQueueTakeMutexRecursive/13 (xQueueTakeMutexRecursive) @06b249a0 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 vPortRaiseBASEPRI/1 xQueueGiveMutexRecursive/12 (xQueueGiveMutexRecursive) @06b240e0 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 vPortRaiseBASEPRI/1 xQueueGetMutexHolderFromISR/11 (xQueueGetMutexHolderFromISR) @06b24c40 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: Calls: vPortRaiseBASEPRI/1 xQueueGetMutexHolder/10 (xQueueGetMutexHolder) @06b248c0 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 vPortRaiseBASEPRI/1 xQueueCreateMutex/9 (xQueueCreateMutex) @06b24540 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) @06b242a0 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) @06b24000 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) @06b1c7e0 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: xQueueCreateCountingSemaphore/14 xQueueCreateMutex/9 Calls: vPortRaiseBASEPRI/1 prvInitialiseNewQueue/7 pvPortMalloc/46 xQueueGenericReset/5 (xQueueGenericReset) @06b1cc40 Type: function definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: Availability: available Function flags: body Called by: prvInitialiseNewQueue/7 Calls: vPortRaiseBASEPRI/1 vPortExitCritical/45 vListInitialise/44 vListInitialise/44 xTaskRemoveFromEventList/43 vPortEnterCritical/42 vPortRaiseBASEPRI/1 xQueueRegistry/4 (xQueueRegistry) @06b18630 Type: variable definition analyzed Visibility: force_output externally_visible no_reorder public References: Referring: vQueueAddToRegistry/38 (read)vQueueAddToRegistry/38 (addr)vQueueAddToRegistry/38 (read)vQueueAddToRegistry/38 (addr)pcQueueGetName/39 (read)pcQueueGetName/39 (read)vQueueUnregisterQueue/40 (read)vQueueUnregisterQueue/40 (write)vQueueUnregisterQueue/40 (write) Availability: available Varpool flags: vPortSetBASEPRI/3 (vPortSetBASEPRI) @06a9bb60 Type: function definition analyzed Visibility: no_reorder prevailing_def_ironly References: Referring: Availability: local Function flags: body local Called by: xQueuePeekFromISR/22 xQueueReceiveFromISR/21 xQueueGiveFromISR/17 xQueueGenericSendFromISR/16 Calls: ulPortRaiseBASEPRI/2 (ulPortRaiseBASEPRI) @06a9b8c0 Type: function definition analyzed Visibility: no_reorder prevailing_def_ironly References: Referring: Availability: local Function flags: body local Called by: xQueuePeekFromISR/22 xQueueReceiveFromISR/21 xQueueGiveFromISR/17 xQueueGenericSendFromISR/16 Calls: vPortRaiseBASEPRI/1 (vPortRaiseBASEPRI) @06a9b540 Type: function definition analyzed Visibility: no_reorder prevailing_def_ironly References: Referring: Availability: local Function flags: body local Called by: vQueueUnregisterQueue/40 pcQueueGetName/39 vQueueAddToRegistry/38 xQueueIsQueueFullFromISR/37 xQueueIsQueueEmptyFromISR/35 vQueueDelete/26 uxQueueMessagesWaitingFromISR/25 uxQueueSpacesAvailable/24 uxQueueMessagesWaiting/23 xQueuePeekFromISR/22 xQueuePeekFromISR/22 xQueuePeekFromISR/22 xQueueReceiveFromISR/21 xQueueReceiveFromISR/21 xQueueReceiveFromISR/21 xQueuePeek/20 xQueuePeek/20 xQueuePeek/20 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueSemaphoreTake/19 xQueueReceive/18 xQueueReceive/18 xQueueReceive/18 xQueueGiveFromISR/17 xQueueGiveFromISR/17 xQueueGiveFromISR/17 xQueueGiveFromISR/17 xQueueGenericSendFromISR/16 xQueueGenericSendFromISR/16 xQueueGenericSendFromISR/16 xQueueGenericSendFromISR/16 xQueueGenericSend/15 xQueueGenericSend/15 xQueueGenericSend/15 xQueueGenericSend/15 xQueueCreateCountingSemaphore/14 xQueueTakeMutexRecursive/13 xQueueGiveMutexRecursive/12 xQueueGetMutexHolderFromISR/11 xQueueGetMutexHolder/10 xQueueGenericCreate/6 xQueueGenericReset/5 xQueueGenericReset/5 Calls: vQueueWaitForMessageRestricted (struct QueueDefinition * xQueue, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely) { struct Queue_t * const pxQueue; : pxQueue = xQueue; vPortEnterCritical (); _1 = pxQueue->cRxLock; if (_1 == -1) goto ; [INV] else goto ; [INV] : pxQueue->cRxLock = 0; : _2 = pxQueue->cTxLock; if (_2 == -1) goto ; [INV] else goto ; [INV] : pxQueue->cTxLock = 0; : vPortExitCritical (); _3 = pxQueue->uxMessagesWaiting; if (_3 == 0) goto ; [INV] else goto ; [INV] : _4 = &pxQueue->xTasksWaitingToReceive; vTaskPlaceOnEventListRestricted (_4, xTicksToWait, xWaitIndefinitely); : prvUnlockQueue (pxQueue); return; } vQueueUnregisterQueue (struct QueueDefinition * xQueue) { UBaseType_t ux; : if (xQueue == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : ux = 0; goto ; [INV] : _1 = xQueueRegistry[ux].xHandle; if (xQueue == _1) goto ; [INV] else goto ; [INV] : xQueueRegistry[ux].pcQueueName = 0B; xQueueRegistry[ux].xHandle = 0B; goto ; [INV] : ux = ux + 1; : if (ux <= 1) goto ; [INV] else goto ; [INV] : return; } pcQueueGetName (struct QueueDefinition * xQueue) { const char * pcReturn; UBaseType_t ux; const char * D.7263; : pcReturn = 0B; if (xQueue == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : ux = 0; goto ; [INV] : _1 = xQueueRegistry[ux].xHandle; if (xQueue == _1) goto ; [INV] else goto ; [INV] : pcReturn = xQueueRegistry[ux].pcQueueName; goto ; [INV] : ux = ux + 1; : if (ux <= 1) goto ; [INV] else goto ; [INV] : D.7263 = pcReturn; : : return D.7263; } vQueueAddToRegistry (struct QueueDefinition * xQueue, const char * pcQueueName) { struct QueueRegistryItem_t * pxEntryToWrite; UBaseType_t ux; : if (xQueue == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : pxEntryToWrite = 0B; if (pcQueueName != 0B) goto ; [INV] else goto ; [INV] : ux = 0; goto ; [INV] : _1 = xQueueRegistry[ux].xHandle; if (xQueue == _1) goto ; [INV] else goto ; [INV] : pxEntryToWrite = &xQueueRegistry[ux]; goto ; [INV] : if (pxEntryToWrite == 0B) goto ; [INV] else goto ; [INV] : _2 = xQueueRegistry[ux].pcQueueName; if (_2 == 0B) goto ; [INV] else goto ; [INV] : pxEntryToWrite = &xQueueRegistry[ux]; : ux = ux + 1; : if (ux <= 1) goto ; [INV] else goto ; [INV] : if (pxEntryToWrite != 0B) goto ; [INV] else goto ; [INV] : pxEntryToWrite->pcQueueName = pcQueueName; pxEntryToWrite->xHandle = xQueue; : return; } xQueueIsQueueFullFromISR (struct QueueDefinition * const xQueue) { struct Queue_t * const pxQueue; BaseType_t xReturn; BaseType_t D.7244; : pxQueue = xQueue; if (pxQueue == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _1 = pxQueue->uxMessagesWaiting; _2 = pxQueue->uxLength; if (_1 == _2) goto ; [INV] else goto ; [INV] : xReturn = 1; goto ; [INV] : xReturn = 0; : D.7244 = xReturn; : : return D.7244; } prvIsQueueFull (const struct Queue_t * pxQueue) { BaseType_t xReturn; BaseType_t D.7237; : vPortEnterCritical (); _1 = pxQueue->uxMessagesWaiting; _2 = pxQueue->uxLength; if (_1 == _2) goto ; [INV] else goto ; [INV] : xReturn = 1; goto ; [INV] : xReturn = 0; : vPortExitCritical (); D.7237 = xReturn; : : return D.7237; } xQueueIsQueueEmptyFromISR (struct QueueDefinition * const xQueue) { struct Queue_t * const pxQueue; BaseType_t xReturn; BaseType_t D.7232; : pxQueue = xQueue; if (pxQueue == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _1 = pxQueue->uxMessagesWaiting; if (_1 == 0) goto ; [INV] else goto ; [INV] : xReturn = 1; goto ; [INV] : xReturn = 0; : D.7232 = xReturn; : : return D.7232; } prvIsQueueEmpty (const struct Queue_t * pxQueue) { BaseType_t xReturn; BaseType_t D.7225; : vPortEnterCritical (); _1 = pxQueue->uxMessagesWaiting; if (_1 == 0) goto ; [INV] else goto ; [INV] : xReturn = 1; goto ; [INV] : xReturn = 0; : vPortExitCritical (); D.7225 = xReturn; : : return D.7225; } prvUnlockQueue (struct Queue_t * const pxQueue) { int8_t cRxLock; int8_t cTxLock; : vPortEnterCritical (); cTxLock = pxQueue->cTxLock; goto ; [INV] : _1 = pxQueue->xTasksWaitingToReceive.uxNumberOfItems; if (_1 != 0) goto ; [INV] else goto ; [INV] : _2 = &pxQueue->xTasksWaitingToReceive; _3 = xTaskRemoveFromEventList (_2); if (_3 != 0) goto ; [INV] else goto ; [INV] : vTaskMissedYield (); goto ; [INV] : goto ; [INV] : cTxLock.28_4 = (unsigned char) cTxLock; _5 = cTxLock.28_4 + 255; cTxLock = (int8_t) _5; : if (cTxLock > 0) goto ; [INV] else goto ; [INV] : pxQueue->cTxLock = -1; vPortExitCritical (); vPortEnterCritical (); cRxLock = pxQueue->cRxLock; goto ; [INV] : _6 = pxQueue->xTasksWaitingToSend.uxNumberOfItems; if (_6 != 0) goto ; [INV] else goto ; [INV] : _7 = &pxQueue->xTasksWaitingToSend; _8 = xTaskRemoveFromEventList (_7); if (_8 != 0) goto ; [INV] else goto ; [INV] : vTaskMissedYield (); : cRxLock.29_9 = (unsigned char) cRxLock; _10 = cRxLock.29_9 + 255; cRxLock = (int8_t) _10; goto ; [INV] : goto ; [INV] : if (cRxLock > 0) goto ; [INV] else goto ; [INV] : pxQueue->cRxLock = -1; vPortExitCritical (); return; } prvCopyDataFromQueue (struct Queue_t * const pxQueue, void * const pvBuffer) { : _1 = pxQueue->uxItemSize; if (_1 != 0) goto ; [INV] else goto ; [INV] : _2 = pxQueue->u.xQueue.pcReadFrom; _3 = pxQueue->uxItemSize; _4 = _2 + _3; pxQueue->u.xQueue.pcReadFrom = _4; _5 = pxQueue->u.xQueue.pcReadFrom; _6 = pxQueue->u.xQueue.pcTail; if (_5 >= _6) goto ; [INV] else goto ; [INV] : _7 = pxQueue->pcHead; pxQueue->u.xQueue.pcReadFrom = _7; : _8 = pxQueue->u.xQueue.pcReadFrom; _9 = pxQueue->uxItemSize; memcpy (pvBuffer, _8, _9); : return; } prvCopyDataToQueue (struct Queue_t * const pxQueue, const void * pvItemToQueue, const BaseType_t xPosition) { UBaseType_t uxMessagesWaiting; BaseType_t xReturn; BaseType_t D.7203; : xReturn = 0; uxMessagesWaiting = pxQueue->uxMessagesWaiting; _1 = pxQueue->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : _2 = pxQueue->pcHead; if (_2 == 0B) goto ; [INV] else goto ; [INV] : _3 = pxQueue->u.xSemaphore.xMutexHolder; xReturn = xTaskPriorityDisinherit (_3); pxQueue->u.xSemaphore.xMutexHolder = 0B; goto ; [INV] : if (xPosition == 0) goto ; [INV] else goto ; [INV] : _4 = pxQueue->pcWriteTo; _5 = pxQueue->uxItemSize; memcpy (_4, pvItemToQueue, _5); _6 = pxQueue->pcWriteTo; _7 = pxQueue->uxItemSize; _8 = _6 + _7; pxQueue->pcWriteTo = _8; _9 = pxQueue->pcWriteTo; _10 = pxQueue->u.xQueue.pcTail; if (_9 >= _10) goto ; [INV] else goto ; [INV] : _11 = pxQueue->pcHead; pxQueue->pcWriteTo = _11; goto ; [INV] : _12 = pxQueue->u.xQueue.pcReadFrom; _13 = pxQueue->uxItemSize; memcpy (_12, pvItemToQueue, _13); _14 = pxQueue->u.xQueue.pcReadFrom; _15 = pxQueue->uxItemSize; _16 = -_15; _17 = _14 + _16; pxQueue->u.xQueue.pcReadFrom = _17; _18 = pxQueue->u.xQueue.pcReadFrom; _19 = pxQueue->pcHead; if (_18 < _19) goto ; [INV] else goto ; [INV] : _20 = pxQueue->u.xQueue.pcTail; _21 = pxQueue->uxItemSize; _22 = -_21; _23 = _20 + _22; pxQueue->u.xQueue.pcReadFrom = _23; : if (xPosition == 2) goto ; [INV] else goto ; [INV] : if (uxMessagesWaiting != 0) goto ; [INV] else goto ; [INV] : uxMessagesWaiting = uxMessagesWaiting + 4294967295; : _24 = uxMessagesWaiting + 1; pxQueue->uxMessagesWaiting = _24; D.7203 = xReturn; : : return D.7203; } prvGetDisinheritPriorityAfterTimeout (const struct Queue_t * const pxQueue) { UBaseType_t uxHighestPriorityOfWaitingTasks; UBaseType_t D.7180; : _1 = pxQueue->xTasksWaitingToReceive.uxNumberOfItems; if (_1 != 0) goto ; [INV] else goto ; [INV] : _2 = pxQueue->xTasksWaitingToReceive.xListEnd.pxNext; _3 = _2->xItemValue; uxHighestPriorityOfWaitingTasks = 5 - _3; goto ; [INV] : uxHighestPriorityOfWaitingTasks = 0; : D.7180 = uxHighestPriorityOfWaitingTasks; : : return D.7180; } ucQueueGetQueueType (struct QueueDefinition * xQueue) { uint8_t D.7175; : D.7175 = MEM[(struct Queue_t *)xQueue].ucQueueType; : : return D.7175; } vQueueSetQueueNumber (struct QueueDefinition * xQueue, UBaseType_t uxQueueNumber) { : MEM[(struct Queue_t *)xQueue].uxQueueNumber = uxQueueNumber; return; } uxQueueGetQueueNumber (struct QueueDefinition * xQueue) { UBaseType_t D.7173; : D.7173 = MEM[(struct Queue_t *)xQueue].uxQueueNumber; : : return D.7173; } vQueueDelete (struct QueueDefinition * xQueue) { struct Queue_t * const pxQueue; : pxQueue = xQueue; if (pxQueue == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vQueueUnregisterQueue (pxQueue); vPortFree (pxQueue); return; } uxQueueMessagesWaitingFromISR (struct QueueDefinition * const xQueue) { struct Queue_t * const pxQueue; UBaseType_t uxReturn; UBaseType_t D.7169; : pxQueue = xQueue; if (pxQueue == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : uxReturn = pxQueue->uxMessagesWaiting; D.7169 = uxReturn; : : return D.7169; } uxQueueSpacesAvailable (struct QueueDefinition * const xQueue) { struct Queue_t * const pxQueue; UBaseType_t uxReturn; UBaseType_t D.7165; : pxQueue = xQueue; if (pxQueue == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vPortEnterCritical (); _1 = pxQueue->uxLength; _2 = pxQueue->uxMessagesWaiting; uxReturn = _1 - _2; vPortExitCritical (); D.7165 = uxReturn; : : return D.7165; } uxQueueMessagesWaiting (struct QueueDefinition * const xQueue) { UBaseType_t uxReturn; UBaseType_t D.7161; : if (xQueue == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vPortEnterCritical (); uxReturn = MEM[(struct Queue_t *)xQueue].uxMessagesWaiting; vPortExitCritical (); D.7161 = uxReturn; : : return D.7161; } xQueuePeekFromISR (struct QueueDefinition * xQueue, void * const pvBuffer) { struct Queue_t * const pxQueue; int8_t * pcOriginalReadPosition; UBaseType_t uxSavedInterruptStatus; BaseType_t xReturn; BaseType_t D.7157; int iftmp.27; : pxQueue = xQueue; if (pxQueue == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (pvBuffer != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.27 = 1; goto ; [INV] : iftmp.27 = 0; : if (iftmp.27 == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _2 = pxQueue->uxItemSize; if (_2 == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vPortValidateInterruptPriority (); uxSavedInterruptStatus = ulPortRaiseBASEPRI (); _3 = pxQueue->uxMessagesWaiting; if (_3 != 0) goto ; [INV] else goto ; [INV] : pcOriginalReadPosition = pxQueue->u.xQueue.pcReadFrom; prvCopyDataFromQueue (pxQueue, pvBuffer); pxQueue->u.xQueue.pcReadFrom = pcOriginalReadPosition; xReturn = 1; goto ; [INV] : xReturn = 0; : vPortSetBASEPRI (uxSavedInterruptStatus); D.7157 = xReturn; : : return D.7157; } xQueueReceiveFromISR (struct QueueDefinition * xQueue, void * const pvBuffer, BaseType_t * const pxHigherPriorityTaskWoken) { const int8_t cRxLock; const UBaseType_t uxMessagesWaiting; struct Queue_t * const pxQueue; UBaseType_t uxSavedInterruptStatus; BaseType_t xReturn; BaseType_t D.7141; int iftmp.25; : pxQueue = xQueue; if (pxQueue == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (pvBuffer != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.25 = 1; goto ; [INV] : iftmp.25 = 0; : if (iftmp.25 == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vPortValidateInterruptPriority (); uxSavedInterruptStatus = ulPortRaiseBASEPRI (); uxMessagesWaiting = pxQueue->uxMessagesWaiting; if (uxMessagesWaiting != 0) goto ; [INV] else goto ; [INV] : cRxLock = pxQueue->cRxLock; prvCopyDataFromQueue (pxQueue, pvBuffer); _2 = uxMessagesWaiting + 4294967295; pxQueue->uxMessagesWaiting = _2; if (cRxLock == -1) goto ; [INV] else goto ; [INV] : _3 = pxQueue->xTasksWaitingToSend.uxNumberOfItems; if (_3 != 0) goto ; [INV] else goto ; [INV] : _4 = &pxQueue->xTasksWaitingToSend; _5 = xTaskRemoveFromEventList (_4); if (_5 != 0) goto ; [INV] else goto ; [INV] : if (pxHigherPriorityTaskWoken != 0B) goto ; [INV] else goto ; [INV] : *pxHigherPriorityTaskWoken = 1; goto ; [INV] : if (cRxLock == 127) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : cRxLock.26_6 = (unsigned char) cRxLock; _7 = cRxLock.26_6 + 1; _8 = (signed char) _7; pxQueue->cRxLock = _8; : xReturn = 1; goto ; [INV] : xReturn = 0; : vPortSetBASEPRI (uxSavedInterruptStatus); D.7141 = xReturn; : : return D.7141; } xQueuePeek (struct QueueDefinition * xQueue, void * const pvBuffer, TickType_t xTicksToWait) { const UBaseType_t uxMessagesWaiting; struct Queue_t * const pxQueue; int8_t * pcOriginalReadPosition; struct TimeOut_t xTimeOut; BaseType_t xEntryTimeSet; BaseType_t D.7092; int iftmp.21; int iftmp.20; : xEntryTimeSet = 0; pxQueue = xQueue; if (pxQueue == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (pvBuffer != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.20 = 1; goto ; [INV] : iftmp.20 = 0; : if (iftmp.20 == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : 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 = 1; goto ; [INV] : iftmp.21 = 0; : if (iftmp.21 == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vPortEnterCritical (); uxMessagesWaiting = pxQueue->uxMessagesWaiting; if (uxMessagesWaiting != 0) goto ; [INV] else goto ; [INV] : pcOriginalReadPosition = pxQueue->u.xQueue.pcReadFrom; prvCopyDataFromQueue (pxQueue, pvBuffer); pxQueue->u.xQueue.pcReadFrom = pcOriginalReadPosition; _4 = pxQueue->xTasksWaitingToReceive.uxNumberOfItems; if (_4 != 0) goto ; [INV] else goto ; [INV] : _5 = &pxQueue->xTasksWaitingToReceive; _6 = xTaskRemoveFromEventList (_5); if (_6 != 0) goto ; [INV] else goto ; [INV] : _7 = 3758157060B; *_7 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : vPortExitCritical (); D.7092 = 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 (); D.7092 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : if (xEntryTimeSet == 0) goto ; [INV] else goto ; [INV] : vTaskInternalSetTimeOutState (&xTimeOut); xEntryTimeSet = 1; : vPortExitCritical (); vTaskSuspendAll (); vPortEnterCritical (); _9 = pxQueue->cRxLock; if (_9 == -1) goto ; [INV] else goto ; [INV] : pxQueue->cRxLock = 0; : _10 = pxQueue->cTxLock; if (_10 == -1) goto ; [INV] else goto ; [INV] : pxQueue->cTxLock = 0; : vPortExitCritical (); _11 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait); if (_11 == 0) goto ; [INV] else goto ; [INV] : _12 = prvIsQueueEmpty (pxQueue); if (_12 != 0) goto ; [INV] else goto ; [INV] : _13 = &pxQueue->xTasksWaitingToReceive; xTicksToWait.24_14 = xTicksToWait; vTaskPlaceOnEventList (_13, xTicksToWait.24_14); prvUnlockQueue (pxQueue); _15 = xTaskResumeAll (); if (_15 == 0) goto ; [INV] else goto ; [INV] : _16 = 3758157060B; *_16 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); goto ; [INV] : prvUnlockQueue (pxQueue); xTaskResumeAll (); goto ; [INV] : prvUnlockQueue (pxQueue); xTaskResumeAll (); _17 = prvIsQueueEmpty (pxQueue); if (_17 != 0) goto ; [INV] else goto ; [INV] : D.7092 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : goto ; [INV] : xTimeOut = {CLOBBER}; : : return D.7092; } xQueueSemaphoreTake (struct QueueDefinition * xQueue, TickType_t xTicksToWait) { UBaseType_t uxHighestWaitingPriority; const UBaseType_t uxSemaphoreCount; BaseType_t xInheritanceOccurred; struct Queue_t * const pxQueue; struct TimeOut_t xTimeOut; BaseType_t xEntryTimeSet; BaseType_t D.7038; int iftmp.16; : xEntryTimeSet = 0; pxQueue = xQueue; xInheritanceOccurred = 0; if (pxQueue == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _1 = pxQueue->uxItemSize; if (_1 != 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : 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 = 1; goto ; [INV] : iftmp.16 = 0; : if (iftmp.16 == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vPortEnterCritical (); uxSemaphoreCount = pxQueue->uxMessagesWaiting; if (uxSemaphoreCount != 0) goto ; [INV] else goto ; [INV] : _4 = uxSemaphoreCount + 4294967295; pxQueue->uxMessagesWaiting = _4; _5 = pxQueue->pcHead; if (_5 == 0B) goto ; [INV] else goto ; [INV] : _6 = pvTaskIncrementMutexHeldCount (); pxQueue->u.xSemaphore.xMutexHolder = _6; : _7 = pxQueue->xTasksWaitingToSend.uxNumberOfItems; if (_7 != 0) goto ; [INV] else goto ; [INV] : _8 = &pxQueue->xTasksWaitingToSend; _9 = xTaskRemoveFromEventList (_8); if (_9 != 0) goto ; [INV] else goto ; [INV] : _10 = 3758157060B; *_10 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : vPortExitCritical (); D.7038 = 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 != 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vPortExitCritical (); D.7038 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : if (xEntryTimeSet == 0) goto ; [INV] else goto ; [INV] : vTaskInternalSetTimeOutState (&xTimeOut); xEntryTimeSet = 1; : vPortExitCritical (); vTaskSuspendAll (); vPortEnterCritical (); _12 = pxQueue->cRxLock; if (_12 == -1) goto ; [INV] else goto ; [INV] : pxQueue->cRxLock = 0; : _13 = pxQueue->cTxLock; if (_13 == -1) goto ; [INV] else goto ; [INV] : pxQueue->cTxLock = 0; : vPortExitCritical (); _14 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait); if (_14 == 0) goto ; [INV] else goto ; [INV] : _15 = prvIsQueueEmpty (pxQueue); if (_15 != 0) goto ; [INV] else goto ; [INV] : _16 = pxQueue->pcHead; if (_16 == 0B) goto ; [INV] else goto ; [INV] : vPortEnterCritical (); _17 = pxQueue->u.xSemaphore.xMutexHolder; xInheritanceOccurred = xTaskPriorityInherit (_17); vPortExitCritical (); : _18 = &pxQueue->xTasksWaitingToReceive; xTicksToWait.19_19 = xTicksToWait; vTaskPlaceOnEventList (_18, xTicksToWait.19_19); prvUnlockQueue (pxQueue); _20 = xTaskResumeAll (); if (_20 == 0) goto ; [INV] else goto ; [INV] : _21 = 3758157060B; *_21 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); goto ; [INV] : prvUnlockQueue (pxQueue); xTaskResumeAll (); goto ; [INV] : prvUnlockQueue (pxQueue); xTaskResumeAll (); _22 = prvIsQueueEmpty (pxQueue); if (_22 != 0) goto ; [INV] else goto ; [INV] : if (xInheritanceOccurred != 0) goto ; [INV] else goto ; [INV] : vPortEnterCritical (); uxHighestWaitingPriority = prvGetDisinheritPriorityAfterTimeout (pxQueue); _23 = pxQueue->u.xSemaphore.xMutexHolder; vTaskPriorityDisinheritAfterTimeout (_23, uxHighestWaitingPriority); vPortExitCritical (); : D.7038 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : goto ; [INV] : xTimeOut = {CLOBBER}; : : return D.7038; } xQueueReceive (struct QueueDefinition * xQueue, void * const pvBuffer, TickType_t xTicksToWait) { const UBaseType_t uxMessagesWaiting; struct Queue_t * const pxQueue; struct TimeOut_t xTimeOut; BaseType_t xEntryTimeSet; BaseType_t D.6993; int iftmp.12; int iftmp.11; : xEntryTimeSet = 0; pxQueue = xQueue; if (pxQueue == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (pvBuffer != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.11 = 1; goto ; [INV] : iftmp.11 = 0; : if (iftmp.11 == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : 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 = 1; goto ; [INV] : iftmp.12 = 0; : if (iftmp.12 == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vPortEnterCritical (); uxMessagesWaiting = pxQueue->uxMessagesWaiting; if (uxMessagesWaiting != 0) goto ; [INV] else goto ; [INV] : prvCopyDataFromQueue (pxQueue, pvBuffer); _4 = uxMessagesWaiting + 4294967295; pxQueue->uxMessagesWaiting = _4; _5 = pxQueue->xTasksWaitingToSend.uxNumberOfItems; if (_5 != 0) goto ; [INV] else goto ; [INV] : _6 = &pxQueue->xTasksWaitingToSend; _7 = xTaskRemoveFromEventList (_6); if (_7 != 0) goto ; [INV] else goto ; [INV] : _8 = 3758157060B; *_8 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : vPortExitCritical (); D.6993 = 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 (); D.6993 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : if (xEntryTimeSet == 0) goto ; [INV] else goto ; [INV] : vTaskInternalSetTimeOutState (&xTimeOut); xEntryTimeSet = 1; : vPortExitCritical (); vTaskSuspendAll (); vPortEnterCritical (); _10 = pxQueue->cRxLock; if (_10 == -1) goto ; [INV] else goto ; [INV] : pxQueue->cRxLock = 0; : _11 = pxQueue->cTxLock; if (_11 == -1) goto ; [INV] else goto ; [INV] : pxQueue->cTxLock = 0; : vPortExitCritical (); _12 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait); if (_12 == 0) goto ; [INV] else goto ; [INV] : _13 = prvIsQueueEmpty (pxQueue); if (_13 != 0) goto ; [INV] else goto ; [INV] : _14 = &pxQueue->xTasksWaitingToReceive; xTicksToWait.15_15 = xTicksToWait; vTaskPlaceOnEventList (_14, xTicksToWait.15_15); prvUnlockQueue (pxQueue); _16 = xTaskResumeAll (); if (_16 == 0) goto ; [INV] else goto ; [INV] : _17 = 3758157060B; *_17 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); goto ; [INV] : prvUnlockQueue (pxQueue); xTaskResumeAll (); goto ; [INV] : prvUnlockQueue (pxQueue); xTaskResumeAll (); _18 = prvIsQueueEmpty (pxQueue); if (_18 != 0) goto ; [INV] else goto ; [INV] : D.6993 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : goto ; [INV] : xTimeOut = {CLOBBER}; : : return D.6993; } xQueueGiveFromISR (struct QueueDefinition * xQueue, BaseType_t * const pxHigherPriorityTaskWoken) { const int8_t cTxLock; const UBaseType_t uxMessagesWaiting; struct Queue_t * const pxQueue; UBaseType_t uxSavedInterruptStatus; BaseType_t xReturn; BaseType_t D.6967; int iftmp.9; : pxQueue = xQueue; if (pxQueue == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _1 = pxQueue->uxItemSize; if (_1 != 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _2 = pxQueue->pcHead; if (_2 != 0B) goto ; [INV] else goto ; [INV] : _3 = pxQueue->u.xSemaphore.xMutexHolder; if (_3 == 0B) goto ; [INV] else goto ; [INV] : iftmp.9 = 1; goto ; [INV] : iftmp.9 = 0; : if (iftmp.9 == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vPortValidateInterruptPriority (); uxSavedInterruptStatus = ulPortRaiseBASEPRI (); uxMessagesWaiting = pxQueue->uxMessagesWaiting; _4 = pxQueue->uxLength; if (uxMessagesWaiting < _4) goto ; [INV] else goto ; [INV] : cTxLock = pxQueue->cTxLock; _5 = uxMessagesWaiting + 1; pxQueue->uxMessagesWaiting = _5; if (cTxLock == -1) goto ; [INV] else goto ; [INV] : _6 = pxQueue->xTasksWaitingToReceive.uxNumberOfItems; if (_6 != 0) goto ; [INV] else goto ; [INV] : _7 = &pxQueue->xTasksWaitingToReceive; _8 = xTaskRemoveFromEventList (_7); if (_8 != 0) goto ; [INV] else goto ; [INV] : if (pxHigherPriorityTaskWoken != 0B) goto ; [INV] else goto ; [INV] : *pxHigherPriorityTaskWoken = 1; goto ; [INV] : if (cTxLock == 127) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : cTxLock.10_9 = (unsigned char) cTxLock; _10 = cTxLock.10_9 + 1; _11 = (signed char) _10; pxQueue->cTxLock = _11; : xReturn = 1; goto ; [INV] : xReturn = 0; : vPortSetBASEPRI (uxSavedInterruptStatus); D.6967 = xReturn; : : return D.6967; } xQueueGenericSendFromISR (struct QueueDefinition * xQueue, const void * const pvItemToQueue, BaseType_t * const pxHigherPriorityTaskWoken, const BaseType_t xCopyPosition) { const UBaseType_t uxPreviousMessagesWaiting; const int8_t cTxLock; struct Queue_t * const pxQueue; UBaseType_t uxSavedInterruptStatus; BaseType_t xReturn; BaseType_t D.6935; int iftmp.7; int iftmp.6; : pxQueue = xQueue; if (pxQueue == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (pvItemToQueue != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.6 = 1; goto ; [INV] : iftmp.6 = 0; : if (iftmp.6 == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (xCopyPosition != 2) goto ; [INV] else goto ; [INV] : _2 = pxQueue->uxLength; if (_2 == 1) goto ; [INV] else goto ; [INV] : iftmp.7 = 1; goto ; [INV] : iftmp.7 = 0; : if (iftmp.7 == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vPortValidateInterruptPriority (); uxSavedInterruptStatus = ulPortRaiseBASEPRI (); _3 = pxQueue->uxMessagesWaiting; _4 = pxQueue->uxLength; if (_3 < _4) goto ; [INV] else goto ; [INV] : if (xCopyPosition == 2) goto ; [INV] else goto ; [INV] : cTxLock = pxQueue->cTxLock; uxPreviousMessagesWaiting = pxQueue->uxMessagesWaiting; prvCopyDataToQueue (pxQueue, pvItemToQueue, xCopyPosition); if (cTxLock == -1) goto ; [INV] else goto ; [INV] : _5 = pxQueue->xTasksWaitingToReceive.uxNumberOfItems; if (_5 != 0) goto ; [INV] else goto ; [INV] : _6 = &pxQueue->xTasksWaitingToReceive; _7 = xTaskRemoveFromEventList (_6); if (_7 != 0) goto ; [INV] else goto ; [INV] : if (pxHigherPriorityTaskWoken != 0B) goto ; [INV] else goto ; [INV] : *pxHigherPriorityTaskWoken = 1; goto ; [INV] : if (cTxLock == 127) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : cTxLock.8_8 = (unsigned char) cTxLock; _9 = cTxLock.8_8 + 1; _10 = (signed char) _9; pxQueue->cTxLock = _10; : xReturn = 1; goto ; [INV] : xReturn = 0; : vPortSetBASEPRI (uxSavedInterruptStatus); D.6935 = xReturn; : : return D.6935; } xQueueGenericSend (struct QueueDefinition * xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition) { struct Queue_t * const pxQueue; struct TimeOut_t xTimeOut; BaseType_t xYieldRequired; BaseType_t xEntryTimeSet; BaseType_t D.6881; int iftmp.2; int iftmp.1; int iftmp.0; : xEntryTimeSet = 0; pxQueue = xQueue; if (pxQueue == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (pvItemToQueue != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue->uxItemSize; if (_1 == 0) goto ; [INV] else goto ; [INV] : iftmp.0 = 1; goto ; [INV] : iftmp.0 = 0; : if (iftmp.0 == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (xCopyPosition != 2) goto ; [INV] else goto ; [INV] : _2 = pxQueue->uxLength; if (_2 == 1) goto ; [INV] else goto ; [INV] : iftmp.1 = 1; goto ; [INV] : iftmp.1 = 0; : if (iftmp.1 == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : 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 = 1; goto ; [INV] : iftmp.2 = 0; : if (iftmp.2 == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vPortEnterCritical (); _5 = pxQueue->uxMessagesWaiting; _6 = pxQueue->uxLength; if (_5 < _6) goto ; [INV] else goto ; [INV] : if (xCopyPosition == 2) goto ; [INV] else goto ; [INV] : xYieldRequired = prvCopyDataToQueue (pxQueue, pvItemToQueue, xCopyPosition); _7 = pxQueue->xTasksWaitingToReceive.uxNumberOfItems; if (_7 != 0) goto ; [INV] else goto ; [INV] : _8 = &pxQueue->xTasksWaitingToReceive; _9 = xTaskRemoveFromEventList (_8); if (_9 != 0) goto ; [INV] else goto ; [INV] : _10 = 3758157060B; *_10 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); goto ; [INV] : if (xYieldRequired != 0) goto ; [INV] else goto ; [INV] : _11 = 3758157060B; *_11 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); : vPortExitCritical (); D.6881 = 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 (); D.6881 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : if (xEntryTimeSet == 0) goto ; [INV] else goto ; [INV] : vTaskInternalSetTimeOutState (&xTimeOut); xEntryTimeSet = 1; : vPortExitCritical (); vTaskSuspendAll (); vPortEnterCritical (); _13 = pxQueue->cRxLock; if (_13 == -1) goto ; [INV] else goto ; [INV] : pxQueue->cRxLock = 0; : _14 = pxQueue->cTxLock; if (_14 == -1) goto ; [INV] else goto ; [INV] : pxQueue->cTxLock = 0; : vPortExitCritical (); _15 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait); if (_15 == 0) goto ; [INV] else goto ; [INV] : _16 = prvIsQueueFull (pxQueue); if (_16 != 0) goto ; [INV] else goto ; [INV] : _17 = &pxQueue->xTasksWaitingToSend; xTicksToWait.5_18 = xTicksToWait; vTaskPlaceOnEventList (_17, xTicksToWait.5_18); prvUnlockQueue (pxQueue); _19 = xTaskResumeAll (); if (_19 == 0) goto ; [INV] else goto ; [INV] : _20 = 3758157060B; *_20 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); goto ; [INV] : prvUnlockQueue (pxQueue); xTaskResumeAll (); goto ; [INV] : prvUnlockQueue (pxQueue); xTaskResumeAll (); D.6881 = 0; // predicted unlikely by early return (on trees) predictor. goto ; [INV] : goto ; [INV] : xTimeOut = {CLOBBER}; : : return D.6881; } xQueueCreateCountingSemaphore (const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount) { struct QueueDefinition * xHandle; struct QueueDefinition * D.6844; : xHandle = 0B; if (uxMaxCount != 0) goto ; [INV] else goto ; [INV] : if (uxInitialCount <= uxMaxCount) goto ; [INV] else goto ; [INV] : xHandle = xQueueGenericCreate (uxMaxCount, 0, 2); if (xHandle != 0B) goto ; [INV] else goto ; [INV] : MEM[(struct Queue_t *)xHandle].uxMessagesWaiting = uxInitialCount; : goto ; [INV] : if (xHandle == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : D.6844 = xHandle; : : return D.6844; } xQueueTakeMutexRecursive (struct QueueDefinition * xMutex, TickType_t xTicksToWait) { struct Queue_t * const pxMutex; BaseType_t xReturn; BaseType_t D.6833; : pxMutex = xMutex; if (pxMutex == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _1 = pxMutex->u.xSemaphore.xMutexHolder; _2 = xTaskGetCurrentTaskHandle (); if (_1 == _2) goto ; [INV] else goto ; [INV] : _3 = pxMutex->u.xSemaphore.uxRecursiveCallCount; _4 = _3 + 1; pxMutex->u.xSemaphore.uxRecursiveCallCount = _4; xReturn = 1; goto ; [INV] : xReturn = xQueueSemaphoreTake (pxMutex, xTicksToWait); if (xReturn != 0) goto ; [INV] else goto ; [INV] : _5 = pxMutex->u.xSemaphore.uxRecursiveCallCount; _6 = _5 + 1; pxMutex->u.xSemaphore.uxRecursiveCallCount = _6; : D.6833 = xReturn; : : return D.6833; } xQueueGiveMutexRecursive (struct QueueDefinition * xMutex) { struct Queue_t * const pxMutex; BaseType_t xReturn; BaseType_t D.6823; : pxMutex = xMutex; if (pxMutex == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _1 = pxMutex->u.xSemaphore.xMutexHolder; _2 = xTaskGetCurrentTaskHandle (); if (_1 == _2) goto ; [INV] else goto ; [INV] : _3 = pxMutex->u.xSemaphore.uxRecursiveCallCount; _4 = _3 + 4294967295; pxMutex->u.xSemaphore.uxRecursiveCallCount = _4; _5 = pxMutex->u.xSemaphore.uxRecursiveCallCount; if (_5 == 0) goto ; [INV] else goto ; [INV] : xQueueGenericSend (pxMutex, 0B, 0, 0); : xReturn = 1; goto ; [INV] : xReturn = 0; : D.6823 = xReturn; : : return D.6823; } xQueueGetMutexHolderFromISR (struct QueueDefinition * xSemaphore) { struct tskTaskControlBlock * pxReturn; struct tskTaskControlBlock * D.6813; : if (xSemaphore == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : _1 = MEM[(struct Queue_t *)xSemaphore].pcHead; if (_1 == 0B) goto ; [INV] else goto ; [INV] : pxReturn = MEM[(struct Queue_t *)xSemaphore].u.xSemaphore.xMutexHolder; goto ; [INV] : pxReturn = 0B; : D.6813 = pxReturn; : : return D.6813; } xQueueGetMutexHolder (struct QueueDefinition * xSemaphore) { struct Queue_t * const pxSemaphore; struct tskTaskControlBlock * pxReturn; struct tskTaskControlBlock * D.6806; : pxSemaphore = xSemaphore; if (xSemaphore == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : vPortEnterCritical (); _1 = pxSemaphore->pcHead; if (_1 == 0B) goto ; [INV] else goto ; [INV] : pxReturn = pxSemaphore->u.xSemaphore.xMutexHolder; goto ; [INV] : pxReturn = 0B; : vPortExitCritical (); D.6806 = pxReturn; : : return D.6806; } xQueueCreateMutex (const uint8_t ucQueueType) { const UBaseType_t uxMutexSize; const UBaseType_t uxMutexLength; struct QueueDefinition * xNewQueue; struct QueueDefinition * D.6799; : uxMutexLength = 1; uxMutexSize = 0; xNewQueue = xQueueGenericCreate (uxMutexLength, uxMutexSize, ucQueueType); prvInitialiseMutex (xNewQueue); D.6799 = xNewQueue; : : return D.6799; } prvInitialiseMutex (struct Queue_t * pxNewQueue) { : if (pxNewQueue != 0B) goto ; [INV] else goto ; [INV] : pxNewQueue->u.xSemaphore.xMutexHolder = 0B; pxNewQueue->pcHead = 0B; pxNewQueue->u.xSemaphore.uxRecursiveCallCount = 0; xQueueGenericSend (pxNewQueue, 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 == 0) goto ; [INV] else goto ; [INV] : pxNewQueue->pcHead = pxNewQueue; goto ; [INV] : pxNewQueue->pcHead = pucQueueStorage; : pxNewQueue->uxLength = uxQueueLength; pxNewQueue->uxItemSize = uxItemSize; xQueueGenericReset (pxNewQueue, 1); pxNewQueue->ucQueueType = ucQueueType; return; } xQueueGenericCreate (const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, const uint8_t ucQueueType) { uint8_t * pucQueueStorage; size_t xQueueSizeInBytes; struct Queue_t * pxNewQueue; struct QueueDefinition * D.6791; : pxNewQueue = 0B; if (uxQueueLength != 0) goto ; [INV] else goto ; [INV] : _1 = .MUL_OVERFLOW (uxItemSize, uxQueueLength); _2 = IMAGPART_EXPR <_1>; if (_2 == 0) goto ; [INV] else goto ; [INV] : _3 = uxQueueLength * uxItemSize; if (_3 <= 4294967215) goto ; [INV] else goto ; [INV] : xQueueSizeInBytes = uxQueueLength * uxItemSize; _4 = xQueueSizeInBytes + 80; pxNewQueue = pvPortMalloc (_4); if (pxNewQueue != 0B) goto ; [INV] else goto ; [INV] : pucQueueStorage = pxNewQueue; pucQueueStorage = pucQueueStorage + 80; prvInitialiseNewQueue (uxQueueLength, uxItemSize, pucQueueStorage, ucQueueType, pxNewQueue); : goto ; [INV] : if (pxNewQueue == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : D.6791 = pxNewQueue; : : return D.6791; } xQueueGenericReset (struct QueueDefinition * xQueue, BaseType_t xNewQueue) { struct Queue_t * const pxQueue; BaseType_t xReturn; BaseType_t D.6779; : xReturn = 1; pxQueue = xQueue; if (pxQueue == 0B) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : if (pxQueue != 0B) goto ; [INV] else goto ; [INV] : _1 = pxQueue->uxLength; if (_1 != 0) goto ; [INV] else goto ; [INV] : _3 = pxQueue->uxItemSize; _4 = pxQueue->uxLength; _2 = .MUL_OVERFLOW (_3, _4); _5 = IMAGPART_EXPR <_2>; if (_5 == 0) goto ; [INV] else goto ; [INV] : vPortEnterCritical (); _6 = pxQueue->pcHead; _7 = pxQueue->uxLength; _8 = pxQueue->uxItemSize; _9 = _7 * _8; _10 = _6 + _9; pxQueue->u.xQueue.pcTail = _10; pxQueue->uxMessagesWaiting = 0; _11 = pxQueue->pcHead; pxQueue->pcWriteTo = _11; _12 = pxQueue->pcHead; _13 = pxQueue->uxLength; _14 = _13 + 4294967295; _15 = pxQueue->uxItemSize; _16 = _14 * _15; _17 = _12 + _16; pxQueue->u.xQueue.pcReadFrom = _17; pxQueue->cRxLock = -1; pxQueue->cTxLock = -1; if (xNewQueue == 0) goto ; [INV] else goto ; [INV] : _18 = pxQueue->xTasksWaitingToSend.uxNumberOfItems; if (_18 != 0) goto ; [INV] else goto ; [INV] : _19 = &pxQueue->xTasksWaitingToSend; _20 = xTaskRemoveFromEventList (_19); if (_20 != 0) goto ; [INV] else goto ; [INV] : _21 = 3758157060B; *_21 = 268435456; __asm__ __volatile__("dsb" : : : "memory"); __asm__ __volatile__("isb"); goto ; [INV] : _22 = &pxQueue->xTasksWaitingToSend; vListInitialise (_22); _23 = &pxQueue->xTasksWaitingToReceive; vListInitialise (_23); : vPortExitCritical (); goto ; [INV] : xReturn = 0; : if (xReturn == 0) goto ; [INV] else goto ; [INV] : vPortRaiseBASEPRI (); : goto ; [INV] : D.6779 = xReturn; : : return D.6779; } __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.6937; : __asm__ __volatile__(" mrs %0, basepri mov %1, %2 msr basepri, %1 isb dsb " : "=r" ulOriginalBASEPRI, "=r" ulNewBASEPRI : "i" 16 : "memory"); D.6937 = ulOriginalBASEPRI; : : return D.6937; } __attribute__((always_inline)) vPortRaiseBASEPRI () { uint32_t ulNewBASEPRI; : __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI : "i" 16 : "memory"); return; }