lib/nvme: restore spdk_nvme_ctrlr_get_registers
This function was intended to be deleted as unused, however it can be useful for debug and test capabilities. Its declaration was left in header file, so just adding implementation for PCIE and VFIO USER transports. Signed-off-by: Szulik, Maciej <maciej.szulik@intel.com> Change-Id: I670acb53c2f88a844525a0ecea27143b055f117b Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17400 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
This commit is contained in:
parent
414ff9bc23
commit
7858e18b05
@ -4140,6 +4140,8 @@ struct spdk_nvme_transport_ops {
|
|||||||
int array_size);
|
int array_size);
|
||||||
|
|
||||||
int (*ctrlr_ready)(struct spdk_nvme_ctrlr *ctrlr);
|
int (*ctrlr_ready)(struct spdk_nvme_ctrlr *ctrlr);
|
||||||
|
|
||||||
|
volatile struct spdk_nvme_registers *(*ctrlr_get_registers)(struct spdk_nvme_ctrlr *ctrlr);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -148,6 +148,14 @@ nvme_pcie_reg_addr(struct spdk_nvme_ctrlr *ctrlr, uint32_t offset)
|
|||||||
return (volatile void *)((uintptr_t)pctrlr->regs + offset);
|
return (volatile void *)((uintptr_t)pctrlr->regs + offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static volatile struct spdk_nvme_registers *
|
||||||
|
nvme_pcie_ctrlr_get_registers(struct spdk_nvme_ctrlr *ctrlr)
|
||||||
|
{
|
||||||
|
struct nvme_pcie_ctrlr *pctrlr = nvme_pcie_ctrlr(ctrlr);
|
||||||
|
|
||||||
|
return pctrlr->regs;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
nvme_pcie_ctrlr_set_reg_4(struct spdk_nvme_ctrlr *ctrlr, uint32_t offset, uint32_t value)
|
nvme_pcie_ctrlr_set_reg_4(struct spdk_nvme_ctrlr *ctrlr, uint32_t offset, uint32_t value)
|
||||||
{
|
{
|
||||||
@ -1067,6 +1075,7 @@ const struct spdk_nvme_transport_ops pcie_ops = {
|
|||||||
.ctrlr_destruct = nvme_pcie_ctrlr_destruct,
|
.ctrlr_destruct = nvme_pcie_ctrlr_destruct,
|
||||||
.ctrlr_enable = nvme_pcie_ctrlr_enable,
|
.ctrlr_enable = nvme_pcie_ctrlr_enable,
|
||||||
|
|
||||||
|
.ctrlr_get_registers = nvme_pcie_ctrlr_get_registers,
|
||||||
.ctrlr_set_reg_4 = nvme_pcie_ctrlr_set_reg_4,
|
.ctrlr_set_reg_4 = nvme_pcie_ctrlr_set_reg_4,
|
||||||
.ctrlr_set_reg_8 = nvme_pcie_ctrlr_set_reg_8,
|
.ctrlr_set_reg_8 = nvme_pcie_ctrlr_set_reg_8,
|
||||||
.ctrlr_get_reg_4 = nvme_pcie_ctrlr_get_reg_4,
|
.ctrlr_get_reg_4 = nvme_pcie_ctrlr_get_reg_4,
|
||||||
|
@ -853,3 +853,15 @@ spdk_nvme_transport_set_opts(const struct spdk_nvme_transport_opts *opts, size_t
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
volatile struct spdk_nvme_registers *
|
||||||
|
spdk_nvme_ctrlr_get_registers(struct spdk_nvme_ctrlr *ctrlr)
|
||||||
|
{
|
||||||
|
const struct spdk_nvme_transport *transport = nvme_get_transport(ctrlr->trid.trstring);
|
||||||
|
|
||||||
|
if (transport->ops.ctrlr_get_registers) {
|
||||||
|
return transport->ops.ctrlr_get_registers(ctrlr);
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
@ -32,6 +32,14 @@ nvme_vfio_ctrlr(struct spdk_nvme_ctrlr *ctrlr)
|
|||||||
return SPDK_CONTAINEROF(pctrlr, struct nvme_vfio_ctrlr, pctrlr);
|
return SPDK_CONTAINEROF(pctrlr, struct nvme_vfio_ctrlr, pctrlr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static volatile struct spdk_nvme_registers *
|
||||||
|
nvme_vfio_ctrlr_get_registers(struct spdk_nvme_ctrlr *ctrlr)
|
||||||
|
{
|
||||||
|
struct nvme_vfio_ctrlr *vctrlr = nvme_vfio_ctrlr(ctrlr);
|
||||||
|
|
||||||
|
return vctrlr->pctrlr.regs;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
nvme_vfio_ctrlr_set_reg_4(struct spdk_nvme_ctrlr *ctrlr, uint32_t offset, uint32_t value)
|
nvme_vfio_ctrlr_set_reg_4(struct spdk_nvme_ctrlr *ctrlr, uint32_t offset, uint32_t value)
|
||||||
{
|
{
|
||||||
@ -321,6 +329,7 @@ const struct spdk_nvme_transport_ops vfio_ops = {
|
|||||||
.ctrlr_destruct = nvme_vfio_ctrlr_destruct,
|
.ctrlr_destruct = nvme_vfio_ctrlr_destruct,
|
||||||
.ctrlr_enable = nvme_vfio_ctrlr_enable,
|
.ctrlr_enable = nvme_vfio_ctrlr_enable,
|
||||||
|
|
||||||
|
.ctrlr_get_registers = nvme_vfio_ctrlr_get_registers,
|
||||||
.ctrlr_set_reg_4 = nvme_vfio_ctrlr_set_reg_4,
|
.ctrlr_set_reg_4 = nvme_vfio_ctrlr_set_reg_4,
|
||||||
.ctrlr_set_reg_8 = nvme_vfio_ctrlr_set_reg_8,
|
.ctrlr_set_reg_8 = nvme_vfio_ctrlr_set_reg_8,
|
||||||
.ctrlr_get_reg_4 = nvme_vfio_ctrlr_get_reg_4,
|
.ctrlr_get_reg_4 = nvme_vfio_ctrlr_get_reg_4,
|
||||||
|
@ -117,6 +117,7 @@
|
|||||||
spdk_nvme_ctrlr_set_remove_cb;
|
spdk_nvme_ctrlr_set_remove_cb;
|
||||||
spdk_nvme_ctrlr_get_memory_domains;
|
spdk_nvme_ctrlr_get_memory_domains;
|
||||||
spdk_nvme_ctrlr_get_discovery_log_page;
|
spdk_nvme_ctrlr_get_discovery_log_page;
|
||||||
|
spdk_nvme_ctrlr_get_registers;
|
||||||
|
|
||||||
spdk_nvme_poll_group_create;
|
spdk_nvme_poll_group_create;
|
||||||
spdk_nvme_poll_group_add;
|
spdk_nvme_poll_group_add;
|
||||||
|
Loading…
Reference in New Issue
Block a user