env_dpdk: move NVMe PCI driver definition to the nvme lib
Now that drivers can be registered from upper layers there's no need to keep them centralized inside env. (check_format.sh complains that spdk_pci_nvme_get_driver() shouldn't start with the spdk_ prefix - to workaround that we move the function declaration from one place in env.h to another - that's enough to convince check_format it really is a public function) Change-Id: If86aebd6c997349569c71430ec815b413eb44ef8 Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3187 Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com> Reviewed-by: Jacek Kalwas <jacek.kalwas@intel.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
f425f16385
commit
cdffd22581
@ -719,13 +719,6 @@ __attribute__((constructor)) static void pci_drv ## _register(void) \
|
|||||||
spdk_pci_driver_register(name, id_table, flags); \
|
spdk_pci_driver_register(name, id_table, flags); \
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the NVMe PCI driver object.
|
|
||||||
*
|
|
||||||
* \return PCI driver.
|
|
||||||
*/
|
|
||||||
struct spdk_pci_driver *spdk_pci_nvme_get_driver(void);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the VMD PCI driver object.
|
* Get the VMD PCI driver object.
|
||||||
*
|
*
|
||||||
@ -759,6 +752,13 @@ struct spdk_pci_driver *spdk_pci_virtio_get_driver(void);
|
|||||||
*/
|
*/
|
||||||
struct spdk_pci_driver *spdk_pci_get_driver(const char *name);
|
struct spdk_pci_driver *spdk_pci_get_driver(const char *name);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the NVMe PCI driver object.
|
||||||
|
*
|
||||||
|
* \return PCI driver.
|
||||||
|
*/
|
||||||
|
struct spdk_pci_driver *spdk_pci_nvme_get_driver(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enumerate all PCI devices supported by the provided driver and try to
|
* Enumerate all PCI devices supported by the provided driver and try to
|
||||||
* attach those that weren't attached yet. The provided callback will be
|
* attach those that weren't attached yet. The provided callback will be
|
||||||
|
@ -39,7 +39,7 @@ SO_MINOR := 0
|
|||||||
|
|
||||||
CFLAGS += $(ENV_CFLAGS)
|
CFLAGS += $(ENV_CFLAGS)
|
||||||
C_SRCS = env.c memory.c pci.c init.c threads.c
|
C_SRCS = env.c memory.c pci.c init.c threads.c
|
||||||
C_SRCS += pci_nvme.c pci_ioat.c pci_virtio.c pci_vmd.c pci_idxd.c
|
C_SRCS += pci_ioat.c pci_virtio.c pci_vmd.c pci_idxd.c
|
||||||
LIBNAME = env_dpdk
|
LIBNAME = env_dpdk
|
||||||
|
|
||||||
SPDK_MAP_FILE = $(abspath $(CURDIR)/spdk_env_dpdk.map)
|
SPDK_MAP_FILE = $(abspath $(CURDIR)/spdk_env_dpdk.map)
|
||||||
|
@ -188,6 +188,12 @@ spdk_pci_driver_register(const char *name, struct spdk_pci_id *id_table, uint32_
|
|||||||
TAILQ_INSERT_TAIL(&g_pci_drivers, driver, tailq);
|
TAILQ_INSERT_TAIL(&g_pci_drivers, driver, tailq);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct spdk_pci_driver *
|
||||||
|
spdk_pci_nvme_get_driver(void)
|
||||||
|
{
|
||||||
|
return spdk_pci_get_driver("nvme");
|
||||||
|
}
|
||||||
|
|
||||||
struct spdk_pci_driver *
|
struct spdk_pci_driver *
|
||||||
spdk_pci_get_driver(const char *name)
|
spdk_pci_get_driver(const char *name)
|
||||||
{
|
{
|
||||||
|
@ -1,56 +0,0 @@
|
|||||||
/*-
|
|
||||||
* BSD LICENSE
|
|
||||||
*
|
|
||||||
* Copyright (c) Intel Corporation.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in
|
|
||||||
* the documentation and/or other materials provided with the
|
|
||||||
* distribution.
|
|
||||||
* * Neither the name of Intel Corporation nor the names of its
|
|
||||||
* contributors may be used to endorse or promote products derived
|
|
||||||
* from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
||||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
||||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
||||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
||||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
||||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "env_internal.h"
|
|
||||||
|
|
||||||
#include "spdk/pci_ids.h"
|
|
||||||
|
|
||||||
static struct spdk_pci_id nvme_pci_driver_id[] = {
|
|
||||||
{
|
|
||||||
.class_id = SPDK_PCI_CLASS_NVME,
|
|
||||||
.vendor_id = SPDK_PCI_ANY_ID,
|
|
||||||
.device_id = SPDK_PCI_ANY_ID,
|
|
||||||
.subvendor_id = SPDK_PCI_ANY_ID,
|
|
||||||
.subdevice_id = SPDK_PCI_ANY_ID,
|
|
||||||
},
|
|
||||||
{ .vendor_id = 0, /* sentinel */ },
|
|
||||||
};
|
|
||||||
|
|
||||||
struct spdk_pci_driver *
|
|
||||||
spdk_pci_nvme_get_driver(void)
|
|
||||||
{
|
|
||||||
return spdk_pci_get_driver("nvme");
|
|
||||||
}
|
|
||||||
|
|
||||||
SPDK_PCI_DRIVER_REGISTER("nvme", nvme_pci_driver_id,
|
|
||||||
SPDK_PCI_DRIVER_NEED_MAPPING | SPDK_PCI_DRIVER_WC_ACTIVATE);
|
|
@ -2546,6 +2546,20 @@ nvme_pcie_poll_group_destroy(struct spdk_nvme_transport_poll_group *tgroup)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static struct spdk_pci_id nvme_pci_driver_id[] = {
|
||||||
|
{
|
||||||
|
.class_id = SPDK_PCI_CLASS_NVME,
|
||||||
|
.vendor_id = SPDK_PCI_ANY_ID,
|
||||||
|
.device_id = SPDK_PCI_ANY_ID,
|
||||||
|
.subvendor_id = SPDK_PCI_ANY_ID,
|
||||||
|
.subdevice_id = SPDK_PCI_ANY_ID,
|
||||||
|
},
|
||||||
|
{ .vendor_id = 0, /* sentinel */ },
|
||||||
|
};
|
||||||
|
|
||||||
|
SPDK_PCI_DRIVER_REGISTER("nvme", nvme_pci_driver_id,
|
||||||
|
SPDK_PCI_DRIVER_NEED_MAPPING | SPDK_PCI_DRIVER_WC_ACTIVATE);
|
||||||
|
|
||||||
const struct spdk_nvme_transport_ops pcie_ops = {
|
const struct spdk_nvme_transport_ops pcie_ops = {
|
||||||
.name = "PCIE",
|
.name = "PCIE",
|
||||||
.type = SPDK_NVME_TRANSPORT_PCIE,
|
.type = SPDK_NVME_TRANSPORT_PCIE,
|
||||||
|
@ -47,6 +47,8 @@ void free_cores(void);
|
|||||||
|
|
||||||
DEFINE_STUB(spdk_process_is_primary, bool, (void), true)
|
DEFINE_STUB(spdk_process_is_primary, bool, (void), true)
|
||||||
DEFINE_STUB(spdk_memzone_lookup, void *, (const char *name), NULL)
|
DEFINE_STUB(spdk_memzone_lookup, void *, (const char *name), NULL)
|
||||||
|
DEFINE_STUB_V(spdk_pci_driver_register, (const char *name, struct spdk_pci_id *id_table,
|
||||||
|
uint32_t flags));
|
||||||
DEFINE_STUB(spdk_pci_nvme_get_driver, struct spdk_pci_driver *, (void), NULL)
|
DEFINE_STUB(spdk_pci_nvme_get_driver, struct spdk_pci_driver *, (void), NULL)
|
||||||
DEFINE_STUB(spdk_pci_ioat_get_driver, struct spdk_pci_driver *, (void), NULL)
|
DEFINE_STUB(spdk_pci_ioat_get_driver, struct spdk_pci_driver *, (void), NULL)
|
||||||
DEFINE_STUB(spdk_pci_virtio_get_driver, struct spdk_pci_driver *, (void), NULL)
|
DEFINE_STUB(spdk_pci_virtio_get_driver, struct spdk_pci_driver *, (void), NULL)
|
||||||
|
Loading…
Reference in New Issue
Block a user