| 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 | /*-----------------------------------------------------------*/ |
no test coverage detected