Function table for the NVMe accelerator device. More...
#include <nvme.h>
Data Fields | |
| size_t | table_size |
| The size of spdk_nvme_accel_fun_table according to the caller of this library is used for ABI compatibility. | |
| uint8_t | reserved8 [8] |
| void(* | finish_sequence )(void *seq, spdk_nvme_accel_completion_cb cb_fn, void *cb_arg) |
| Finish an accel sequence. | |
| void(* | reverse_sequence )(void *seq) |
| Reverse an accel sequence. | |
| void(* | abort_sequence )(void *seq) |
| Abort an accel sequence. | |
| int(* | append_crc32c )(void *ctx, void **seq, uint32_t *dst, struct iovec *iovs, uint32_t iovcnt, struct spdk_memory_domain *memory_domain, void *domain_ctx, uint32_t seed, spdk_nvme_accel_step_cb cb_fn, void *cb_arg) |
| Append a crc32c operation to a sequence. | |
| int(* | append_copy )(void *ctx, void **seq, struct iovec *dst_iovs, uint32_t dst_iovcnt, struct spdk_memory_domain *dst_domain, void *dst_domain_ctx, struct iovec *src_iovs, uint32_t src_iovcnt, struct spdk_memory_domain *src_domain, void *src_domain_ctx, spdk_nvme_accel_step_cb cb_fn, void *cb_arg) |
| Append a copy operation to a sequence. | |
| void(* | poll )(void *ctx) |
| Optional. | |
Function table for the NVMe accelerator device.
This table provides a set of APIs to allow user to leverage accelerator functions.
| void(* spdk_nvme_accel_fn_table::poll) (void *ctx) |
Optional.
Drive forward progress of the underlying accelerator engine (e.g. poll the spdk_thread backing it) so previously submitted sequences can complete.
Only consulted on the process-global fn_table set via spdk_nvme_transport_set_accel_fn_table(); ignored on the fn_table passed to spdk_nvme_poll_group_create(). Poll group QPairs are always driven by the application calling spdk_nvme_poll_group_process_completions(), but a QPair using the process-global fallback has no other caller to pump the accel engine while the transport is blocked waiting for its accel requests to complete (e.g. inside spdk_nvme_ctrlr_free_io_qpair()).
| size_t spdk_nvme_accel_fn_table::table_size |
The size of spdk_nvme_accel_fun_table according to the caller of this library is used for ABI compatibility.
The library uses this field to know how many fields in this structure are valid. And the library will populate any remaining fields with default values. Newly added fields should be put at the end of the struct.