Commit 3498c0a8 authored by Darek Stojaczyk's avatar Darek Stojaczyk Committed by Tomasz Zawadzki
Browse files

env: add spdk_pci_get_driver()



An alternative to spdk_pci_*_get_driver();

Change-Id: I20a80b3c655a37fb1c76da21c2b70d5678041fab
Signed-off-by: default avatarDarek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3186


Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarPaul Luse <paul.e.luse@intel.com>
Reviewed-by: default avatarJacek Kalwas <jacek.kalwas@intel.com>
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent e6decf68
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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
+14 −0
Original line number Diff line number Diff line
@@ -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,
+1 −0
Original line number Diff line number Diff line
@@ -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;