27 #ifndef DOCA_COMCH_PRODUCER_H_
28 #define DOCA_COMCH_PRODUCER_H_
44 struct doca_dpa_thread;
47 struct doca_comch_connection;
50 struct doca_comch_producer;
53 struct doca_dpa_completion;
82 struct doca_comch_producer **producer);
179 uint32_t *max_buf_list_len);
244 struct doca_dpa_completion *dpa_comp);
269 struct doca_comch_producer_task_send;
310 uint32_t num_send_tasks);
336 const struct doca_buf *buf,
338 uint32_t imm_data_len,
339 uint32_t consumer_id,
340 struct doca_comch_producer_task_send **task);
387 const uint32_t consumer_id);
426 uint32_t imm_data_len);
static void task_error_cb(struct doca_task *se_task, union doca_data task_user_data, union doca_data ctx_user_data)
static void task_completion_cb(struct doca_task *se_task, union doca_data task_user_data, union doca_data ctx_user_data)
DOCA_EXPERIMENTAL doca_error_t doca_comch_producer_get_dpa_handle(struct doca_comch_producer *producer, doca_dpa_dev_comch_producer_t *dpa_producer)
Retrieve the handle in the dpa memory space of a doca_comch_producer.
DOCA_STABLE doca_error_t doca_comch_producer_create(struct doca_comch_connection *comch_connection, struct doca_comch_producer **producer)
void(* doca_comch_producer_task_send_completion_cb_t)(struct doca_comch_producer_task_send *task, union doca_data task_user_data, union doca_data ctx_user_data)
DOCA_STABLE doca_error_t doca_comch_producer_get_id(const struct doca_comch_producer *producer, uint32_t *id)
DOCA_STABLE const struct doca_buf * doca_comch_producer_task_send_get_buf(const struct doca_comch_producer_task_send *task)
DOCA_STABLE doca_error_t doca_comch_producer_cap_is_supported(const struct doca_devinfo *devinfo)
DOCA_EXPERIMENTAL doca_error_t doca_comch_producer_set_dev_max_num_send(struct doca_comch_producer *producer, uint32_t dev_num_send)
Set the maximal number of send operations for a DPA producer.
DOCA_STABLE struct doca_task * doca_comch_producer_task_send_as_task(struct doca_comch_producer_task_send *task)
DOCA_STABLE uint32_t doca_comch_producer_task_send_get_consumer_id(const struct doca_comch_producer_task_send *task)
DOCA_STABLE doca_error_t doca_comch_producer_task_send_set_conf(struct doca_comch_producer *producer, doca_comch_producer_task_send_completion_cb_t task_completion_cb, doca_comch_producer_task_send_completion_cb_t task_error_cb, uint32_t num_send_tasks)
DOCA_STABLE doca_error_t doca_comch_producer_cap_get_max_producers(const struct doca_devinfo *devinfo, uint32_t *max_producers)
DOCA_STABLE uint8_t * doca_comch_producer_task_send_get_imm_data(const struct doca_comch_producer_task_send *task)
DOCA_STABLE void doca_comch_producer_task_send_set_buf(struct doca_comch_producer_task_send *task, const struct doca_buf *buf)
DOCA_STABLE doca_error_t doca_comch_producer_destroy(struct doca_comch_producer *producer)
DOCA_STABLE doca_error_t doca_comch_producer_cap_get_max_buf_size(const struct doca_devinfo *devinfo, uint32_t *max_buf_size)
DOCA_STABLE void doca_comch_producer_task_send_set_imm_data(struct doca_comch_producer_task_send *task, uint8_t *imm_data, uint32_t imm_data_len)
DOCA_STABLE void doca_comch_producer_task_send_set_consumer_id(struct doca_comch_producer_task_send *task, const uint32_t consumer_id)
DOCA_STABLE struct doca_ctx * doca_comch_producer_as_ctx(struct doca_comch_producer *producer)
DOCA_STABLE doca_error_t doca_comch_producer_cap_get_max_buf_list_len(const struct doca_devinfo *devinfo, uint32_t *max_buf_list_len)
DOCA_STABLE doca_error_t doca_comch_producer_cap_get_max_num_tasks(const struct doca_devinfo *devinfo, uint32_t *max_num_tasks)
DOCA_EXPERIMENTAL doca_error_t doca_comch_producer_dpa_completion_attach(struct doca_comch_producer *producer, struct doca_dpa_completion *dpa_comp)
Associate producer with DPA completion context.
DOCA_STABLE doca_error_t doca_comch_producer_task_send_alloc_init(struct doca_comch_producer *producer, const struct doca_buf *buf, uint8_t *imm_data, uint32_t imm_data_len, uint32_t consumer_id, struct doca_comch_producer_task_send **task)
uint64_t doca_dpa_dev_comch_producer_t
DPA handle for DPA producer.
DOCA_STABLE uint32_t doca_comch_producer_task_send_get_imm_data_len(const struct doca_comch_producer_task_send *task)
#define DOCA_EXPERIMENTAL
To set a Symbol (or specifically a function) as experimental.
#define DOCA_STABLE
To set a Symbol (or specifically a function) as stable API, i.e. it won't be changed.
enum doca_error doca_error_t
DOCA API return codes.
Convenience type for representing opaque data.