env: add spdk_pci_get_driver()

An alternative to spdk_pci_*_get_driver();

Change-Id: I20a80b3c655a37fb1c76da21c2b70d5678041fab
Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3186
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:
Darek Stojaczyk 2020-07-03 00:38:36 +02:00 committed by Tomasz Zawadzki
parent e6decf684a
commit 3498c0a886
3 changed files with 20 additions and 0 deletions

View File

@ -733,6 +733,11 @@ struct spdk_pci_driver *spdk_pci_idxd_get_driver(void);
*/
struct spdk_pci_driver *spdk_pci_virtio_get_driver(void);
/**
* Get PCI driver by name (e.g. "nvme", "vmd", "ioat").
*/
struct spdk_pci_driver *spdk_pci_get_driver(const char *name);
/**
* Enumerate all PCI devices supported by the provided driver and try to
* attach those that weren't attached yet. The provided callback will be

View File

@ -177,6 +177,20 @@ pci_driver_register(struct spdk_pci_driver *driver)
TAILQ_INSERT_TAIL(&g_pci_drivers, driver, tailq);
}
struct spdk_pci_driver *
spdk_pci_get_driver(const char *name)
{
struct spdk_pci_driver *driver;
TAILQ_FOREACH(driver, &g_pci_drivers, tailq) {
if (strcmp(driver->name, name) == 0) {
return driver;
}
}
return NULL;
}
static void
pci_device_rte_hotremove(const char *device_name,
enum rte_dev_event_type event,

View File

@ -52,6 +52,7 @@
spdk_ring_dequeue;
spdk_iommu_is_enabled;
spdk_vtophys;
spdk_pci_get_driver;
spdk_pci_nvme_get_driver;
spdk_pci_vmd_get_driver;
spdk_pci_idxd_get_driver;