diff --git a/include/spdk/nvme.h b/include/spdk/nvme.h index 3ae2b733c..2edbb6531 100644 --- a/include/spdk/nvme.h +++ b/include/spdk/nvme.h @@ -1140,6 +1140,15 @@ const struct spdk_nvme_ctrlr_data *spdk_nvme_ctrlr_get_data(struct spdk_nvme_ctr */ union spdk_nvme_csts_register spdk_nvme_ctrlr_get_regs_csts(struct spdk_nvme_ctrlr *ctrlr); +/** + * Get the NVMe controller CC (Configuration) register. + * + * \param ctrlr Opaque handle to NVMe controller. + * + * \return the NVMe controller CC (Configuration) register. + */ +union spdk_nvme_cc_register spdk_nvme_ctrlr_get_regs_cc(struct spdk_nvme_ctrlr *ctrlr); + /** * Get the NVMe controller CAP (Capabilities) register. * diff --git a/lib/nvme/nvme_ctrlr.c b/lib/nvme/nvme_ctrlr.c index 7e06eba96..9e55b30ff 100644 --- a/lib/nvme/nvme_ctrlr.c +++ b/lib/nvme/nvme_ctrlr.c @@ -3908,6 +3908,16 @@ union spdk_nvme_csts_register spdk_nvme_ctrlr_get_regs_csts(struct spdk_nvme_ctr return csts; } +union spdk_nvme_cc_register spdk_nvme_ctrlr_get_regs_cc(struct spdk_nvme_ctrlr *ctrlr) +{ + union spdk_nvme_cc_register cc; + + if (nvme_ctrlr_get_cc(ctrlr, &cc)) { + cc.raw = SPDK_NVME_INVALID_REGISTER_VALUE; + } + return cc; +} + union spdk_nvme_cap_register spdk_nvme_ctrlr_get_regs_cap(struct spdk_nvme_ctrlr *ctrlr) { return ctrlr->cap; diff --git a/lib/nvme/spdk_nvme.map b/lib/nvme/spdk_nvme.map index cfe2dae41..b5e7b1836 100644 --- a/lib/nvme/spdk_nvme.map +++ b/lib/nvme/spdk_nvme.map @@ -42,6 +42,7 @@ spdk_nvme_ctrlr_is_failed; spdk_nvme_ctrlr_get_data; spdk_nvme_ctrlr_get_regs_csts; + spdk_nvme_ctrlr_get_regs_cc; spdk_nvme_ctrlr_get_regs_cap; spdk_nvme_ctrlr_get_regs_vs; spdk_nvme_ctrlr_get_regs_cmbsz;