I've continued the work done by Shreyansh for bus abstraction and PCI implementation. This change has two benefits: - ease future introduction of new bus - clean existing buses (only PCI here) The same kind of work must be done on VDEV in order to move these implementations as bus drivers.
changes in v11: - fixes for BSD - remove useless bus object retrieving - remove useless bus reference in rte_device - some rewording and patch reordering Unfortunately, it is not ready to be integrated in 17.02. More specifically: - the tests need some review/rework - the PCI implementation requires more work - the documentation must be updated However there are some new buses waiting for the bus abstraction, which is simple and good enough. That's why I have isolated the generic bus model in first patches and will apply them in 17.02-rc1. It will allow to base new buses on top of rte_bus. Shreyansh Jain (13): bus: introduce bus abstraction bus: add scanning bus: add probing app/test: check bus registration app/test: check bus scan app/test: check bus probe pci: split match and probe pci: remove loop over drivers in device detach pci: add bus driver app/test: add PCI bus driver pci: use bus driver for scan/probe pci: use bus driver for attach/detach doc: remove deprecation notice for rte_bus MAINTAINERS | 1 + app/test/Makefile | 2 +- app/test/autotest_data.py | 6 + app/test/test.h | 1 + app/test/test_bus.c | 678 ++++++++++++++++++++++++ app/test/test_pci.c | 164 ++++-- doc/guides/rel_notes/deprecation.rst | 5 - doc/guides/rel_notes/release_17_02.rst | 2 +- lib/librte_eal/bsdapp/eal/Makefile | 3 +- lib/librte_eal/bsdapp/eal/eal.c | 13 +- lib/librte_eal/bsdapp/eal/eal_pci.c | 43 +- lib/librte_eal/bsdapp/eal/rte_eal_version.map | 15 +- lib/librte_eal/common/Makefile | 2 +- lib/librte_eal/common/eal_common_bus.c | 133 +++++ lib/librte_eal/common/eal_common_dev.c | 56 +- lib/librte_eal/common/eal_common_pci.c | 350 +++++++----- lib/librte_eal/common/eal_private.h | 10 - lib/librte_eal/common/include/rte_bus.h | 192 +++++++ lib/librte_eal/common/include/rte_pci.h | 142 ++++- lib/librte_eal/linuxapp/eal/Makefile | 3 +- lib/librte_eal/linuxapp/eal/eal.c | 13 +- lib/librte_eal/linuxapp/eal/eal_pci.c | 50 +- lib/librte_eal/linuxapp/eal/rte_eal_version.map | 15 +- 23 files changed, 1600 insertions(+), 299 deletions(-) create mode 100644 app/test/test_bus.c create mode 100644 lib/librte_eal/common/eal_common_bus.c create mode 100644 lib/librte_eal/common/include/rte_bus.h -- 2.7.0