From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 73513A00C5; Thu, 28 Jul 2022 17:26:48 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5CD1040151; Thu, 28 Jul 2022 17:26:48 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id C6BF44014F for ; Thu, 28 Jul 2022 17:26:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022006; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=LUgJLkE6xFaa9UaHGFBl20fowYZqNvIxhS+xQ5swk+o=; b=QH62J9KF4uAJ992nFA2+Xa3zdJYGgbEafHDM3CtzLS0CX3j6IRU2CEjHgumlOre6wnwFje b09e5fFB2XYcbeLVWWKnYgy9nxQBI09wxFkJJcXXfvwsenNfEynekYHjkm8zY31FAzLTdp s1X4Zpeb5NfTUWcOTbeDGZggWns10is= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-510-izwklWgxO1uRQ6pnUVeJUg-1; Thu, 28 Jul 2022 11:26:44 -0400 X-MC-Unique: izwklWgxO1uRQ6pnUVeJUg-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A0A9310AF7F2 for ; Thu, 28 Jul 2022 15:26:44 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id D4F271415118 for ; Thu, 28 Jul 2022 15:26:43 +0000 (UTC) From: David Marchand To: dev@dpdk.org Subject: [RFC v3 00/26] Bus and device cleanup for 22.11 Date: Thu, 28 Jul 2022 17:26:14 +0200 Message-Id: <20220728152640.547725-1-david.marchand@redhat.com> In-Reply-To: <20220628144643.1213026-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.7 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=david.marchand@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org This is a PoC for hiding the rte_bus, rte_driver and rte_device objects. 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. Comments welcome. 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, -- David Marchand David Marchand (26): devtools: forbid inclusions of driver only headers common/mlx5: rework check on driver registration raw/ifpga: remove PCI bus accessor app/testpmd: drop PCI register commands kni: stop populating PCI info in examples examples/ethtool: prefer device name dev: hide debug messages in device iterator dev: move unrelated macros from header devargs: remove dependency on bus header build: export drivers headers bus/auxiliary: make driver-only headers private bus/dpaa: make driver-only headers private bus/fslmc: make driver-only headers private bus/ifpga: cleanup exported symbols bus/ifpga: make driver-only headers private bus/pci: make driver-only headers private bus/vdev: make driver-only headers private bus/vmbus: make driver-only headers private bus: move IOVA definition from header bus: introduce accessors bus: hide bus object dev: introduce driver accessors dev: hide driver object dev: introduce device accessors dev: provide Bus specific information dev: hide device object app/proc-info/main.c | 6 +- app/test-compress-perf/comp_perf_options.h | 2 + app/test-pmd/cmdline.c | 339 +----------------- app/test-pmd/config.c | 222 +----------- app/test-pmd/csumonly.c | 1 - app/test-pmd/flowgen.c | 1 - app/test-pmd/iofwd.c | 1 - app/test-pmd/macfwd.c | 1 - app/test-pmd/macswap.c | 1 - app/test-pmd/meson.build | 2 +- app/test-pmd/parameters.c | 1 - app/test-pmd/rxonly.c | 1 - app/test-pmd/testpmd.c | 12 +- app/test-pmd/testpmd.h | 72 +--- app/test-pmd/txonly.c | 1 - app/test/test_devargs.c | 6 +- app/test/test_kni.c | 30 -- app/test/test_vdev.c | 3 +- app/test/virtual_pmd.c | 2 +- devtools/checkpatches.sh | 8 + doc/guides/rel_notes/deprecation.rst | 16 - doc/guides/rel_notes/release_22_11.rst | 15 + doc/guides/testpmd_app_ug/testpmd_funcs.rst | 81 ----- drivers/baseband/acc100/rte_acc100_pmd.c | 4 +- .../fpga_5gnr_fec/rte_fpga_5gnr_fec.c | 4 +- drivers/baseband/fpga_lte_fec/fpga_lte_fec.c | 4 +- drivers/baseband/la12xx/bbdev_la12xx.c | 2 +- drivers/baseband/null/bbdev_null.c | 2 +- .../baseband/turbo_sw/bbdev_turbo_software.c | 2 +- drivers/bus/auxiliary/auxiliary_common.c | 5 +- drivers/bus/auxiliary/auxiliary_params.c | 5 +- ...bus_auxiliary.h => bus_auxiliary_driver.h} | 26 +- drivers/bus/auxiliary/linux/auxiliary.c | 2 - drivers/bus/auxiliary/meson.build | 4 +- drivers/bus/auxiliary/private.h | 30 +- drivers/bus/auxiliary/version.map | 3 +- drivers/bus/dpaa/base/qbman/qman.c | 2 +- .../{rte_dpaa_bus.h => bus_dpaa_driver.h} | 25 +- drivers/bus/dpaa/dpaa_bus.c | 22 +- .../fslmc/{rte_fslmc.h => bus_fslmc_driver.h} | 30 +- drivers/bus/fslmc/fslmc_bus.c | 14 +- drivers/bus/fslmc/fslmc_vfio.c | 5 +- drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c | 4 +- drivers/bus/fslmc/portal/dpaa2_hw_dpci.c | 4 +- drivers/bus/fslmc/portal/dpaa2_hw_dpio.c | 4 +- drivers/bus/fslmc/portal/dpaa2_hw_dprc.c | 4 +- drivers/bus/fslmc/private.h | 27 ++ .../{rte_bus_ifpga.h => bus_ifpga_driver.h} | 18 +- drivers/bus/ifpga/ifpga_bus.c | 21 +- drivers/bus/ifpga/ifpga_common.c | 88 ----- drivers/bus/ifpga/ifpga_common.h | 54 ++- drivers/bus/ifpga/meson.build | 4 +- drivers/bus/ifpga/version.map | 4 +- drivers/bus/pci/bsd/pci.c | 11 +- drivers/bus/pci/bus_pci_driver.h | 201 +++++++++++ drivers/bus/pci/linux/pci.c | 27 +- drivers/bus/pci/linux/pci_vfio.c | 2 +- drivers/bus/pci/meson.build | 1 + drivers/bus/pci/pci_common.c | 21 +- drivers/bus/pci/pci_params.c | 4 +- drivers/bus/pci/private.h | 29 +- drivers/bus/pci/rte_bus_pci.h | 201 +---------- drivers/bus/pci/version.map | 11 +- drivers/bus/pci/windows/pci.c | 7 +- drivers/bus/pci/windows/pci_netuio.c | 1 + drivers/bus/vdev/bus_vdev_driver.h | 151 ++++++++ drivers/bus/vdev/meson.build | 1 + drivers/bus/vdev/rte_bus_vdev.h | 134 ------- drivers/bus/vdev/vdev.c | 12 +- drivers/bus/vdev/vdev_params.c | 3 +- drivers/bus/vdev/version.map | 9 +- drivers/bus/vmbus/bus_vmbus_driver.h | 106 ++++++ drivers/bus/vmbus/linux/vmbus_uio.c | 1 - drivers/bus/vmbus/meson.build | 1 + drivers/bus/vmbus/private.h | 20 +- drivers/bus/vmbus/rte_bus_vmbus.h | 104 ------ drivers/bus/vmbus/version.map | 9 +- drivers/bus/vmbus/vmbus_bufring.c | 1 - drivers/bus/vmbus/vmbus_channel.c | 1 - drivers/bus/vmbus/vmbus_common.c | 3 - drivers/bus/vmbus/vmbus_common_uio.c | 1 - drivers/common/cnxk/roc_platform.h | 2 +- .../common/mlx5/linux/mlx5_common_auxiliary.c | 12 +- drivers/common/mlx5/linux/mlx5_common_os.c | 4 +- drivers/common/mlx5/linux/mlx5_common_os.h | 2 +- drivers/common/mlx5/mlx5_common.h | 2 +- drivers/common/mlx5/mlx5_common_pci.c | 3 +- drivers/common/mlx5/mlx5_common_private.h | 2 +- drivers/common/mlx5/windows/mlx5_common_os.c | 2 +- drivers/common/qat/dev/qat_dev_gen4.c | 2 +- drivers/common/qat/qat_device.c | 1 + drivers/common/qat/qat_device.h | 2 +- drivers/common/qat/qat_qp.c | 4 +- drivers/common/sfc_efx/sfc_efx.h | 2 +- drivers/compress/isal/isal_compress_pmd.c | 2 +- drivers/compress/mlx5/mlx5_compress.c | 2 +- drivers/compress/octeontx/otx_zip.h | 2 +- drivers/compress/qat/qat_comp.c | 2 +- drivers/compress/qat/qat_comp_pmd.c | 1 + drivers/compress/zlib/zlib_pmd.c | 2 +- drivers/compress/zlib/zlib_pmd_ops.c | 1 + drivers/crypto/armv8/rte_armv8_pmd.c | 2 +- drivers/crypto/bcmfs/bcmfs_device.h | 2 +- drivers/crypto/bcmfs/bcmfs_qp.c | 2 +- drivers/crypto/bcmfs/bcmfs_sym_pmd.c | 2 +- drivers/crypto/caam_jr/caam_jr.c | 2 +- drivers/crypto/ccp/ccp_dev.h | 2 +- drivers/crypto/ccp/ccp_pci.h | 2 +- drivers/crypto/ccp/rte_ccp_pmd.c | 6 +- drivers/crypto/cnxk/cn10k_cryptodev.c | 4 +- drivers/crypto/cnxk/cn9k_cryptodev.c | 4 +- drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 4 +- drivers/crypto/dpaa2_sec/dpaa2_sec_raw_dp.c | 2 +- drivers/crypto/dpaa_sec/dpaa_sec.c | 4 +- drivers/crypto/dpaa_sec/dpaa_sec_raw_dp.c | 2 +- drivers/crypto/ipsec_mb/ipsec_mb_private.c | 2 +- drivers/crypto/ipsec_mb/ipsec_mb_private.h | 2 +- drivers/crypto/ipsec_mb/pmd_kasumi.c | 2 +- drivers/crypto/mlx5/mlx5_crypto.c | 2 +- drivers/crypto/mvsam/rte_mrvl_pmd.c | 2 +- drivers/crypto/nitrox/nitrox_device.h | 2 +- drivers/crypto/null/null_crypto_pmd.c | 2 +- drivers/crypto/octeontx/otx_cryptodev.c | 2 +- drivers/crypto/octeontx/otx_cryptodev_ops.c | 2 +- drivers/crypto/openssl/rte_openssl_pmd.c | 2 +- drivers/crypto/qat/qat_sym.c | 2 +- .../scheduler/rte_cryptodev_scheduler.c | 1 + drivers/crypto/scheduler/scheduler_pmd.c | 2 +- drivers/crypto/scheduler/scheduler_pmd_ops.c | 2 +- drivers/crypto/virtio/virtio_cryptodev.c | 2 +- drivers/crypto/virtio/virtio_pci.c | 1 - drivers/crypto/virtio/virtio_pci.h | 2 +- drivers/dma/cnxk/cnxk_dmadev.c | 3 +- drivers/dma/dpaa/dpaa_qdma.c | 2 +- drivers/dma/dpaa2/dpaa2_qdma.c | 2 +- drivers/dma/hisilicon/hisi_dmadev.c | 2 +- drivers/dma/idxd/idxd_bus.c | 3 +- drivers/dma/idxd/idxd_pci.c | 2 +- drivers/dma/ioat/ioat_dmadev.c | 2 +- drivers/dma/skeleton/skeleton_dmadev.c | 2 +- drivers/event/dlb2/dlb2.c | 2 +- drivers/event/dlb2/pf/dlb2_main.h | 2 +- drivers/event/dlb2/pf/dlb2_pf.c | 4 +- drivers/event/dpaa/dpaa_eventdev.c | 4 +- drivers/event/dpaa2/dpaa2_eventdev.c | 6 +- drivers/event/dpaa2/dpaa2_eventdev_selftest.c | 4 +- drivers/event/dpaa2/dpaa2_hw_dpcon.c | 4 +- drivers/event/octeontx/ssovf_evdev.c | 4 +- drivers/event/octeontx/ssovf_evdev_selftest.c | 2 +- drivers/event/octeontx/ssovf_probe.c | 2 +- drivers/event/octeontx/timvf_probe.c | 2 +- drivers/event/opdl/opdl_evdev.c | 2 +- drivers/event/opdl/opdl_evdev_init.c | 2 +- drivers/event/opdl/opdl_test.c | 2 +- drivers/event/skeleton/skeleton_eventdev.c | 4 +- drivers/event/sw/sw_evdev.c | 2 +- drivers/event/sw/sw_evdev_selftest.c | 2 +- drivers/gpu/cuda/cuda.c | 4 +- drivers/mempool/cnxk/cnxk_mempool.c | 2 +- drivers/mempool/dpaa/dpaa_mempool.h | 2 +- drivers/mempool/dpaa2/dpaa2_hw_mempool.c | 2 +- drivers/mempool/octeontx/octeontx_fpavf.c | 2 +- drivers/meson.build | 4 + drivers/net/af_packet/rte_eth_af_packet.c | 2 +- drivers/net/af_xdp/rte_eth_af_xdp.c | 4 +- drivers/net/ark/ark_ethdev.c | 2 +- drivers/net/ark/ark_global.h | 2 +- drivers/net/avp/avp_ethdev.c | 4 +- drivers/net/axgbe/axgbe_common.h | 2 +- drivers/net/bnx2x/bnx2x.h | 2 +- drivers/net/bnx2x/bnx2x_ethdev.c | 2 +- drivers/net/bnxt/bnxt.h | 2 +- drivers/net/bnxt/bnxt_ethdev.c | 2 +- drivers/net/bnxt/rte_pmd_bnxt.c | 2 +- drivers/net/bonding/rte_eth_bond_api.c | 2 +- drivers/net/bonding/rte_eth_bond_args.c | 3 +- drivers/net/bonding/rte_eth_bond_pmd.c | 2 +- drivers/net/cxgbe/base/adapter.h | 2 +- drivers/net/cxgbe/base/t4_hw.c | 2 +- drivers/net/cxgbe/cxgbe_ethdev.c | 4 +- drivers/net/cxgbe/cxgbe_main.c | 2 +- drivers/net/cxgbe/sge.c | 2 +- drivers/net/dpaa/dpaa_ethdev.c | 2 +- drivers/net/dpaa/dpaa_rxtx.c | 2 +- drivers/net/dpaa2/base/dpaa2_hw_dpni.c | 2 +- drivers/net/dpaa2/dpaa2_ethdev.c | 4 +- drivers/net/dpaa2/dpaa2_ethdev.h | 2 +- drivers/net/dpaa2/dpaa2_mux.c | 2 +- drivers/net/dpaa2/dpaa2_ptp.c | 2 +- drivers/net/dpaa2/dpaa2_recycle.c | 4 +- drivers/net/dpaa2/dpaa2_rxtx.c | 4 +- drivers/net/dpaa2/dpaa2_sparser.c | 2 +- drivers/net/e1000/em_ethdev.c | 4 +- drivers/net/e1000/em_rxtx.c | 2 +- drivers/net/e1000/igb_ethdev.c | 4 +- drivers/net/e1000/igb_flow.c | 2 +- drivers/net/e1000/igb_pf.c | 2 +- drivers/net/ena/ena_ethdev.h | 4 +- drivers/net/enic/base/vnic_dev.h | 2 +- drivers/net/enic/enic_ethdev.c | 4 +- drivers/net/enic/enic_main.c | 2 +- drivers/net/enic/enic_vf_representor.c | 4 +- drivers/net/failsafe/failsafe.c | 3 +- drivers/net/failsafe/failsafe_eal.c | 1 + drivers/net/failsafe/failsafe_private.h | 2 +- drivers/net/fm10k/fm10k_ethdev.c | 2 +- drivers/net/hinic/base/hinic_pmd_hwdev.c | 2 +- drivers/net/hinic/base/hinic_pmd_hwif.c | 2 +- drivers/net/hinic/base/hinic_pmd_nicio.c | 2 +- drivers/net/hinic/hinic_pmd_ethdev.c | 2 +- drivers/net/hns3/hns3_common.c | 2 +- drivers/net/hns3/hns3_ethdev.c | 2 +- drivers/net/hns3/hns3_rxtx.c | 2 +- drivers/net/i40e/i40e_ethdev.c | 4 +- drivers/net/i40e/i40e_vf_representor.c | 2 +- drivers/net/iavf/iavf_ethdev.c | 2 +- drivers/net/iavf/iavf_vchnl.c | 2 +- drivers/net/ice/ice_dcf.c | 2 +- drivers/net/ice/ice_dcf_ethdev.c | 2 +- drivers/net/igc/igc_ethdev.c | 2 +- drivers/net/ionic/ionic.h | 2 +- drivers/net/ionic/ionic_ethdev.c | 2 +- drivers/net/ipn3ke/ipn3ke_ethdev.c | 4 +- drivers/net/ipn3ke/ipn3ke_ethdev.h | 4 +- drivers/net/ipn3ke/ipn3ke_flow.c | 2 +- drivers/net/ipn3ke/ipn3ke_representor.c | 4 +- drivers/net/ipn3ke/ipn3ke_tm.c | 4 +- drivers/net/ixgbe/ixgbe_ethdev.c | 4 +- drivers/net/ixgbe/ixgbe_ethdev.h | 2 +- drivers/net/ixgbe/ixgbe_flow.c | 2 +- drivers/net/ixgbe/rte_pmd_ixgbe.c | 1 + drivers/net/kni/rte_eth_kni.c | 2 +- drivers/net/liquidio/lio_ethdev.c | 1 + drivers/net/memif/memif_socket.c | 2 +- drivers/net/memif/rte_eth_memif.c | 2 +- drivers/net/mlx4/mlx4.c | 2 +- drivers/net/mlx4/mlx4_ethdev.c | 2 +- drivers/net/mlx5/linux/mlx5_ethdev_os.c | 2 +- drivers/net/mlx5/linux/mlx5_os.c | 5 +- drivers/net/mlx5/mlx5.c | 2 +- drivers/net/mlx5/mlx5_ethdev.c | 2 +- drivers/net/mlx5/mlx5_flow_dv.c | 2 +- drivers/net/mlx5/mlx5_txq.c | 2 +- drivers/net/mvneta/mvneta_ethdev.c | 2 +- drivers/net/mvpp2/mrvl_ethdev.c | 2 +- drivers/net/netvsc/hn_ethdev.c | 5 +- drivers/net/netvsc/hn_nvs.c | 4 +- drivers/net/netvsc/hn_rndis.c | 4 +- drivers/net/netvsc/hn_rxtx.c | 4 +- drivers/net/netvsc/hn_vf.c | 4 +- drivers/net/nfp/nfp_common.c | 2 +- drivers/net/nfp/nfp_ethdev.c | 2 +- drivers/net/ngbe/base/ngbe_osdep.h | 2 +- drivers/net/ngbe/ngbe_pf.c | 2 +- drivers/net/null/rte_eth_null.c | 2 +- drivers/net/octeontx/base/octeontx_pkivf.c | 2 +- drivers/net/octeontx/base/octeontx_pkovf.c | 2 +- drivers/net/octeontx/octeontx_ethdev.c | 4 +- drivers/net/pcap/pcap_ethdev.c | 2 +- drivers/net/pfe/pfe_ethdev.c | 2 +- drivers/net/qede/base/bcm_osal.h | 2 +- drivers/net/qede/qede_ethdev.h | 2 +- drivers/net/ring/rte_eth_ring.c | 2 +- drivers/net/sfc/sfc.h | 2 +- drivers/net/sfc/sfc_ethdev.c | 4 +- drivers/net/sfc/sfc_sriov.c | 2 +- drivers/net/sfc/sfc_sw_stats.c | 2 +- drivers/net/sfc/sfc_sw_stats.h | 2 +- drivers/net/softnic/rte_eth_softnic.c | 2 +- drivers/net/tap/rte_eth_tap.c | 2 +- drivers/net/thunderx/nicvf_ethdev.c | 4 +- drivers/net/txgbe/txgbe_ethdev.h | 2 +- drivers/net/txgbe/txgbe_flow.c | 2 +- drivers/net/txgbe/txgbe_pf.c | 2 +- drivers/net/vdev_netvsc/vdev_netvsc.c | 6 +- drivers/net/vhost/rte_eth_vhost.c | 2 +- drivers/net/virtio/virtio_ethdev.c | 2 +- drivers/net/virtio/virtio_pci.c | 2 +- drivers/net/virtio/virtio_pci.h | 2 +- drivers/net/virtio/virtio_pci_ethdev.c | 4 +- drivers/net/virtio/virtio_user_ethdev.c | 2 +- drivers/net/vmxnet3/vmxnet3_ethdev.c | 4 +- drivers/raw/cnxk_bphy/cnxk_bphy.c | 4 +- drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c | 2 +- drivers/raw/cnxk_bphy/cnxk_bphy_irq.c | 2 +- drivers/raw/cnxk_gpio/cnxk_gpio.c | 2 +- drivers/raw/dpaa2_cmdif/dpaa2_cmdif.c | 2 +- drivers/raw/ifpga/afu_pmd_core.h | 2 +- drivers/raw/ifpga/afu_pmd_he_hssi.c | 4 +- drivers/raw/ifpga/afu_pmd_he_lpbk.c | 4 +- drivers/raw/ifpga/afu_pmd_he_mem.c | 4 +- drivers/raw/ifpga/afu_pmd_n3000.c | 4 +- drivers/raw/ifpga/ifpga_rawdev.c | 15 +- drivers/raw/ifpga/ifpga_rawdev.h | 1 - drivers/raw/ifpga/rte_pmd_ifpga.c | 8 +- drivers/raw/ifpga/rte_pmd_ifpga.h | 10 - drivers/raw/ifpga/version.map | 1 - drivers/raw/ioat/idxd_bus.c | 2 +- drivers/raw/ioat/idxd_pci.c | 2 +- drivers/raw/ioat/ioat_rawdev.c | 2 +- drivers/raw/ntb/ntb.c | 2 +- drivers/raw/ntb/ntb_hw_intel.c | 2 +- drivers/raw/skeleton/skeleton_rawdev.c | 4 +- drivers/raw/skeleton/skeleton_rawdev_test.c | 4 +- drivers/regex/mlx5/mlx5_regex.c | 2 +- drivers/regex/mlx5/mlx5_regex_control.c | 2 +- drivers/regex/mlx5/mlx5_regex_fastpath.c | 2 +- drivers/vdpa/ifc/base/ifcvf_osdep.h | 2 +- drivers/vdpa/ifc/ifcvf_vdpa.c | 2 +- drivers/vdpa/mlx5/mlx5_vdpa.c | 2 +- drivers/vdpa/sfc/sfc_vdpa.h | 2 +- examples/ethtool/lib/rte_ethtool.c | 17 +- examples/ip_pipeline/kni.c | 10 - examples/l3fwd/l3fwd_em.c | 4 +- examples/l3fwd/l3fwd_fib.c | 8 +- examples/l3fwd/l3fwd_lpm.c | 4 +- examples/multi_process/hotplug_mp/commands.c | 6 +- examples/vdpa/main.c | 16 +- lib/compressdev/rte_compressdev.c | 2 + lib/compressdev/rte_compressdev_pmd.c | 1 + lib/compressdev/rte_compressdev_pmd.h | 1 + lib/cryptodev/cryptodev_pmd.c | 2 + lib/cryptodev/cryptodev_pmd.h | 1 + lib/cryptodev/rte_cryptodev.c | 2 +- lib/dmadev/rte_dmadev.c | 1 + lib/dmadev/rte_dmadev_pmd.h | 2 +- lib/eal/common/eal_common_bus.c | 28 +- lib/eal/common/eal_common_dev.c | 53 ++- lib/eal/common/eal_common_devargs.c | 2 +- lib/eal/common/eal_private.h | 2 +- lib/eal/common/eal_thread.h | 1 + lib/eal/common/hotplug_mp.c | 1 + lib/eal/include/bus_driver.h | 296 +++++++++++++++ lib/eal/include/dev_driver.h | 41 +++ lib/eal/include/meson.build | 5 + lib/eal/include/rte_bus.h | 290 +-------------- lib/eal/include/rte_common.h | 11 + lib/eal/include/rte_dev.h | 108 ++++-- lib/eal/include/rte_devargs.h | 4 +- lib/eal/include/rte_eal.h | 15 +- lib/eal/include/rte_lcore.h | 2 + lib/eal/linux/eal_dev.c | 2 +- lib/eal/version.map | 12 +- lib/eal/windows/eal.c | 1 + lib/ethdev/ethdev_driver.c | 1 + lib/ethdev/ethdev_driver.h | 1 + lib/ethdev/ethdev_pci.h | 3 +- lib/ethdev/ethdev_vdev.h | 2 +- lib/ethdev/rte_ethdev.c | 1 + lib/ethdev/rte_ethdev.h | 2 +- lib/eventdev/eventdev_pmd.h | 2 +- lib/eventdev/eventdev_pmd_pci.h | 2 +- lib/eventdev/eventdev_pmd_vdev.h | 2 +- lib/eventdev/rte_event_crypto_adapter.c | 2 +- lib/eventdev/rte_event_eth_rx_adapter.c | 2 +- lib/eventdev/rte_eventdev.c | 2 +- lib/gpudev/gpudev_driver.h | 2 +- lib/mempool/rte_mempool_ops.c | 3 +- lib/pcapng/rte_pcapng.c | 3 +- lib/rawdev/rte_rawdev.c | 2 +- lib/rawdev/rte_rawdev_pmd.h | 2 +- lib/regexdev/rte_regexdev.c | 1 + lib/security/rte_security.c | 3 +- lib/vhost/vdpa.c | 2 + 364 files changed, 1700 insertions(+), 2215 deletions(-) rename drivers/bus/auxiliary/{rte_bus_auxiliary.h => bus_auxiliary_driver.h} (90%) rename drivers/bus/dpaa/{rte_dpaa_bus.h => bus_dpaa_driver.h} (92%) rename drivers/bus/fslmc/{rte_fslmc.h => bus_fslmc_driver.h} (88%) create mode 100644 drivers/bus/fslmc/private.h rename drivers/bus/ifpga/{rte_bus_ifpga.h => bus_ifpga_driver.h} (91%) delete mode 100644 drivers/bus/ifpga/ifpga_common.c create mode 100644 drivers/bus/pci/bus_pci_driver.h create mode 100644 drivers/bus/vdev/bus_vdev_driver.h create mode 100644 drivers/bus/vmbus/bus_vmbus_driver.h create mode 100644 lib/eal/include/bus_driver.h create mode 100644 lib/eal/include/dev_driver.h -- 2.36.1