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. |