env: fix pci driver registration

Registration macro now generates function based on driver's name.
It allows to have multiple registration within single source file.
Similar pattern is used e.g. by SPDK_NVMF_TRANSPORT_REGISTER.

Signed-off-by: Jacek Kalwas <jacek.kalwas@intel.com>
Change-Id: Ied0887e8dae7fe9ca1517313be5eff8f218b7e98
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3895
Community-CI: Mellanox Build Bot
Community-CI: Broadcom CI
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>
This commit is contained in:
Jacek Kalwas 2020-08-22 08:26:47 +02:00 committed by Tomasz Zawadzki
parent b3e230a116
commit 477d9500a3
6 changed files with 10 additions and 10 deletions

View File

@ -699,17 +699,17 @@ struct spdk_pci_device {
typedef int (*spdk_pci_enum_cb)(void *enum_ctx, struct spdk_pci_device *pci_dev);
#define SPDK_PCI_DEVICE(vend, dev) \
#define SPDK_PCI_DEVICE(vend, dev) \
.class_id = SPDK_PCI_CLASS_ANY_ID, \
.vendor_id = (vend), \
.device_id = (dev), \
.subvendor_id = SPDK_PCI_ANY_ID, \
.subdevice_id = SPDK_PCI_ANY_ID
#define SPDK_PCI_DRIVER_REGISTER(name, id_table, flags) \
__attribute__((constructor)) static void pci_drv ## _register(void) \
{ \
spdk_pci_driver_register(name, id_table, flags); \
#define SPDK_PCI_DRIVER_REGISTER(name, id_table, flags) \
__attribute__((constructor)) static void _spdk_pci_driver_register_##name(void) \
{ \
spdk_pci_driver_register(#name, id_table, flags); \
}
/**

View File

@ -47,4 +47,4 @@ spdk_pci_idxd_get_driver(void)
return spdk_pci_get_driver("idxd");
}
SPDK_PCI_DRIVER_REGISTER("idxd", idxd_driver_id, SPDK_PCI_DRIVER_NEED_MAPPING);
SPDK_PCI_DRIVER_REGISTER(idxd, idxd_driver_id, SPDK_PCI_DRIVER_NEED_MAPPING);

View File

@ -95,4 +95,4 @@ spdk_pci_ioat_get_driver(void)
return spdk_pci_get_driver("ioat");
}
SPDK_PCI_DRIVER_REGISTER("ioat", ioat_driver_id, SPDK_PCI_DRIVER_NEED_MAPPING);
SPDK_PCI_DRIVER_REGISTER(ioat, ioat_driver_id, SPDK_PCI_DRIVER_NEED_MAPPING);

View File

@ -49,5 +49,5 @@ spdk_pci_virtio_get_driver(void)
return spdk_pci_get_driver("virtio");
}
SPDK_PCI_DRIVER_REGISTER("virtio", virtio_pci_driver_id,
SPDK_PCI_DRIVER_REGISTER(virtio, virtio_pci_driver_id,
SPDK_PCI_DRIVER_NEED_MAPPING | SPDK_PCI_DRIVER_WC_ACTIVATE);

View File

@ -46,5 +46,5 @@ spdk_pci_vmd_get_driver(void)
return spdk_pci_get_driver("vmd");
}
SPDK_PCI_DRIVER_REGISTER("vmd", vmd_pci_driver_id,
SPDK_PCI_DRIVER_REGISTER(vmd, vmd_pci_driver_id,
SPDK_PCI_DRIVER_NEED_MAPPING | SPDK_PCI_DRIVER_WC_ACTIVATE);

View File

@ -2555,7 +2555,7 @@ static struct spdk_pci_id nvme_pci_driver_id[] = {
{ .vendor_id = 0, /* sentinel */ },
};
SPDK_PCI_DRIVER_REGISTER("nvme", nvme_pci_driver_id,
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 = {