NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
doca_pe.h File Reference
#include <stdint.h>
#include <stdlib.h>
#include <doca_compat.h>
#include <doca_error.h>
#include <doca_types.h>
Include dependency graph for doca_pe.h:

Go to the source code of this file.

Typedefs

typedef void(* doca_task_completion_cb_t) (struct doca_task *task, union doca_data task_user_data, union doca_data ctx_user_data)
 Function to execute on task completion. More...
 

Enumerations

enum  doca_task_batch_max_tasks_number { DOCA_TASK_BATCH_MAX_TASKS_NUMBER_16 , DOCA_TASK_BATCH_MAX_TASKS_NUMBER_32 , DOCA_TASK_BATCH_MAX_TASKS_NUMBER_64 , DOCA_TASK_BATCH_MAX_TASKS_NUMBER_128 }
 
enum  doca_event_batch_events_number {
  DOCA_EVENT_BATCH_EVENTS_NUMBER_1 , DOCA_EVENT_BATCH_EVENTS_NUMBER_2 , DOCA_EVENT_BATCH_EVENTS_NUMBER_4 , DOCA_EVENT_BATCH_EVENTS_NUMBER_8 ,
  DOCA_EVENT_BATCH_EVENTS_NUMBER_16 , DOCA_EVENT_BATCH_EVENTS_NUMBER_32 , DOCA_EVENT_BATCH_EVENTS_NUMBER_64 , DOCA_EVENT_BATCH_EVENTS_NUMBER_128
}
 
enum  doca_task_submit_flag { DOCA_TASK_SUBMIT_FLAG_NONE = 0U , DOCA_TASK_SUBMIT_FLAG_FLUSH = (1U << 0) , DOCA_TASK_SUBMIT_FLAG_OPTIMIZE_REPORTS = (1U << 1) }
 Flags used when submitting a doca_task. More...
 
enum  doca_pe_event_mode { DOCA_PE_EVENT_MODE_PROGRESS_SELECTIVE , DOCA_PE_EVENT_MODE_PROGRESS_ALL }
 Progress engine event modes. More...
 

Functions

DOCA_STABLE doca_error_t doca_pe_create (struct doca_pe **pe)
 Creates DOCA progress engine. More...
 
DOCA_STABLE doca_error_t doca_pe_destroy (struct doca_pe *pe)
 Destroy doca progress engine. More...
 
DOCA_STABLE uint8_t doca_pe_progress (struct doca_pe *pe)
 Run the progress engine. More...
 
DOCA_STABLE doca_error_t doca_pe_clear_notification (struct doca_pe *pe, doca_notification_handle_t handle)
 Clear triggered completions after wait. More...
 
DOCA_STABLE doca_error_t doca_pe_request_notification (struct doca_pe *pe)
 Arm the progress engine to wait for completion. More...
 
DOCA_STABLE doca_error_t doca_pe_get_num_inflight_tasks (const struct doca_pe *pe, size_t *num_inflight_tasks)
 Get number of in flight tasks. More...
 
DOCA_STABLE doca_error_t doca_task_submit (struct doca_task *task)
 Submit a task to a progress engine. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_task_submit_ex (struct doca_task *task, uint32_t flags)
 Extended version of doca_task_submit. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_task_batch_submit (struct doca_task_batch *task_batch)
 Submit a task_batch to a progress engine. More...
 
DOCA_STABLE doca_error_t doca_task_try_submit (struct doca_task *task)
 Try to submit a task to a progress engine. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_task_batch_try_submit (struct doca_task_batch *task_batch)
 Try to submit a task_batch to a progress engine. More...
 
DOCA_STABLE void doca_task_free (struct doca_task *task)
 Free a task back to where it was allocated from. More...
 
DOCA_EXPERIMENTAL void doca_task_batch_free (struct doca_task_batch *task_batch)
 Free a task_batch back to where it was allocated from. More...
 
DOCA_STABLE doca_error_t doca_task_get_status (const struct doca_task *task)
 Get task status. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_task_batch_get_status (const struct doca_task_batch *task_batch)
 Get task_batch status. More...
 
DOCA_STABLE void doca_task_set_user_data (struct doca_task *task, union doca_data user_data)
 Set user data to a task. More...
 
DOCA_EXPERIMENTAL void doca_task_batch_set_user_data (struct doca_task_batch *task_batch, union doca_data user_data)
 Set user data to a task_batch. More...
 
DOCA_STABLE union doca_data doca_task_get_user_data (const struct doca_task *task)
 Get user data from a task. More...
 
DOCA_EXPERIMENTAL union doca_data doca_task_batch_get_user_data (const struct doca_task_batch *task_batch)
 Get user data from a task_batch. More...
 
DOCA_STABLE struct doca_ctx * doca_task_get_ctx (const struct doca_task *task)
 Get context from a doca task. More...
 
DOCA_EXPERIMENTAL struct doca_ctx * doca_task_batch_get_ctx (const struct doca_task_batch *task_batch)
 Get context from a doca task_batch. More...
 
DOCA_EXPERIMENTAL union doca_data doca_task_batch_get_ctx_user_data (const struct doca_task_batch *task_batch)
 Get context user data from a doca task_batch. More...
 
DOCA_EXPERIMENTAL uint16_t doca_task_batch_get_tasks_num (struct doca_task_batch *task_batch)
 Get actual tasks number from a doca task_batch. More...
 
DOCA_STABLE doca_error_t doca_pe_connect_ctx (struct doca_pe *pe, struct doca_ctx *ctx)
 This method connects a context to a progress engine. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_pe_set_event_mode (struct doca_pe *pe, enum doca_pe_event_mode event_mode)
 Set event mode. More...