Function esp_idf_svc::hal::sys::vTaskGetInfo

source ·
pub unsafe extern "C" fn vTaskGetInfo(
    xTask: *mut tskTaskControlBlock,
    pxTaskStatus: *mut xTASK_STATUS,
    xGetFreeStackSpace: i32,
    eState: u32,
)
Expand description

configUSE_TRACE_FACILITY must be defined as 1 for this function to be available. See the configuration section for more information.

Populates a TaskStatus_t structure with information about a task.

@param xTask Handle of the task being queried. If xTask is NULL then information will be returned about the calling task.

@param pxTaskStatus A pointer to the TaskStatus_t structure that will be filled with information about the task referenced by the handle passed using the xTask parameter.

@param xGetFreeStackSpace The TaskStatus_t structure contains a member to report the stack high water mark of the task being queried. Calculating the stack high water mark takes a relatively long time, and can make the system temporarily unresponsive - so the xGetFreeStackSpace parameter is provided to allow the high water mark checking to be skipped. The high watermark value will only be written to the TaskStatus_t structure if xGetFreeStackSpace is not set to pdFALSE;

@param eState The TaskStatus_t structure contains a member to report the state of the task being queried. Obtaining the task state is not as fast as a simple assignment - so the eState parameter is provided to allow the state information to be omitted from the TaskStatus_t structure. To obtain state information then set eState to eInvalid - otherwise the value passed in eState will be reported as the task state in the TaskStatus_t structure.

Example usage: @code{c} void vAFunction( void ) { TaskHandle_t xHandle; TaskStatus_t xTaskDetails;

// Obtain the handle of a task from its name. xHandle = xTaskGetHandle( “Task_Name” );

// Check the handle is not NULL. configASSERT( xHandle );

// Use the handle to obtain further information about the task. vTaskGetInfo( xHandle, &xTaskDetails, pdTRUE, // Include the high water mark in xTaskDetails. eInvalid ); // Include the task state in xTaskDetails. } @endcode \ingroup TaskCtrl