mbox

[v5,00/27] Bus and device cleanup for 22.11

Message ID 20220905083540.2506490-1-david.marchand@redhat.com (mailing list archive)
Headers

Message

David Marchand Sept. 5, 2022, 8:35 a.m. UTC
  The rte_bus, rte_driver and rte_device objects are part of the public
ABI and this has proved to be a problem when needing to extend them.
This series hides them, and mark associated driver only API as internal.

A good amount of the patches are preparation work on rte_bus.h,
rte_dev.h, rte_devargs.h and rte_eal.h headers, removing dependencies
between them.

PCI bus specific handling are removed from testpmd, unit tests and
examples.

After this series, driver-only API headers for registering to buses are
not exported anymore, unless the enable_driver_sdk meson option is
selected.

New accessors for rte_bus, rte_driver and rte_device have been added,
marked with an experimental tag first when introducing them, and later
in the series marked as stable since external users will want to use
those drop-in replacements right away.

A check is added to ensure we won't pollute app/ and examples/ again,
though some unit tests are left intentionnally untouched as they test
some internals of DPDK.

Changes since v4:
- (hopefully, because I can't test) fixed Windows build,
- dropped unneeded change in vdev unit test,

Changes since RFC v3:
- marked the series as non-RFC,
- rebased on v22.11-rc0,
- marked RTE_FUNC_PTR_* macros as deprecated,
- split the bus specific patch in two patches,

Changes since RFC v2:
- added check for additions of include .*_(driver|pmd)\.h in apps and
  examples,
- dropped legacy/debug testpmd commands to read PCI BAR0 registers,
- dropped patches on bbdev, ethdev, rawdev driver headers for now,
- reordered patches and separated changes per bus type to ease review,
- added more accessor for device,
- introduced rte_dev_bus_info to provide a Bus specific description of
  a device, a first use is for providing a PCI device vendor / device
  identifiers that are otherwise unavailable through a generic existing
  API,

Changes since RFC v1:
- added two more cleanups (new patch 3 and 4) for unit test and examples
  relying on PCI specific info,
- went on with masking rte_driver and rte_device too,