MCPcopy Create free account
hub / github.com/FreeRTOS/FreeRTOS-Kernel / prvListTasksWithinSingleList

Function prvListTasksWithinSingleList

tasks.c:4711–4739  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4709#if ( configUSE_TRACE_FACILITY == 1 )
4710
4711 static UBaseType_t prvListTasksWithinSingleList( TaskStatus_t * pxTaskStatusArray,
4712 List_t * pxList,
4713 eTaskState eState )
4714 {
4715 configLIST_VOLATILE TCB_t * pxNextTCB, * pxFirstTCB;
4716 UBaseType_t uxTask = 0;
4717
4718 if( listCURRENT_LIST_LENGTH( pxList ) > ( UBaseType_t ) 0 )
4719 {
4720 listGET_OWNER_OF_NEXT_ENTRY( pxFirstTCB, pxList ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */
4721
4722 /* Populate an TaskStatus_t structure within the
4723 * pxTaskStatusArray array for each task that is referenced from
4724 * pxList. See the definition of TaskStatus_t in task.h for the
4725 * meaning of each TaskStatus_t structure member. */
4726 do
4727 {
4728 listGET_OWNER_OF_NEXT_ENTRY( pxNextTCB, pxList ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */
4729 vTaskGetInfo( ( TaskHandle_t ) pxNextTCB, &( pxTaskStatusArray[ uxTask ] ), pdTRUE, eState );
4730 uxTask++;
4731 } while( pxNextTCB != pxFirstTCB );
4732 }
4733 else
4734 {
4735 mtCOVERAGE_TEST_MARKER();
4736 }
4737
4738 return uxTask;
4739 }
4740
4741#endif /* configUSE_TRACE_FACILITY */
4742/*-----------------------------------------------------------*/

Callers 1

uxTaskGetSystemStateFunction · 0.85

Calls 1

vTaskGetInfoFunction · 0.85

Tested by

no test coverage detected