47 "Failed to initialize IO DPA thread: Failed to bind CQ to CQ completion context - %d",
76 .bind_sq_db_done_data =
83 (
const uint8_t *)&msg_reply,
94 .unbind_sq_db_done_data =
101 (
const uint8_t *)&msg_reply,
127 uint32_t num_msgs = 0;
163 .db_user_data =
db->user_data,
169 (
const uint8_t *)&msg,
201 for (db_idx = 0; db_idx < num_dbs; db_idx++) {
doca_dpa_dev_devemu_pci_db_completion_t db_comp
#define RPC_RETURN_STATUS_ERROR
#define MAX_NUM_COMCH_MSGS
#define RPC_RETURN_STATUS_SUCCESS
@ COMCH_MSG_TYPE_RAISE_MSIX
@ COMCH_MSG_TYPE_BIND_SQ_DB_DONE
@ COMCH_MSG_TYPE_UNBIND_SQ_DB_DONE
@ COMCH_MSG_TYPE_UNBIND_SQ_DB
@ COMCH_MSG_TYPE_BIND_SQ_DB
static void handle_db(struct io_thread_arg *thread_arg, struct db_completion_properties *db)
static void handle_dpu_msg(struct io_thread_arg *thread_arg, const struct comch_msg *msg)
static void handle_dpu_msgs(struct io_thread_arg *thread_arg)
static void handle_dbs(struct io_thread_arg *thread_arg)
__dpa_global__ void io_thread(uint64_t thread_arg_raw)
__dpa_rpc__ uint64_t io_thread_init_rpc(doca_dpa_dev_devemu_pci_db_completion_t db_comp, doca_dpa_dev_devemu_pci_db_t cq_db, doca_dpa_dev_comch_consumer_t consumer)
struct dpa_thread_arg __dpa_global__
uint64_t doca_dpa_dev_comch_consumer_completion_t
DPA handle for DPA consumer completion context.
uint64_t doca_dpa_dev_comch_consumer_t
DPA handle for DPA consumer.
uint64_t doca_dpa_dev_comch_producer_t
DPA handle for DPA producer.
uint64_t doca_dpa_dev_devemu_pci_db_completion_t
DPA handle for emulated PCI device doorbell completion context.
uint64_t doca_dpa_dev_devemu_pci_db_t
DPA handle for emulated PCI device doorbell.
DOCA_EXPERIMENTAL void doca_dpa_dev_comch_consumer_completion_request_notification(doca_dpa_dev_comch_consumer_completion_t consumer_comp_handle)
Request notification on the Comch consumer completion context.
DOCA_EXPERIMENTAL void doca_dpa_dev_comch_consumer_completion_ack(doca_dpa_dev_comch_consumer_completion_t consumer_comp_handle, uint64_t num_comp)
Acknowledge that the completions have been read on the Comch consumer completion context.
DOCA_EXPERIMENTAL const uint8_t * doca_dpa_dev_comch_consumer_get_completion_imm(doca_dpa_dev_comch_consumer_completion_element_t comp_element, uint32_t *imm_length)
Get Comch consumer completion immediate data.
__dpa_global__ typedef uint64_t doca_dpa_dev_comch_consumer_completion_element_t
DPA Comch consumer completion element handle type definition.
DOCA_EXPERIMENTAL void doca_dpa_dev_comch_consumer_ack(doca_dpa_dev_comch_consumer_t consumer, uint32_t num_msg)
Post multiple receive operations that receive immediate data only.
DOCA_EXPERIMENTAL int doca_dpa_dev_comch_consumer_get_completion(doca_dpa_dev_comch_consumer_completion_t consumer_comp_handle, doca_dpa_dev_comch_consumer_completion_element_t *comp_element)
Get Comch consumer completion element.
DOCA_EXPERIMENTAL void doca_dpa_dev_comch_producer_post_send_imm_only(doca_dpa_dev_comch_producer_t producer, uint32_t consumer_id, const uint8_t *imm, uint32_t imm_length, uint32_t flags)
Post a producer send immediate data only operation.
__dpa_global__ typedef uint64_t doca_dpa_dev_devemu_pci_db_completion_element_t
DPA Devemu PCI Device DB Completion Element handle type definition.
DOCA_EXPERIMENTAL void doca_dpa_dev_devemu_pci_db_completion_request_notification(doca_dpa_dev_devemu_pci_db_completion_t comp)
Request notification on the Devemu PCI Device DB completion context.
DOCA_EXPERIMENTAL uint32_t doca_dpa_dev_devemu_pci_db_get_value(doca_dpa_dev_devemu_pci_db_t db)
Get value written to the doorbell.
DOCA_EXPERIMENTAL int doca_dpa_dev_devemu_pci_db_completion_bind_db(doca_dpa_dev_devemu_pci_db_completion_t comp, doca_dpa_dev_devemu_pci_db_t db)
Bind Devemu PCI Device DB handle to the Devemu PCI Device DB completion context.
DOCA_EXPERIMENTAL void doca_dpa_dev_devemu_pci_db_completion_ack(doca_dpa_dev_devemu_pci_db_completion_t comp, uint64_t num_comp)
Acknowledge that the completions have been read on the Devemu PCI Device DB completion context.
DOCA_EXPERIMENTAL void doca_dpa_dev_devemu_pci_db_completion_element_get_db_properties(doca_dpa_dev_devemu_pci_db_completion_t comp, doca_dpa_dev_devemu_pci_db_completion_element_t comp_element, doca_dpa_dev_devemu_pci_db_t *db, doca_dpa_dev_uintptr_t *db_user_data)
Get Devemu PCI Device DB properties from DB completion element.
DOCA_EXPERIMENTAL void doca_dpa_dev_devemu_pci_db_request_notification(doca_dpa_dev_devemu_pci_db_t db)
Request notification on the Devemu PCI Device DB context.
DOCA_EXPERIMENTAL int doca_dpa_dev_devemu_pci_db_completion_unbind_db(doca_dpa_dev_devemu_pci_db_completion_t comp, doca_dpa_dev_devemu_pci_db_t db)
Unbind Devemu PCI Device DB handle from the Devemu PCI Device DB completion context.
DOCA_EXPERIMENTAL void doca_dpa_dev_devemu_pci_msix_raise(doca_dpa_dev_devemu_pci_msix_t msix)
Raise MSIX notification towards the driver.
DOCA_EXPERIMENTAL int doca_dpa_dev_devemu_pci_get_db_completion(doca_dpa_dev_devemu_pci_db_completion_t comp, doca_dpa_dev_devemu_pci_db_completion_element_t *comp_element)
Get Devemu PCI Device DB completion element.
DOCA_EXPERIMENTAL void doca_dpa_dev_thread_reschedule(void)
Reschedule a DPA thread.
#define DOCA_DPA_DEV_LOG_ERR(...)
Generate a DOCA DPA device ERROR log message.
@ DOCA_DPA_DEV_SUBMIT_FLAG_OPTIMIZE_REPORTS
@ DOCA_DPA_DEV_SUBMIT_FLAG_FLUSH
uint64_t doca_dpa_dev_uintptr_t
DPA pointer type definition.
struct comch_msg::@18::@19 bind_sq_db_data
struct comch_msg::@18::@21 unbind_sq_db_data
doca_dpa_dev_uintptr_t user_data
doca_dpa_dev_devemu_pci_db_t db
uint64_t dpa_consumer_comp