diff --git a/lib/nvmf/ctrlr.c b/lib/nvmf/ctrlr.c index 218e18d86..0bc0a4478 100644 --- a/lib/nvmf/ctrlr.c +++ b/lib/nvmf/ctrlr.c @@ -1036,6 +1036,58 @@ spdk_nvmf_get_changed_ns_list_log_page(struct spdk_nvmf_ctrlr *ctrlr, memset(&ctrlr->changed_ns_list, 0, sizeof(ctrlr->changed_ns_list)); } +/* The structure can be modified if we provide support for other commands in future */ +static const struct spdk_nvme_cmds_and_effect_log_page g_cmds_and_effect_log_page = { + .admin_cmds_supported = { + /* CSUPP, LBCC, NCC, NIC, CCC, CSE */ + /* Get Log Page */ + [SPDK_NVME_OPC_GET_LOG_PAGE] = {1, 0, 0, 0, 0, 0, 0, 0}, + /* Identify */ + [SPDK_NVME_OPC_IDENTIFY] = {1, 0, 0, 0, 0, 0, 0, 0}, + /* Abort */ + [SPDK_NVME_OPC_ABORT] = {1, 0, 0, 0, 0, 0, 0, 0}, + /* Set Features */ + [SPDK_NVME_OPC_SET_FEATURES] = {1, 0, 0, 0, 0, 0, 0, 0}, + /* Get Features */ + [SPDK_NVME_OPC_GET_FEATURES] = {1, 0, 0, 0, 0, 0, 0, 0}, + /* Async Event Request */ + [SPDK_NVME_OPC_ASYNC_EVENT_REQUEST] = {1, 0, 0, 0, 0, 0, 0, 0}, + /* Keep Alive */ + [SPDK_NVME_OPC_KEEP_ALIVE] = {1, 0, 0, 0, 0, 0, 0, 0}, + }, + .io_cmds_supported = { + /* FLUSH */ + [SPDK_NVME_OPC_FLUSH] = {1, 1, 0, 0, 0, 0, 0, 0}, + /* WRITE */ + [SPDK_NVME_OPC_WRITE] = {1, 1, 0, 0, 0, 0, 0, 0}, + /* READ */ + [SPDK_NVME_OPC_READ] = {1, 0, 0, 0, 0, 0, 0, 0}, + /* WRITE ZEROES */ + [SPDK_NVME_OPC_WRITE_ZEROES] = {1, 1, 0, 0, 0, 0, 0, 0}, + /* DATASET MANAGEMENT */ + [SPDK_NVME_OPC_DATASET_MANAGEMENT] = {1, 1, 0, 0, 0, 0, 0, 0}, + }, +}; + +static void +spdk_nvmf_get_cmds_and_effects_log_page(void *buffer, + uint64_t offset, uint32_t length) +{ + uint32_t page_size = sizeof(struct spdk_nvme_cmds_and_effect_log_page); + size_t copy_len = 0; + size_t zero_len = length; + + if (offset < page_size) { + copy_len = spdk_min(page_size - offset, length); + zero_len -= copy_len; + memcpy(buffer, (char *)(&g_cmds_and_effect_log_page) + offset, copy_len); + } + + if (zero_len) { + memset((char *)buffer + copy_len, 0, zero_len); + } +} + static int spdk_nvmf_ctrlr_get_log_page(struct spdk_nvmf_request *req) { diff --git a/lib/nvmf/nvmf.c b/lib/nvmf/nvmf.c index b9ef19ebd..5b366cac5 100644 --- a/lib/nvmf/nvmf.c +++ b/lib/nvmf/nvmf.c @@ -608,58 +608,6 @@ spdk_nvmf_poll_group_resume_subsystem(struct spdk_nvmf_poll_group *group, return 0; } -/* The structure can be modified if we provide support for other commands in future */ -static const struct spdk_nvme_cmds_and_effect_log_page g_cmds_and_effect_log_page = { - .admin_cmds_supported = { - /* CSUPP, LBCC, NCC, NIC, CCC, CSE */ - /* Get Log Page */ - [SPDK_NVME_OPC_GET_LOG_PAGE] = {1, 0, 0, 0, 0, 0, 0, 0}, - /* Identify */ - [SPDK_NVME_OPC_IDENTIFY] = {1, 0, 0, 0, 0, 0, 0, 0}, - /* Abort */ - [SPDK_NVME_OPC_ABORT] = {1, 0, 0, 0, 0, 0, 0, 0}, - /* Set Features */ - [SPDK_NVME_OPC_SET_FEATURES] = {1, 0, 0, 0, 0, 0, 0, 0}, - /* Get Features */ - [SPDK_NVME_OPC_GET_FEATURES] = {1, 0, 0, 0, 0, 0, 0, 0}, - /* Async Event Request */ - [SPDK_NVME_OPC_ASYNC_EVENT_REQUEST] = {1, 0, 0, 0, 0, 0, 0, 0}, - /* Keep Alive */ - [SPDK_NVME_OPC_KEEP_ALIVE] = {1, 0, 0, 0, 0, 0, 0, 0}, - }, - .io_cmds_supported = { - /* FLUSH */ - [SPDK_NVME_OPC_FLUSH] = {1, 1, 0, 0, 0, 0, 0, 0}, - /* WRITE */ - [SPDK_NVME_OPC_WRITE] = {1, 1, 0, 0, 0, 0, 0, 0}, - /* READ */ - [SPDK_NVME_OPC_READ] = {1, 0, 0, 0, 0, 0, 0, 0}, - /* WRITE ZEROES */ - [SPDK_NVME_OPC_WRITE_ZEROES] = {1, 1, 0, 0, 0, 0, 0, 0}, - /* DATASET MANAGEMENT */ - [SPDK_NVME_OPC_DATASET_MANAGEMENT] = {1, 1, 0, 0, 0, 0, 0, 0}, - }, -}; - -void -spdk_nvmf_get_cmds_and_effects_log_page(void *buffer, - uint64_t offset, uint32_t length) -{ - uint32_t page_size = sizeof(struct spdk_nvme_cmds_and_effect_log_page); - size_t copy_len = 0; - size_t zero_len = length; - - if (offset < page_size) { - copy_len = spdk_min(page_size - offset, length); - zero_len -= copy_len; - memcpy(buffer, (char *)(&g_cmds_and_effect_log_page) + offset, copy_len); - } - - if (zero_len) { - memset((char *)buffer + copy_len, 0, zero_len); - } -} - SPDK_TRACE_REGISTER_FN(nvmf_trace) { spdk_trace_register_object(OBJECT_NVMF_IO, 'r'); diff --git a/lib/nvmf/nvmf_internal.h b/lib/nvmf/nvmf_internal.h index 5c5c7d332..39da80439 100644 --- a/lib/nvmf/nvmf_internal.h +++ b/lib/nvmf/nvmf_internal.h @@ -245,8 +245,6 @@ int spdk_nvmf_request_abort(struct spdk_nvmf_request *req); void spdk_nvmf_get_discovery_log_page(struct spdk_nvmf_tgt *tgt, void *buffer, uint64_t offset, uint32_t length); -void spdk_nvmf_get_cmds_and_effects_log_page(void *buffer, - uint64_t offset, uint32_t length); struct spdk_nvmf_qpair *spdk_nvmf_ctrlr_get_qpair(struct spdk_nvmf_ctrlr *ctrlr, uint16_t qid); void spdk_nvmf_ctrlr_destruct(struct spdk_nvmf_ctrlr *ctrlr); diff --git a/test/unit/lib/nvmf/ctrlr.c/ctrlr_ut.c b/test/unit/lib/nvmf/ctrlr.c/ctrlr_ut.c index 0d5be3152..fb2c6c81a 100644 --- a/test/unit/lib/nvmf/ctrlr.c/ctrlr_ut.c +++ b/test/unit/lib/nvmf/ctrlr.c/ctrlr_ut.c @@ -126,9 +126,6 @@ DEFINE_STUB(spdk_nvmf_bdev_ctrlr_identify_ns, DEFINE_STUB_V(spdk_nvmf_get_discovery_log_page, (struct spdk_nvmf_tgt *tgt, void *buffer, uint64_t offset, uint32_t length)) -DEFINE_STUB_V(spdk_nvmf_get_cmds_and_effects_log_page, - (void *buffer, uint64_t offset, uint32_t length)) - DEFINE_STUB(spdk_nvmf_request_complete, int, (struct spdk_nvmf_request *req),