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 E433FA00C5; Sat, 9 Jul 2022 10:27:13 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D4B21410DD; Sat, 9 Jul 2022 10:27:13 +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 7E49B40C35 for ; Sat, 9 Jul 2022 10:27:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1657355232; 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=/wu6XAdQcoW0szwCvH5ISYCyqLnIit4XLKqkC5OkuT0=; b=FnpZuDBULg+OkSRm0DkE4V4T3Y+1bgzi+T0mg0WHWnHde78XT7KxKRafcbf7cLvRiLvp5y CDe7n8Jaz70al1MGP4W3tT2V2xMPciBOOBttxKoSU/kKCOtA7sAJgBtYou69D4RRVd+QYv pmAJ3Er6pj46lK60pWjesAMWHx5kem4= 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-198-_S85_NY_Mx6uklPPGtfbNg-1; Sat, 09 Jul 2022 04:26:58 -0400 X-MC-Unique: _S85_NY_Mx6uklPPGtfbNg-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 757CE8032F1 for ; Sat, 9 Jul 2022 08:26:58 +0000 (UTC) Received: from localhost.localdomain (unknown [10.40.192.194]) by smtp.corp.redhat.com (Postfix) with ESMTP id A2CEA2026D2D for ; Sat, 9 Jul 2022 08:26:57 +0000 (UTC) From: David Marchand To: dev@dpdk.org Subject: [RFC v2 v2 00/29] Bus and device cleanup for 22.11 Date: Sat, 9 Jul 2022 10:26:15 +0200 Message-Id: <20220709082644.664675-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.78 on 10.11.54.4 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. This is something I had in store for some time, maybe I should have dropped it from the PoC, but I think those cleanups are worth it in any case. Then PCI bus specific handling are moved from unit tests and examples, though there is still a special case left in testpmd that may require a new API, to be discussed. 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 though we may declare them as stable right away so that users can switch to them directly. That's also something to agree on. I simplified my series and switched to only update "external" users, like app/ and examples/ files. We need some checkpatch new checks to be sure we won't get some driver-only headers included in these areas. That's something I'll work on in the non RFC series. "Internal" users are simply using the internal headers. That helps greatly reducing the size of the changes. Disclaimer: again, in this v2, this series is a bit rushed (I brute forced compilation tests in GHA so that it passes between patches, but there still may be something broken...). Not surprisingly, the ABI check in the CI is expected to fail. Comments welcome. 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 (29): common/mlx5: rework check on driver registration raw/ifpga: remove PCI bus accessor 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 bus: remove unneeded inclusion of bus header bus: move IOVA definition from header drivers/bus: remove back reference to bus objects drivers/bus: hide specific structures bus: introduce accessors bus: hide bus object bbdev: mark driver header ethdev: mark some headers as driver only rawdev: mark driver header drivers: 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 dev: introduce driver name dev: hide driver object dev: introduce device accessors dev: hide device object app/proc-info/main.c | 6 +- app/test-compress-perf/comp_perf_options.h | 2 + app/test-pmd/config.c | 12 +- app/test-pmd/testpmd.c | 4 +- app/test-pmd/testpmd.h | 7 +- app/test/test_devargs.c | 6 +- app/test/test_kni.c | 30 -- app/test/test_vdev.c | 3 +- app/test/virtual_pmd.c | 2 +- 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} | 20 +- 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 | 24 +- .../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} | 19 +- drivers/bus/ifpga/ifpga_bus.c | 23 +- 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 | 3 - drivers/bus/pci/bus_pci_driver.h | 200 ++++++++++++ drivers/bus/pci/linux/pci.c | 3 - drivers/bus/pci/linux/pci_vfio.c | 2 +- drivers/bus/pci/meson.build | 1 + drivers/bus/pci/pci_common.c | 4 +- drivers/bus/pci/pci_params.c | 4 +- drivers/bus/pci/private.h | 19 +- drivers/bus/pci/rte_bus_pci.h | 201 +----------- drivers/bus/pci/version.map | 11 +- drivers/bus/pci/windows/pci.c | 1 + 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/bbdev/meson.build | 5 +- 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 | 41 ++- 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 | 42 +++ lib/eal/include/meson.build | 5 + lib/eal/include/rte_bus.h | 293 +---------------- lib/eal/include/rte_common.h | 11 + lib/eal/include/rte_dev.h | 89 ++++-- 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 | 5 +- lib/ethdev/ethdev_vdev.h | 2 +- lib/ethdev/meson.build | 6 +- 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/meson.build | 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 + 353 files changed, 1605 insertions(+), 1480 deletions(-) rename drivers/bus/auxiliary/{rte_bus_auxiliary.h => bus_auxiliary_driver.h} (91%) 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