NVMe driver public API extension for Open-Channel. More...
Functions | |
| bool | spdk_nvme_ctrlr_is_ocssd_supported (struct spdk_nvme_ctrlr *ctrlr) |
| Determine if OpenChannel is supported by the given NVMe controller. | |
| int | spdk_nvme_ocssd_ctrlr_cmd_geometry (struct spdk_nvme_ctrlr *ctrlr, uint32_t nsid, void *payload, uint32_t payload_size, spdk_nvme_cmd_cb cb_fn, void *cb_arg) |
| Identify geometry of the given namespace. | |
| int | spdk_nvme_ocssd_ns_cmd_vector_reset (struct spdk_nvme_ns *ns, struct spdk_nvme_qpair *qpair, uint64_t *lba_list, uint32_t num_lbas, struct spdk_ocssd_chunk_information_entry *chunk_info, spdk_nvme_cmd_cb cb_fn, void *cb_arg) |
| Submits a vector reset command to the specified NVMe namespace. | |
| int | spdk_nvme_ocssd_ns_cmd_vector_write (struct spdk_nvme_ns *ns, struct spdk_nvme_qpair *qpair, void *buffer, uint64_t *lba_list, uint32_t num_lbas, spdk_nvme_cmd_cb cb_fn, void *cb_arg, uint32_t io_flags) |
| Submits a vector write command to the specified NVMe namespace. | |
| int | spdk_nvme_ocssd_ns_cmd_vector_write_with_md (struct spdk_nvme_ns *ns, struct spdk_nvme_qpair *qpair, void *buffer, void *metadata, uint64_t *lba_list, uint32_t num_lbas, spdk_nvme_cmd_cb cb_fn, void *cb_arg, uint32_t io_flags) |
| Submits a vector write command to the specified NVMe namespace. | |
| int | spdk_nvme_ocssd_ns_cmd_vector_read (struct spdk_nvme_ns *ns, struct spdk_nvme_qpair *qpair, void *buffer, uint64_t *lba_list, uint32_t num_lbas, spdk_nvme_cmd_cb cb_fn, void *cb_arg, uint32_t io_flags) |
| Submits a vector read command to the specified NVMe namespace. | |
| int | spdk_nvme_ocssd_ns_cmd_vector_read_with_md (struct spdk_nvme_ns *ns, struct spdk_nvme_qpair *qpair, void *buffer, void *metadata, uint64_t *lba_list, uint32_t num_lbas, spdk_nvme_cmd_cb cb_fn, void *cb_arg, uint32_t io_flags) |
| Submits a vector read command to the specified NVMe namespace. | |
| int | spdk_nvme_ocssd_ns_cmd_vector_copy (struct spdk_nvme_ns *ns, struct spdk_nvme_qpair *qpair, uint64_t *dst_lba_list, uint64_t *src_lba_list, uint32_t num_lbas, spdk_nvme_cmd_cb cb_fn, void *cb_arg, uint32_t io_flags) |
| Submits a vector copy command to the specified NVMe namespace. | |
NVMe driver public API extension for Open-Channel.
| bool spdk_nvme_ctrlr_is_ocssd_supported | ( | struct spdk_nvme_ctrlr * | ctrlr | ) |
Determine if OpenChannel is supported by the given NVMe controller.
| ctrlr | NVMe controller to check. |
| int spdk_nvme_ocssd_ctrlr_cmd_geometry | ( | struct spdk_nvme_ctrlr * | ctrlr, |
| uint32_t | nsid, | ||
| void * | payload, | ||
| uint32_t | payload_size, | ||
| spdk_nvme_cmd_cb | cb_fn, | ||
| void * | cb_arg ) |
Identify geometry of the given namespace.
| ctrlr | NVMe controller to query. |
| nsid | Id of the given namespace. |
| payload | The pointer to the payload buffer. |
| payload_size | The size of payload buffer. Shall be multiple of 4K. |
| cb_fn | Callback function to invoke when the feature has been retrieved. |
| cb_arg | Argument to pass to the callback function. |
| int spdk_nvme_ocssd_ns_cmd_vector_copy | ( | struct spdk_nvme_ns * | ns, |
| struct spdk_nvme_qpair * | qpair, | ||
| uint64_t * | dst_lba_list, | ||
| uint64_t * | src_lba_list, | ||
| uint32_t | num_lbas, | ||
| spdk_nvme_cmd_cb | cb_fn, | ||
| void * | cb_arg, | ||
| uint32_t | io_flags ) |
Submits a vector copy command to the specified NVMe namespace.
| ns | NVMe namespace to submit the command |
| qpair | I/O queue pair to submit the request |
| dst_lba_list | an array of destination LBAs for processing. Must be allocated through spdk_dma_malloc() or its variants |
| src_lba_list | an array of source LBAs for processing. Must be allocated through spdk_dma_malloc() or its variants |
| num_lbas | number of LBAs stored in src_lba_list and dst_lba_list |
| cb_fn | callback function to invoke when the I/O is completed |
| cb_arg | argument to pass to the callback function |
| io_flags | set flags, defined by the SPDK_OCSSD_IO_FLAGS_* entries in spdk/nvme_ocssd_spec.h, for this I/O. |
| int spdk_nvme_ocssd_ns_cmd_vector_read | ( | struct spdk_nvme_ns * | ns, |
| struct spdk_nvme_qpair * | qpair, | ||
| void * | buffer, | ||
| uint64_t * | lba_list, | ||
| uint32_t | num_lbas, | ||
| spdk_nvme_cmd_cb | cb_fn, | ||
| void * | cb_arg, | ||
| uint32_t | io_flags ) |
Submits a vector read command to the specified NVMe namespace.
| ns | NVMe namespace to submit the command |
| qpair | I/O queue pair to submit the request |
| buffer | virtual address pointer to the data payload |
| lba_list | an array of LBAs for processing. Must be allocated through spdk_dma_malloc() or its variants |
| num_lbas | number of LBAs stored in lba_list |
| cb_fn | callback function to invoke when the I/O is completed |
| cb_arg | argument to pass to the callback function |
| io_flags | set flags, defined by the SPDK_OCSSD_IO_FLAGS_* entries in spdk/nvme_ocssd_spec.h, for this I/O. |
| int spdk_nvme_ocssd_ns_cmd_vector_read_with_md | ( | struct spdk_nvme_ns * | ns, |
| struct spdk_nvme_qpair * | qpair, | ||
| void * | buffer, | ||
| void * | metadata, | ||
| uint64_t * | lba_list, | ||
| uint32_t | num_lbas, | ||
| spdk_nvme_cmd_cb | cb_fn, | ||
| void * | cb_arg, | ||
| uint32_t | io_flags ) |
Submits a vector read command to the specified NVMe namespace.
| ns | NVMe namespace to submit the command |
| qpair | I/O queue pair to submit the request |
| buffer | virtual address pointer to the data payload |
| metadata | virtual address pointer to the metadata payload, the length of metadata is specified by spdk_nvme_ns_get_md_size() |
| lba_list | an array of LBAs for processing. Must be allocated through spdk_dma_malloc() or its variants |
| num_lbas | number of LBAs stored in lba_list |
| cb_fn | callback function to invoke when the I/O is completed |
| cb_arg | argument to pass to the callback function |
| io_flags | set flags, defined by the SPDK_OCSSD_IO_FLAGS_* entries in spdk/nvme_ocssd_spec.h, for this I/O. |
| int spdk_nvme_ocssd_ns_cmd_vector_reset | ( | struct spdk_nvme_ns * | ns, |
| struct spdk_nvme_qpair * | qpair, | ||
| uint64_t * | lba_list, | ||
| uint32_t | num_lbas, | ||
| struct spdk_ocssd_chunk_information_entry * | chunk_info, | ||
| spdk_nvme_cmd_cb | cb_fn, | ||
| void * | cb_arg ) |
Submits a vector reset command to the specified NVMe namespace.
| ns | NVMe namespace to submit the command |
| qpair | I/O queue pair to submit the request |
| lba_list | an array of LBAs for processing. LBAs must correspond to the start of chunks to reset. Must be allocated through spdk_dma_malloc() or its variants |
| num_lbas | number of LBAs stored in lba_list |
| chunk_info | an array of chunk info on DMA-able memory |
| cb_fn | callback function to invoke when the I/O is completed |
| cb_arg | argument to pass to the callback function |
| int spdk_nvme_ocssd_ns_cmd_vector_write | ( | struct spdk_nvme_ns * | ns, |
| struct spdk_nvme_qpair * | qpair, | ||
| void * | buffer, | ||
| uint64_t * | lba_list, | ||
| uint32_t | num_lbas, | ||
| spdk_nvme_cmd_cb | cb_fn, | ||
| void * | cb_arg, | ||
| uint32_t | io_flags ) |
Submits a vector write command to the specified NVMe namespace.
| ns | NVMe namespace to submit the command |
| qpair | I/O queue pair to submit the request |
| buffer | virtual address pointer to the data payload |
| lba_list | an array of LBAs for processing. Must be allocated through spdk_dma_malloc() or its variants |
| num_lbas | number of LBAs stored in lba_list |
| cb_fn | callback function to invoke when the I/O is completed |
| cb_arg | argument to pass to the callback function |
| io_flags | set flags, defined by the SPDK_OCSSD_IO_FLAGS_* entries in spdk/nvme_ocssd_spec.h, for this I/O. |
| int spdk_nvme_ocssd_ns_cmd_vector_write_with_md | ( | struct spdk_nvme_ns * | ns, |
| struct spdk_nvme_qpair * | qpair, | ||
| void * | buffer, | ||
| void * | metadata, | ||
| uint64_t * | lba_list, | ||
| uint32_t | num_lbas, | ||
| spdk_nvme_cmd_cb | cb_fn, | ||
| void * | cb_arg, | ||
| uint32_t | io_flags ) |
Submits a vector write command to the specified NVMe namespace.
| ns | NVMe namespace to submit the command |
| qpair | I/O queue pair to submit the request |
| buffer | virtual address pointer to the data payload |
| metadata | virtual address pointer to the metadata payload, the length of metadata is specified by spdk_nvme_ns_get_md_size() |
| lba_list | an array of LBAs for processing. Must be allocated through spdk_dma_malloc() or its variants |
| num_lbas | number of LBAs stored in lba_list |
| cb_fn | callback function to invoke when the I/O is completed |
| cb_arg | argument to pass to the callback function |
| io_flags | set flags, defined by the SPDK_OCSSD_IO_FLAGS_* entries in spdk/nvme_ocssd_spec.h, for this I/O. |