On Thu, Jul 07, 2016 at 05:36:28PM +0200, Thomas Monjalon wrote: > Remove include of rte_pci.h in the generic header rte_dev.h > and move the macro DRIVER_REGISTER_PCI_TABLE in rte_pci.h. > > Fixes: cb6696d22023 ("drivers: update registration macro usage") > > Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com> > --- > lib/librte_eal/common/include/rte_dev.h | 6 +----- > lib/librte_eal/common/include/rte_pci.h | 5 +++++ > 2 files changed, 6 insertions(+), 5 deletions(-) > > diff --git a/lib/librte_eal/common/include/rte_dev.h > b/lib/librte_eal/common/include/rte_dev.h > index e6f0d4c..68ca7ef 100644 > --- a/lib/librte_eal/common/include/rte_dev.h > +++ b/lib/librte_eal/common/include/rte_dev.h > @@ -48,7 +48,7 @@ extern "C" { > > #include <stdio.h> > #include <sys/queue.h> > -#include <rte_pci.h> > + > #include <rte_log.h> > > __attribute__((format(printf, 2, 0))) > @@ -195,10 +195,6 @@ DRIVER_EXPORT_NAME(nm, __COUNTER__) > > #define DRV_EXP_TAG(name, tag) __##name##_##tag > > -#define DRIVER_REGISTER_PCI_TABLE(name, table) \ > -static const char DRV_EXP_TAG(name, pci_tbl_export)[] __attribute__((used)) > = \ > -RTE_STR(table) > - > #define DRIVER_REGISTER_PARAM_STRING(name, str) \ > static const char DRV_EXP_TAG(name, param_string_export)[] \ > __attribute__((used)) = str > diff --git a/lib/librte_eal/common/include/rte_pci.h > b/lib/librte_eal/common/include/rte_pci.h > index fa74962..3b0d26a 100644 > --- a/lib/librte_eal/common/include/rte_pci.h > +++ b/lib/librte_eal/common/include/rte_pci.h > @@ -188,6 +188,11 @@ struct rte_pci_device { > .subsystem_device_id = PCI_ANY_ID > #endif > > +#define DRIVER_REGISTER_PCI_TABLE(name, table) \ > +static const char __##name##_pci_tbl_export[] \ > + __attribute__((used)) = \ > + RTE_STR(table) > + > struct rte_pci_driver; > > /** > -- > 2.7.0 > >
This seems strange to me, in that its odd for the driver information export macros to be spread out in multiple locations. Specifically it enjoins the use of the DRV_EXP_TAG macro, which helps centralize tag naming. Perhaps the happy medium is to place all the export macros (includnig PMD_REGISTER_DRIVER) into its own pmd_register.h header?