Loading include/spdk/nvme.h +5 −0 Original line number Diff line number Diff line Loading @@ -287,6 +287,11 @@ int spdk_nvme_ctrlr_reset(struct spdk_nvme_ctrlr *ctrlr); */ const struct spdk_nvme_ctrlr_data *spdk_nvme_ctrlr_get_data(struct spdk_nvme_ctrlr *ctrlr); /** * \brief Get the NVMe controller CSTS (Status) register. */ union spdk_nvme_csts_register spdk_nvme_ctrlr_get_regs_csts(struct spdk_nvme_ctrlr *ctrlr); /** * \brief Get the NVMe controller CAP (Capabilities) register. */ Loading lib/bdev/nvme/blockdev_nvme.c +31 −3 Original line number Diff line number Diff line Loading @@ -345,10 +345,12 @@ blockdev_nvme_dump_config_json(struct spdk_bdev *bdev, struct spdk_json_write_ct const struct spdk_nvme_ctrlr_data *cdata; struct spdk_nvme_ns *ns; union spdk_nvme_vs_register vs; union spdk_nvme_csts_register csts; char buf[128]; cdata = spdk_nvme_ctrlr_get_data(nvme_bdev->ctrlr); vs = spdk_nvme_ctrlr_get_regs_vs(nvme_bdev->ctrlr); csts = spdk_nvme_ctrlr_get_regs_csts(nvme_bdev->ctrlr); ns = nvme_bdev->ns; spdk_json_write_name(w, "nvme"); Loading @@ -359,6 +361,9 @@ blockdev_nvme_dump_config_json(struct spdk_bdev *bdev, struct spdk_json_write_ct nvme_dev->pci_addr.bus, nvme_dev->pci_addr.dev, nvme_dev->pci_addr.func); spdk_json_write_name(w, "ctrlr_data"); spdk_json_write_object_begin(w); spdk_json_write_name(w, "vendor_id"); spdk_json_write_string_fmt(w, "0x%04x", cdata->vid); Loading @@ -377,6 +382,11 @@ blockdev_nvme_dump_config_json(struct spdk_bdev *bdev, struct spdk_json_write_ct spdk_json_write_name(w, "firmware_revision"); spdk_json_write_string(w, buf); spdk_json_write_object_end(w); spdk_json_write_name(w, "vs"); spdk_json_write_object_begin(w); spdk_json_write_name(w, "nvme_version"); if (vs.bits.ter) { spdk_json_write_string_fmt(w, "%u.%u.%u", vs.bits.mjr, vs.bits.mnr, vs.bits.ter); Loading @@ -384,17 +394,35 @@ blockdev_nvme_dump_config_json(struct spdk_bdev *bdev, struct spdk_json_write_ct spdk_json_write_string_fmt(w, "%u.%u", vs.bits.mjr, vs.bits.mnr); } spdk_json_write_name(w, "nsid"); spdk_json_write_object_end(w); spdk_json_write_name(w, "csts"); spdk_json_write_object_begin(w); spdk_json_write_name(w, "rdy"); spdk_json_write_uint32(w, csts.bits.rdy); spdk_json_write_name(w, "cfs"); spdk_json_write_uint32(w, csts.bits.cfs); spdk_json_write_object_end(w); spdk_json_write_name(w, "ns_data"); spdk_json_write_object_begin(w); spdk_json_write_name(w, "id"); spdk_json_write_uint32(w, spdk_nvme_ns_get_id(ns)); spdk_json_write_name(w, "ns_block_size"); spdk_json_write_name(w, "block_size"); spdk_json_write_uint32(w, spdk_nvme_ns_get_sector_size(ns)); spdk_json_write_name(w, "ns_total_size"); spdk_json_write_name(w, "total_size"); spdk_json_write_uint64(w, spdk_nvme_ns_get_size(ns)); spdk_json_write_object_end(w); spdk_json_write_object_end(w); return 0; } Loading lib/nvme/nvme_ctrlr.c +10 −0 Original line number Diff line number Diff line Loading @@ -1393,6 +1393,16 @@ spdk_nvme_ctrlr_get_data(struct spdk_nvme_ctrlr *ctrlr) return &ctrlr->cdata; } union spdk_nvme_csts_register spdk_nvme_ctrlr_get_regs_csts(struct spdk_nvme_ctrlr *ctrlr) { union spdk_nvme_csts_register csts; if (nvme_ctrlr_get_csts(ctrlr, &csts)) { csts.raw = 0; } return csts; } union spdk_nvme_cap_register spdk_nvme_ctrlr_get_regs_cap(struct spdk_nvme_ctrlr *ctrlr) { return ctrlr->cap; Loading Loading
include/spdk/nvme.h +5 −0 Original line number Diff line number Diff line Loading @@ -287,6 +287,11 @@ int spdk_nvme_ctrlr_reset(struct spdk_nvme_ctrlr *ctrlr); */ const struct spdk_nvme_ctrlr_data *spdk_nvme_ctrlr_get_data(struct spdk_nvme_ctrlr *ctrlr); /** * \brief Get the NVMe controller CSTS (Status) register. */ union spdk_nvme_csts_register spdk_nvme_ctrlr_get_regs_csts(struct spdk_nvme_ctrlr *ctrlr); /** * \brief Get the NVMe controller CAP (Capabilities) register. */ Loading
lib/bdev/nvme/blockdev_nvme.c +31 −3 Original line number Diff line number Diff line Loading @@ -345,10 +345,12 @@ blockdev_nvme_dump_config_json(struct spdk_bdev *bdev, struct spdk_json_write_ct const struct spdk_nvme_ctrlr_data *cdata; struct spdk_nvme_ns *ns; union spdk_nvme_vs_register vs; union spdk_nvme_csts_register csts; char buf[128]; cdata = spdk_nvme_ctrlr_get_data(nvme_bdev->ctrlr); vs = spdk_nvme_ctrlr_get_regs_vs(nvme_bdev->ctrlr); csts = spdk_nvme_ctrlr_get_regs_csts(nvme_bdev->ctrlr); ns = nvme_bdev->ns; spdk_json_write_name(w, "nvme"); Loading @@ -359,6 +361,9 @@ blockdev_nvme_dump_config_json(struct spdk_bdev *bdev, struct spdk_json_write_ct nvme_dev->pci_addr.bus, nvme_dev->pci_addr.dev, nvme_dev->pci_addr.func); spdk_json_write_name(w, "ctrlr_data"); spdk_json_write_object_begin(w); spdk_json_write_name(w, "vendor_id"); spdk_json_write_string_fmt(w, "0x%04x", cdata->vid); Loading @@ -377,6 +382,11 @@ blockdev_nvme_dump_config_json(struct spdk_bdev *bdev, struct spdk_json_write_ct spdk_json_write_name(w, "firmware_revision"); spdk_json_write_string(w, buf); spdk_json_write_object_end(w); spdk_json_write_name(w, "vs"); spdk_json_write_object_begin(w); spdk_json_write_name(w, "nvme_version"); if (vs.bits.ter) { spdk_json_write_string_fmt(w, "%u.%u.%u", vs.bits.mjr, vs.bits.mnr, vs.bits.ter); Loading @@ -384,17 +394,35 @@ blockdev_nvme_dump_config_json(struct spdk_bdev *bdev, struct spdk_json_write_ct spdk_json_write_string_fmt(w, "%u.%u", vs.bits.mjr, vs.bits.mnr); } spdk_json_write_name(w, "nsid"); spdk_json_write_object_end(w); spdk_json_write_name(w, "csts"); spdk_json_write_object_begin(w); spdk_json_write_name(w, "rdy"); spdk_json_write_uint32(w, csts.bits.rdy); spdk_json_write_name(w, "cfs"); spdk_json_write_uint32(w, csts.bits.cfs); spdk_json_write_object_end(w); spdk_json_write_name(w, "ns_data"); spdk_json_write_object_begin(w); spdk_json_write_name(w, "id"); spdk_json_write_uint32(w, spdk_nvme_ns_get_id(ns)); spdk_json_write_name(w, "ns_block_size"); spdk_json_write_name(w, "block_size"); spdk_json_write_uint32(w, spdk_nvme_ns_get_sector_size(ns)); spdk_json_write_name(w, "ns_total_size"); spdk_json_write_name(w, "total_size"); spdk_json_write_uint64(w, spdk_nvme_ns_get_size(ns)); spdk_json_write_object_end(w); spdk_json_write_object_end(w); return 0; } Loading
lib/nvme/nvme_ctrlr.c +10 −0 Original line number Diff line number Diff line Loading @@ -1393,6 +1393,16 @@ spdk_nvme_ctrlr_get_data(struct spdk_nvme_ctrlr *ctrlr) return &ctrlr->cdata; } union spdk_nvme_csts_register spdk_nvme_ctrlr_get_regs_csts(struct spdk_nvme_ctrlr *ctrlr) { union spdk_nvme_csts_register csts; if (nvme_ctrlr_get_csts(ctrlr, &csts)) { csts.raw = 0; } return csts; } union spdk_nvme_cap_register spdk_nvme_ctrlr_get_regs_cap(struct spdk_nvme_ctrlr *ctrlr) { return ctrlr->cap; Loading