From patchwork Thu Jul 28 15:26:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114372 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 32DDBA00C5; Thu, 28 Jul 2022 17:26:55 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 74A9F42BB2; Thu, 28 Jul 2022 17:26:52 +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 F406942BBE for ; Thu, 28 Jul 2022 17:26:50 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022010; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=h0MGIu6j7vHXw8MBe+vXrVHSoQj5fBeltM1kNU6B8hs=; b=Q/II2gYeiC/yF05YJbTvqoPi/HpS73UwF8A2nTZvXfHqhkVQ5Yh6ap8A/wSNxNlaZoESeW MMPzMPyZMzaIgrZbNeZxoNUpLd2YnoiPNIN3zymig3tvdUDgEU3wD1goUy8f+GtqnLwDdy Y2KZx1mu6PxHd9FtZK+xOhU6tqr0nyw= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-518-2_iHzMnCP3O19wwZE-t9UQ-1; Thu, 28 Jul 2022 11:26:47 -0400 X-MC-Unique: 2_iHzMnCP3O19wwZE-t9UQ-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 48AB71C14488; Thu, 28 Jul 2022 15:26:47 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8F8B71415118; Thu, 28 Jul 2022 15:26:46 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Thomas Monjalon Subject: [RFC v3 01/26] devtools: forbid inclusions of driver only headers Date: Thu, 28 Jul 2022 17:26:15 +0200 Message-Id: <20220728152640.547725-2-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 Let's be good citizens and enforce not using driver only headers in our own examples. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- devtools/checkpatches.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/devtools/checkpatches.sh b/devtools/checkpatches.sh index 1edc5810ad..0e82c01947 100755 --- a/devtools/checkpatches.sh +++ b/devtools/checkpatches.sh @@ -142,6 +142,14 @@ check_forbidden_additions() { # -f $(dirname $(readlink -f $0))/check-forbidden-tokens.awk \ "$1" || res=1 + # forbid inclusion of driver specific headers in apps and examples + awk -v FOLDERS='app examples' \ + -v EXPRESSIONS='include.*_driver\\.h include.*_pmd\\.h' \ + -v RET_ON_FAIL=1 \ + -v MESSAGE='Using driver specific headers in applications' \ + -f $(dirname $(readlink -f $0))/check-forbidden-tokens.awk \ + "$1" || res=1 + # SVG must be included with wildcard extension to allow conversion awk -v FOLDERS='doc' \ -v EXPRESSIONS='::[[:space:]]*[^[:space:]]*\\.svg' \ From patchwork Thu Jul 28 15:26:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114373 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 30204A00C5; Thu, 28 Jul 2022 17:27:00 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 61FEF42BCA; Thu, 28 Jul 2022 17:26:55 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id E570F42BBB for ; Thu, 28 Jul 2022 17:26:53 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022013; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=oZnz32hBTAj7hsvvZzLpaMdPXuO6eyeuYQzz/vxnesc=; b=fmr/7/pZpYgmcA6nzHD9FzYju1Q4JRBT77iOhQLRlGg2y1/+bVtgz0qkHdt9xkkQRMt4cb AvqcERBY4bbbuLkQrSyWW4FSOOwnTgXRg0W4UdsV6sn31VX9jGXIWTfDOo/b7CL1OgtFSG na1E1odgyJXbbqmeQKT9YWbA2eyuyEc= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-443-qn6QY17jOsuAIdbCP5-nag-1; Thu, 28 Jul 2022 11:26:50 -0400 X-MC-Unique: qn6QY17jOsuAIdbCP5-nag-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 037441C14487; Thu, 28 Jul 2022 15:26:50 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3BB4E1415118; Thu, 28 Jul 2022 15:26:49 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Matan Azrad , Viacheslav Ovsiienko Subject: [RFC v3 02/26] common/mlx5: rework check on driver registration Date: Thu, 28 Jul 2022 17:26:16 +0200 Message-Id: <20220728152640.547725-3-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 Rely on a local flag rather than dereference a bus object. This will help next commits. Signed-off-by: David Marchand --- drivers/common/mlx5/linux/mlx5_common_auxiliary.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/common/mlx5/linux/mlx5_common_auxiliary.c b/drivers/common/mlx5/linux/mlx5_common_auxiliary.c index 6584aeb18e..a182a8bdde 100644 --- a/drivers/common/mlx5/linux/mlx5_common_auxiliary.c +++ b/drivers/common/mlx5/linux/mlx5_common_auxiliary.c @@ -179,14 +179,20 @@ static struct rte_auxiliary_driver mlx5_auxiliary_driver = { .dma_unmap = mlx5_common_auxiliary_dma_unmap, }; +static bool mlx5_common_auxiliary_initialized; + void mlx5_common_auxiliary_init(void) { - if (mlx5_auxiliary_driver.bus == NULL) + if (!mlx5_common_auxiliary_initialized) { rte_auxiliary_register(&mlx5_auxiliary_driver); + mlx5_common_auxiliary_initialized = true; + } } RTE_FINI(mlx5_common_auxiliary_driver_finish) { - if (mlx5_auxiliary_driver.bus != NULL) + if (mlx5_common_auxiliary_initialized) { rte_auxiliary_unregister(&mlx5_auxiliary_driver); + mlx5_common_auxiliary_initialized = false; + } } From patchwork Thu Jul 28 15:26:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114374 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id BAF47A00C5; Thu, 28 Jul 2022 17:27:05 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 30E7F42BD2; Thu, 28 Jul 2022 17:26:56 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 5EA8A42BBB for ; Thu, 28 Jul 2022 17:26:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022014; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zFph8EG4cFG38ml97oT8SMKaaoPDDqrM29NemmdXJkg=; b=SEqA7jhuXUz9OTOHkE7TmdDIpkCUPGJrUXVTHG3AvHBYuNier+qBgCrpt4wb5pdvnMymkQ DfQFvniI4b8oGeR5+2n3naO/6uyHY8AtfjJdYsXZg0eXcbhEm4Di0j5KE5fY2XV/OIhTNv 2q9h4TCSs1ZfXSQBGAo4761KBKdIROw= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-317-PILOrFtGPzaG6Vz4zRzFpA-1; Thu, 28 Jul 2022 11:26:53 -0400 X-MC-Unique: PILOrFtGPzaG6Vz4zRzFpA-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 E9CDD3C0E22B; Thu, 28 Jul 2022 15:26:52 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id E3F7B1415121; Thu, 28 Jul 2022 15:26:51 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Ray Kinsella , Rosen Xu , Tianfei zhang Subject: [RFC v3 03/26] raw/ifpga: remove PCI bus accessor Date: Thu, 28 Jul 2022 17:26:17 +0200 Message-Id: <20220728152640.547725-4-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 There is no in-tree user for this accessor that returns the PCI bus object. On the other hand, a bus object can be retrieved by name using rte_bus_find_by_name. We can remove this driver specific API. Signed-off-by: David Marchand Acked-by: Rosen Xu --- Changes since RFC v2: - updated release notes, --- doc/guides/rel_notes/deprecation.rst | 3 --- doc/guides/rel_notes/release_22_11.rst | 2 ++ drivers/raw/ifpga/ifpga_rawdev.c | 7 +------ drivers/raw/ifpga/ifpga_rawdev.h | 1 - drivers/raw/ifpga/rte_pmd_ifpga.c | 6 ------ drivers/raw/ifpga/rte_pmd_ifpga.h | 10 ---------- drivers/raw/ifpga/version.map | 1 - 7 files changed, 3 insertions(+), 27 deletions(-) diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index e7583cae4c..dba252067c 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -228,9 +228,6 @@ Deprecation Notices * raw/dpaa2_cmdif: The ``dpaa2_cmdif`` rawdev driver will be deprecated in DPDK 22.11, as it is no longer in use, no active user known. -* raw/ifgpa: The function ``rte_pmd_ifpga_get_pci_bus`` will be removed - in DPDK 22.11. - * raw/ioat: The ``ioat`` rawdev driver has been deprecated, since it's functionality is provided through the new ``dmadev`` infrastructure. To continue to use hardware previously supported by the ``ioat`` rawdev driver, diff --git a/doc/guides/rel_notes/release_22_11.rst b/doc/guides/rel_notes/release_22_11.rst index 8c021cf050..3cea3aa8eb 100644 --- a/doc/guides/rel_notes/release_22_11.rst +++ b/doc/guides/rel_notes/release_22_11.rst @@ -84,6 +84,8 @@ API Changes Also, make sure to start the actual text at the margin. ======================================================= +* raw/ifgpa: The function ``rte_pmd_ifpga_get_pci_bus`` has been removed. + ABI Changes ----------- diff --git a/drivers/raw/ifpga/ifpga_rawdev.c b/drivers/raw/ifpga/ifpga_rawdev.c index 8c05302a65..78a7123528 100644 --- a/drivers/raw/ifpga/ifpga_rawdev.c +++ b/drivers/raw/ifpga/ifpga_rawdev.c @@ -10,8 +10,8 @@ #include #include #include + #include -#include #include #include #include @@ -1888,11 +1888,6 @@ RTE_PMD_REGISTER_PARAM_STRING(ifpga_rawdev_cfg, "port= " "afu_bts="); -struct rte_pci_bus *ifpga_get_pci_bus(void) -{ - return rte_ifpga_rawdev_pmd.bus; -} - int ifpga_rawdev_partial_reconfigure(struct rte_rawdev *dev, int port, const char *file) { diff --git a/drivers/raw/ifpga/ifpga_rawdev.h b/drivers/raw/ifpga/ifpga_rawdev.h index 4c191190ca..0fb66cbaae 100644 --- a/drivers/raw/ifpga/ifpga_rawdev.h +++ b/drivers/raw/ifpga/ifpga_rawdev.h @@ -91,7 +91,6 @@ int ifpga_unregister_msix_irq(struct ifpga_rawdev *dev, enum ifpga_irq_type type, int vec_start, rte_intr_callback_fn handler, void *arg); -struct rte_pci_bus *ifpga_get_pci_bus(void); int ifpga_rawdev_partial_reconfigure(struct rte_rawdev *dev, int port, const char *file); void ifpga_rawdev_cleanup(void); diff --git a/drivers/raw/ifpga/rte_pmd_ifpga.c b/drivers/raw/ifpga/rte_pmd_ifpga.c index 23146432c2..1ca248123b 100644 --- a/drivers/raw/ifpga/rte_pmd_ifpga.c +++ b/drivers/raw/ifpga/rte_pmd_ifpga.c @@ -402,12 +402,6 @@ rte_pmd_ifpga_reload(uint16_t dev_id, int type, int page) return opae_mgr_reload(adapter->mgr, type, page); } -const struct rte_pci_bus * -rte_pmd_ifpga_get_pci_bus(void) -{ - return ifpga_get_pci_bus(); -} - int rte_pmd_ifpga_partial_reconfigure(uint16_t dev_id, int port, const char *file) { diff --git a/drivers/raw/ifpga/rte_pmd_ifpga.h b/drivers/raw/ifpga/rte_pmd_ifpga.h index 3fa5d3435a..791543f2cd 100644 --- a/drivers/raw/ifpga/rte_pmd_ifpga.h +++ b/drivers/raw/ifpga/rte_pmd_ifpga.h @@ -220,16 +220,6 @@ rte_pmd_ifpga_reboot_try(uint16_t dev_id); int rte_pmd_ifpga_reload(uint16_t dev_id, int type, int page); -/** - * Get PCI bus the Intel FPGA driver register to - * - * @return - * - (valid pointer) if successful. - * - (NULL) if the Intel FPGA driver is not registered to any PCI bus. - */ -const struct rte_pci_bus * -rte_pmd_ifpga_get_pci_bus(void); - /** * Perform PR (partial reconfiguration) on specified Intel FPGA device * diff --git a/drivers/raw/ifpga/version.map b/drivers/raw/ifpga/version.map index f5c3959b7f..916da8a4f2 100644 --- a/drivers/raw/ifpga/version.map +++ b/drivers/raw/ifpga/version.map @@ -3,7 +3,6 @@ DPDK_23 { rte_pmd_ifpga_cleanup; rte_pmd_ifpga_get_dev_id; - rte_pmd_ifpga_get_pci_bus; rte_pmd_ifpga_get_phy_info; rte_pmd_ifpga_get_property; rte_pmd_ifpga_get_rsu_status; From patchwork Thu Jul 28 15:26:18 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114375 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 66729A00C5; Thu, 28 Jul 2022 17:27:11 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 12DEA42BD1; Thu, 28 Jul 2022 17:27:00 +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 554954014F for ; Thu, 28 Jul 2022 17:26:58 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022017; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8AKGAD3Dg1jfiJgPgs0oqdjq/4I2JYFr9oqHyUg2wMA=; b=HZSRo+vV4tu90XApCHbIqmvsUxbPZsB71w4lG2Q9Zz837YIP1Ts7j5chLi7i1D6stZVRKe Vztqf6oIRqYYwfWxzzZmSEkrmPaQyXDziOiKUdfpGI8hRpL9NLwgJ1vxXE0TT8p3qQijVe kMTNBp0qa0x3xguWJUG74zUJFEG4EUs= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-662-EP3HHb0HN-iFJR63yp4ITQ-1; Thu, 28 Jul 2022 11:26:56 -0400 X-MC-Unique: EP3HHb0HN-iFJR63yp4ITQ-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 DDF4D2801781; Thu, 28 Jul 2022 15:26:55 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id EDBF31415118; Thu, 28 Jul 2022 15:26:54 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Aman Singh , Yuying Zhang Subject: [RFC v3 04/26] app/testpmd: drop PCI register commands Date: Thu, 28 Jul 2022 17:26:18 +0200 Message-Id: <20220728152640.547725-5-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 Those commands date back to the early stages of DPDK when only PCI devices were supported. At the time, developers may have used those commands to help in debugging their buggy^Wwork in progress drivers. Removing them, we can drop the dependency on the PCI bus and library and make testpmd bus agnostic. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- app/test-pmd/cmdline.c | 339 +------------------- app/test-pmd/config.c | 195 ----------- 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 | 1 - app/test-pmd/testpmd.h | 72 +---- app/test-pmd/txonly.c | 1 - doc/guides/testpmd_app_ug/testpmd_funcs.rst | 81 ----- 14 files changed, 4 insertions(+), 694 deletions(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index b4fe9dfb17..4697b7c494 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -28,7 +28,6 @@ #include #include #include -#include #include #include #include @@ -89,7 +88,6 @@ static void cmd_help_brief_parsed(__rte_unused void *parsed_result, "information.\n" " help config : Configuration information.\n" " help ports : Configuring ports.\n" - " help registers : Reading and setting port registers.\n" " help filters : Filters configuration help.\n" " help traffic_management : Traffic Management commands.\n" " help devices : Device related commands.\n" @@ -799,34 +797,6 @@ static void cmd_help_long_parsed(void *parsed_result, ); } - if (show_all || !strcmp(res->section, "registers")) { - - cmdline_printf( - cl, - "\n" - "Registers:\n" - "----------\n\n" - - "read reg (port_id) (address)\n" - " Display value of a port register.\n\n" - - "read regfield (port_id) (address) (bit_x) (bit_y)\n" - " Display a port register bit field.\n\n" - - "read regbit (port_id) (address) (bit_x)\n" - " Display a single port register bit.\n\n" - - "write reg (port_id) (address) (value)\n" - " Set value of a port register.\n\n" - - "write regfield (port_id) (address) (bit_x) (bit_y)" - " (value)\n" - " Set bit field of a port register.\n\n" - - "write regbit (port_id) (address) (bit_x) (value)\n" - " Set single bit value of a port register.\n\n" - ); - } if (show_all || !strcmp(res->section, "filters")) { cmdline_printf( @@ -1077,13 +1047,13 @@ static cmdline_parse_token_string_t cmd_help_long_help = static cmdline_parse_token_string_t cmd_help_long_section = TOKEN_STRING_INITIALIZER(struct cmd_help_long_result, section, - "all#control#display#config#ports#registers#" + "all#control#display#config#ports#" "filters#traffic_management#devices#drivers"); static cmdline_parse_inst_t cmd_help_long = { .f = cmd_help_long_parsed, .data = NULL, - .help_str = "help all|control|display|config|ports|register|" + .help_str = "help all|control|display|config|ports|" "filters|traffic_management|devices|drivers: " "Show help", .tokens = { @@ -7390,305 +7360,6 @@ static cmdline_parse_inst_t cmd_showfwdall = { }, }; -/* *** READ PORT REGISTER *** */ -struct cmd_read_reg_result { - cmdline_fixed_string_t read; - cmdline_fixed_string_t reg; - portid_t port_id; - uint32_t reg_off; -}; - -static void -cmd_read_reg_parsed(void *parsed_result, - __rte_unused struct cmdline *cl, - __rte_unused void *data) -{ - struct cmd_read_reg_result *res = parsed_result; - port_reg_display(res->port_id, res->reg_off); -} - -static cmdline_parse_token_string_t cmd_read_reg_read = - TOKEN_STRING_INITIALIZER(struct cmd_read_reg_result, read, "read"); -static cmdline_parse_token_string_t cmd_read_reg_reg = - TOKEN_STRING_INITIALIZER(struct cmd_read_reg_result, reg, "reg"); -static cmdline_parse_token_num_t cmd_read_reg_port_id = - TOKEN_NUM_INITIALIZER(struct cmd_read_reg_result, port_id, RTE_UINT16); -static cmdline_parse_token_num_t cmd_read_reg_reg_off = - TOKEN_NUM_INITIALIZER(struct cmd_read_reg_result, reg_off, RTE_UINT32); - -static cmdline_parse_inst_t cmd_read_reg = { - .f = cmd_read_reg_parsed, - .data = NULL, - .help_str = "read reg ", - .tokens = { - (void *)&cmd_read_reg_read, - (void *)&cmd_read_reg_reg, - (void *)&cmd_read_reg_port_id, - (void *)&cmd_read_reg_reg_off, - NULL, - }, -}; - -/* *** READ PORT REGISTER BIT FIELD *** */ -struct cmd_read_reg_bit_field_result { - cmdline_fixed_string_t read; - cmdline_fixed_string_t regfield; - portid_t port_id; - uint32_t reg_off; - uint8_t bit1_pos; - uint8_t bit2_pos; -}; - -static void -cmd_read_reg_bit_field_parsed(void *parsed_result, - __rte_unused struct cmdline *cl, - __rte_unused void *data) -{ - struct cmd_read_reg_bit_field_result *res = parsed_result; - port_reg_bit_field_display(res->port_id, res->reg_off, - res->bit1_pos, res->bit2_pos); -} - -static cmdline_parse_token_string_t cmd_read_reg_bit_field_read = - TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_field_result, read, - "read"); -static cmdline_parse_token_string_t cmd_read_reg_bit_field_regfield = - TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_field_result, - regfield, "regfield"); -static cmdline_parse_token_num_t cmd_read_reg_bit_field_port_id = - TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result, port_id, - RTE_UINT16); -static cmdline_parse_token_num_t cmd_read_reg_bit_field_reg_off = - TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result, reg_off, - RTE_UINT32); -static cmdline_parse_token_num_t cmd_read_reg_bit_field_bit1_pos = - TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result, bit1_pos, - RTE_UINT8); -static cmdline_parse_token_num_t cmd_read_reg_bit_field_bit2_pos = - TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_field_result, bit2_pos, - RTE_UINT8); - -static cmdline_parse_inst_t cmd_read_reg_bit_field = { - .f = cmd_read_reg_bit_field_parsed, - .data = NULL, - .help_str = "read regfield : " - "Read register bit field between bit_x and bit_y included", - .tokens = { - (void *)&cmd_read_reg_bit_field_read, - (void *)&cmd_read_reg_bit_field_regfield, - (void *)&cmd_read_reg_bit_field_port_id, - (void *)&cmd_read_reg_bit_field_reg_off, - (void *)&cmd_read_reg_bit_field_bit1_pos, - (void *)&cmd_read_reg_bit_field_bit2_pos, - NULL, - }, -}; - -/* *** READ PORT REGISTER BIT *** */ -struct cmd_read_reg_bit_result { - cmdline_fixed_string_t read; - cmdline_fixed_string_t regbit; - portid_t port_id; - uint32_t reg_off; - uint8_t bit_pos; -}; - -static void -cmd_read_reg_bit_parsed(void *parsed_result, - __rte_unused struct cmdline *cl, - __rte_unused void *data) -{ - struct cmd_read_reg_bit_result *res = parsed_result; - port_reg_bit_display(res->port_id, res->reg_off, res->bit_pos); -} - -static cmdline_parse_token_string_t cmd_read_reg_bit_read = - TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_result, read, "read"); -static cmdline_parse_token_string_t cmd_read_reg_bit_regbit = - TOKEN_STRING_INITIALIZER(struct cmd_read_reg_bit_result, - regbit, "regbit"); -static cmdline_parse_token_num_t cmd_read_reg_bit_port_id = - TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_result, port_id, - RTE_UINT16); -static cmdline_parse_token_num_t cmd_read_reg_bit_reg_off = - TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_result, reg_off, - RTE_UINT32); -static cmdline_parse_token_num_t cmd_read_reg_bit_bit_pos = - TOKEN_NUM_INITIALIZER(struct cmd_read_reg_bit_result, bit_pos, - RTE_UINT8); - -static cmdline_parse_inst_t cmd_read_reg_bit = { - .f = cmd_read_reg_bit_parsed, - .data = NULL, - .help_str = "read regbit : 0 <= bit_x <= 31", - .tokens = { - (void *)&cmd_read_reg_bit_read, - (void *)&cmd_read_reg_bit_regbit, - (void *)&cmd_read_reg_bit_port_id, - (void *)&cmd_read_reg_bit_reg_off, - (void *)&cmd_read_reg_bit_bit_pos, - NULL, - }, -}; - -/* *** WRITE PORT REGISTER *** */ -struct cmd_write_reg_result { - cmdline_fixed_string_t write; - cmdline_fixed_string_t reg; - portid_t port_id; - uint32_t reg_off; - uint32_t value; -}; - -static void -cmd_write_reg_parsed(void *parsed_result, - __rte_unused struct cmdline *cl, - __rte_unused void *data) -{ - struct cmd_write_reg_result *res = parsed_result; - port_reg_set(res->port_id, res->reg_off, res->value); -} - -static cmdline_parse_token_string_t cmd_write_reg_write = - TOKEN_STRING_INITIALIZER(struct cmd_write_reg_result, write, "write"); -static cmdline_parse_token_string_t cmd_write_reg_reg = - TOKEN_STRING_INITIALIZER(struct cmd_write_reg_result, reg, "reg"); -static cmdline_parse_token_num_t cmd_write_reg_port_id = - TOKEN_NUM_INITIALIZER(struct cmd_write_reg_result, port_id, RTE_UINT16); -static cmdline_parse_token_num_t cmd_write_reg_reg_off = - TOKEN_NUM_INITIALIZER(struct cmd_write_reg_result, reg_off, RTE_UINT32); -static cmdline_parse_token_num_t cmd_write_reg_value = - TOKEN_NUM_INITIALIZER(struct cmd_write_reg_result, value, RTE_UINT32); - -static cmdline_parse_inst_t cmd_write_reg = { - .f = cmd_write_reg_parsed, - .data = NULL, - .help_str = "write reg ", - .tokens = { - (void *)&cmd_write_reg_write, - (void *)&cmd_write_reg_reg, - (void *)&cmd_write_reg_port_id, - (void *)&cmd_write_reg_reg_off, - (void *)&cmd_write_reg_value, - NULL, - }, -}; - -/* *** WRITE PORT REGISTER BIT FIELD *** */ -struct cmd_write_reg_bit_field_result { - cmdline_fixed_string_t write; - cmdline_fixed_string_t regfield; - portid_t port_id; - uint32_t reg_off; - uint8_t bit1_pos; - uint8_t bit2_pos; - uint32_t value; -}; - -static void -cmd_write_reg_bit_field_parsed(void *parsed_result, - __rte_unused struct cmdline *cl, - __rte_unused void *data) -{ - struct cmd_write_reg_bit_field_result *res = parsed_result; - port_reg_bit_field_set(res->port_id, res->reg_off, - res->bit1_pos, res->bit2_pos, res->value); -} - -static cmdline_parse_token_string_t cmd_write_reg_bit_field_write = - TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_field_result, write, - "write"); -static cmdline_parse_token_string_t cmd_write_reg_bit_field_regfield = - TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_field_result, - regfield, "regfield"); -static cmdline_parse_token_num_t cmd_write_reg_bit_field_port_id = - TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, port_id, - RTE_UINT16); -static cmdline_parse_token_num_t cmd_write_reg_bit_field_reg_off = - TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, reg_off, - RTE_UINT32); -static cmdline_parse_token_num_t cmd_write_reg_bit_field_bit1_pos = - TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, bit1_pos, - RTE_UINT8); -static cmdline_parse_token_num_t cmd_write_reg_bit_field_bit2_pos = - TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, bit2_pos, - RTE_UINT8); -static cmdline_parse_token_num_t cmd_write_reg_bit_field_value = - TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_field_result, value, - RTE_UINT32); - -static cmdline_parse_inst_t cmd_write_reg_bit_field = { - .f = cmd_write_reg_bit_field_parsed, - .data = NULL, - .help_str = "write regfield " - ": " - "Set register bit field between bit_x and bit_y included", - .tokens = { - (void *)&cmd_write_reg_bit_field_write, - (void *)&cmd_write_reg_bit_field_regfield, - (void *)&cmd_write_reg_bit_field_port_id, - (void *)&cmd_write_reg_bit_field_reg_off, - (void *)&cmd_write_reg_bit_field_bit1_pos, - (void *)&cmd_write_reg_bit_field_bit2_pos, - (void *)&cmd_write_reg_bit_field_value, - NULL, - }, -}; - -/* *** WRITE PORT REGISTER BIT *** */ -struct cmd_write_reg_bit_result { - cmdline_fixed_string_t write; - cmdline_fixed_string_t regbit; - portid_t port_id; - uint32_t reg_off; - uint8_t bit_pos; - uint8_t value; -}; - -static void -cmd_write_reg_bit_parsed(void *parsed_result, - __rte_unused struct cmdline *cl, - __rte_unused void *data) -{ - struct cmd_write_reg_bit_result *res = parsed_result; - port_reg_bit_set(res->port_id, res->reg_off, res->bit_pos, res->value); -} - -static cmdline_parse_token_string_t cmd_write_reg_bit_write = - TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_result, write, - "write"); -static cmdline_parse_token_string_t cmd_write_reg_bit_regbit = - TOKEN_STRING_INITIALIZER(struct cmd_write_reg_bit_result, - regbit, "regbit"); -static cmdline_parse_token_num_t cmd_write_reg_bit_port_id = - TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, port_id, - RTE_UINT16); -static cmdline_parse_token_num_t cmd_write_reg_bit_reg_off = - TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, reg_off, - RTE_UINT32); -static cmdline_parse_token_num_t cmd_write_reg_bit_bit_pos = - TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, bit_pos, - RTE_UINT8); -static cmdline_parse_token_num_t cmd_write_reg_bit_value = - TOKEN_NUM_INITIALIZER(struct cmd_write_reg_bit_result, value, - RTE_UINT8); - -static cmdline_parse_inst_t cmd_write_reg_bit = { - .f = cmd_write_reg_bit_parsed, - .data = NULL, - .help_str = "write regbit 0|1: " - "0 <= bit_x <= 31", - .tokens = { - (void *)&cmd_write_reg_bit_write, - (void *)&cmd_write_reg_bit_regbit, - (void *)&cmd_write_reg_bit_port_id, - (void *)&cmd_write_reg_bit_reg_off, - (void *)&cmd_write_reg_bit_bit_pos, - (void *)&cmd_write_reg_bit_value, - NULL, - }, -}; - /* *** READ A RING DESCRIPTOR OF A PORT RX/TX QUEUE *** */ struct cmd_read_rxd_txd_result { cmdline_fixed_string_t read; @@ -14222,12 +13893,6 @@ static cmdline_parse_ctx_t builtin_ctx[] = { (cmdline_parse_inst_t *)&cmd_priority_flow_control_set, (cmdline_parse_inst_t *)&cmd_queue_priority_flow_control_set, (cmdline_parse_inst_t *)&cmd_config_dcb, - (cmdline_parse_inst_t *)&cmd_read_reg, - (cmdline_parse_inst_t *)&cmd_read_reg_bit_field, - (cmdline_parse_inst_t *)&cmd_read_reg_bit, - (cmdline_parse_inst_t *)&cmd_write_reg, - (cmdline_parse_inst_t *)&cmd_write_reg_bit_field, - (cmdline_parse_inst_t *)&cmd_write_reg_bit, (cmdline_parse_inst_t *)&cmd_read_rxd_txd, (cmdline_parse_inst_t *)&cmd_stop, (cmdline_parse_inst_t *)&cmd_mac_addr, diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index a2939867c4..3a53b616d8 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -31,7 +31,6 @@ #include #include #include -#include #include #include #include @@ -1138,200 +1137,6 @@ vlan_id_is_invalid(uint16_t vlan_id) return 1; } -static int -port_reg_off_is_invalid(portid_t port_id, uint32_t reg_off) -{ - const struct rte_pci_device *pci_dev; - const struct rte_bus *bus; - uint64_t pci_len; - - if (reg_off & 0x3) { - fprintf(stderr, - "Port register offset 0x%X not aligned on a 4-byte boundary\n", - (unsigned int)reg_off); - return 1; - } - - if (!ports[port_id].dev_info.device) { - fprintf(stderr, "Invalid device\n"); - return 0; - } - - bus = rte_bus_find_by_device(ports[port_id].dev_info.device); - if (bus && !strcmp(bus->name, "pci")) { - pci_dev = RTE_DEV_TO_PCI(ports[port_id].dev_info.device); - } else { - fprintf(stderr, "Not a PCI device\n"); - return 1; - } - - pci_len = pci_dev->mem_resource[0].len; - if (reg_off >= pci_len) { - fprintf(stderr, - "Port %d: register offset %u (0x%X) out of port PCI resource (length=%"PRIu64")\n", - port_id, (unsigned int)reg_off, (unsigned int)reg_off, - pci_len); - return 1; - } - return 0; -} - -static int -reg_bit_pos_is_invalid(uint8_t bit_pos) -{ - if (bit_pos <= 31) - return 0; - fprintf(stderr, "Invalid bit position %d (must be <= 31)\n", bit_pos); - return 1; -} - -#define display_port_and_reg_off(port_id, reg_off) \ - printf("port %d PCI register at offset 0x%X: ", (port_id), (reg_off)) - -static inline void -display_port_reg_value(portid_t port_id, uint32_t reg_off, uint32_t reg_v) -{ - display_port_and_reg_off(port_id, (unsigned)reg_off); - printf("0x%08X (%u)\n", (unsigned)reg_v, (unsigned)reg_v); -} - -void -port_reg_bit_display(portid_t port_id, uint32_t reg_off, uint8_t bit_x) -{ - uint32_t reg_v; - - - if (port_id_is_invalid(port_id, ENABLED_WARN)) - return; - if (port_reg_off_is_invalid(port_id, reg_off)) - return; - if (reg_bit_pos_is_invalid(bit_x)) - return; - reg_v = port_id_pci_reg_read(port_id, reg_off); - display_port_and_reg_off(port_id, (unsigned)reg_off); - printf("bit %d=%d\n", bit_x, (int) ((reg_v & (1 << bit_x)) >> bit_x)); -} - -void -port_reg_bit_field_display(portid_t port_id, uint32_t reg_off, - uint8_t bit1_pos, uint8_t bit2_pos) -{ - uint32_t reg_v; - uint8_t l_bit; - uint8_t h_bit; - - if (port_id_is_invalid(port_id, ENABLED_WARN)) - return; - if (port_reg_off_is_invalid(port_id, reg_off)) - return; - if (reg_bit_pos_is_invalid(bit1_pos)) - return; - if (reg_bit_pos_is_invalid(bit2_pos)) - return; - if (bit1_pos > bit2_pos) - l_bit = bit2_pos, h_bit = bit1_pos; - else - l_bit = bit1_pos, h_bit = bit2_pos; - - reg_v = port_id_pci_reg_read(port_id, reg_off); - reg_v >>= l_bit; - if (h_bit < 31) - reg_v &= ((1 << (h_bit - l_bit + 1)) - 1); - display_port_and_reg_off(port_id, (unsigned)reg_off); - printf("bits[%d, %d]=0x%0*X (%u)\n", l_bit, h_bit, - ((h_bit - l_bit) / 4) + 1, (unsigned)reg_v, (unsigned)reg_v); -} - -void -port_reg_display(portid_t port_id, uint32_t reg_off) -{ - uint32_t reg_v; - - if (port_id_is_invalid(port_id, ENABLED_WARN)) - return; - if (port_reg_off_is_invalid(port_id, reg_off)) - return; - reg_v = port_id_pci_reg_read(port_id, reg_off); - display_port_reg_value(port_id, reg_off, reg_v); -} - -void -port_reg_bit_set(portid_t port_id, uint32_t reg_off, uint8_t bit_pos, - uint8_t bit_v) -{ - uint32_t reg_v; - - if (port_id_is_invalid(port_id, ENABLED_WARN)) - return; - if (port_reg_off_is_invalid(port_id, reg_off)) - return; - if (reg_bit_pos_is_invalid(bit_pos)) - return; - if (bit_v > 1) { - fprintf(stderr, "Invalid bit value %d (must be 0 or 1)\n", - (int) bit_v); - return; - } - reg_v = port_id_pci_reg_read(port_id, reg_off); - if (bit_v == 0) - reg_v &= ~(1 << bit_pos); - else - reg_v |= (1 << bit_pos); - port_id_pci_reg_write(port_id, reg_off, reg_v); - display_port_reg_value(port_id, reg_off, reg_v); -} - -void -port_reg_bit_field_set(portid_t port_id, uint32_t reg_off, - uint8_t bit1_pos, uint8_t bit2_pos, uint32_t value) -{ - uint32_t max_v; - uint32_t reg_v; - uint8_t l_bit; - uint8_t h_bit; - - if (port_id_is_invalid(port_id, ENABLED_WARN)) - return; - if (port_reg_off_is_invalid(port_id, reg_off)) - return; - if (reg_bit_pos_is_invalid(bit1_pos)) - return; - if (reg_bit_pos_is_invalid(bit2_pos)) - return; - if (bit1_pos > bit2_pos) - l_bit = bit2_pos, h_bit = bit1_pos; - else - l_bit = bit1_pos, h_bit = bit2_pos; - - if ((h_bit - l_bit) < 31) - max_v = (1 << (h_bit - l_bit + 1)) - 1; - else - max_v = 0xFFFFFFFF; - - if (value > max_v) { - fprintf(stderr, "Invalid value %u (0x%x) must be < %u (0x%x)\n", - (unsigned)value, (unsigned)value, - (unsigned)max_v, (unsigned)max_v); - return; - } - reg_v = port_id_pci_reg_read(port_id, reg_off); - reg_v &= ~(max_v << l_bit); /* Keep unchanged bits */ - reg_v |= (value << l_bit); /* Set changed bits */ - port_id_pci_reg_write(port_id, reg_off, reg_v); - display_port_reg_value(port_id, reg_off, reg_v); -} - -void -port_reg_set(portid_t port_id, uint32_t reg_off, uint32_t reg_v) -{ - if (port_id_is_invalid(port_id, ENABLED_WARN)) - return; - if (port_reg_off_is_invalid(port_id, reg_off)) - return; - port_id_pci_reg_write(port_id, reg_off, reg_v); - display_port_reg_value(port_id, reg_off, reg_v); -} - static uint32_t eth_dev_get_overhead_len(uint32_t max_rx_pktlen, uint16_t max_mtu) { diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c index 1a3fd9ce8a..144f28819c 100644 --- a/app/test-pmd/csumonly.c +++ b/app/test-pmd/csumonly.c @@ -28,7 +28,6 @@ #include #include #include -#include #include #include #include diff --git a/app/test-pmd/flowgen.c b/app/test-pmd/flowgen.c index 1e01120ae9..fd6abc0f41 100644 --- a/app/test-pmd/flowgen.c +++ b/app/test-pmd/flowgen.c @@ -28,7 +28,6 @@ #include #include #include -#include #include #include #include diff --git a/app/test-pmd/iofwd.c b/app/test-pmd/iofwd.c index 71849aaf96..8fafdec548 100644 --- a/app/test-pmd/iofwd.c +++ b/app/test-pmd/iofwd.c @@ -28,7 +28,6 @@ #include #include #include -#include #include #include #include diff --git a/app/test-pmd/macfwd.c b/app/test-pmd/macfwd.c index 79c9241d00..beb220fbb4 100644 --- a/app/test-pmd/macfwd.c +++ b/app/test-pmd/macfwd.c @@ -28,7 +28,6 @@ #include #include #include -#include #include #include #include diff --git a/app/test-pmd/macswap.c b/app/test-pmd/macswap.c index acb0fd7fb4..4f8deb3382 100644 --- a/app/test-pmd/macswap.c +++ b/app/test-pmd/macswap.c @@ -28,7 +28,6 @@ #include #include #include -#include #include #include #include diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build index 74399178dd..8488efc138 100644 --- a/app/test-pmd/meson.build +++ b/app/test-pmd/meson.build @@ -32,7 +32,7 @@ if dpdk_conf.has('RTE_HAS_JANSSON') ext_deps += jansson_dep endif -deps += ['ethdev', 'cmdline', 'bus_pci'] +deps += ['ethdev', 'cmdline'] if dpdk_conf.has('RTE_CRYPTO_SCHEDULER') deps += 'crypto_scheduler' endif diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c index e3c9757f3f..c77624302f 100644 --- a/app/test-pmd/parameters.c +++ b/app/test-pmd/parameters.c @@ -33,7 +33,6 @@ #include #include #include -#include #include #include #include diff --git a/app/test-pmd/rxonly.c b/app/test-pmd/rxonly.c index 04457010f4..d528d4f34e 100644 --- a/app/test-pmd/rxonly.c +++ b/app/test-pmd/rxonly.c @@ -28,7 +28,6 @@ #include #include #include -#include #include #include #include diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index addcbcac85..ee686393c5 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -42,7 +42,6 @@ #include #include #include -#include #include #include #include diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index fb2f5195d3..e4ba7147a3 100644 --- a/app/test-pmd/testpmd.h +++ b/app/test-pmd/testpmd.h @@ -7,8 +7,6 @@ #include -#include -#include #ifdef RTE_LIB_GRO #include #endif @@ -267,7 +265,7 @@ struct port_txqueue { * The data structure associated with each port. */ struct rte_port { - struct rte_eth_dev_info dev_info; /**< PCI info + driver name */ + struct rte_eth_dev_info dev_info; /**< Device info + driver name */ struct rte_eth_conf dev_conf; /**< Port configuration. */ struct rte_ether_addr eth_addr; /**< Port ethernet address */ struct rte_eth_stats stats; /**< Last port statistics */ @@ -801,65 +799,6 @@ mbuf_pool_find(unsigned int sock_id, uint16_t idx) return rte_mempool_lookup((const char *)pool_name); } -/** - * Read/Write operations on a PCI register of a port. - */ -static inline uint32_t -port_pci_reg_read(struct rte_port *port, uint32_t reg_off) -{ - const struct rte_pci_device *pci_dev; - const struct rte_bus *bus; - void *reg_addr; - uint32_t reg_v; - - if (!port->dev_info.device) { - fprintf(stderr, "Invalid device\n"); - return 0; - } - - bus = rte_bus_find_by_device(port->dev_info.device); - if (bus && !strcmp(bus->name, "pci")) { - pci_dev = RTE_DEV_TO_PCI(port->dev_info.device); - } else { - fprintf(stderr, "Not a PCI device\n"); - return 0; - } - - reg_addr = ((char *)pci_dev->mem_resource[0].addr + reg_off); - reg_v = *((volatile uint32_t *)reg_addr); - return rte_le_to_cpu_32(reg_v); -} - -#define port_id_pci_reg_read(pt_id, reg_off) \ - port_pci_reg_read(&ports[(pt_id)], (reg_off)) - -static inline void -port_pci_reg_write(struct rte_port *port, uint32_t reg_off, uint32_t reg_v) -{ - const struct rte_pci_device *pci_dev; - const struct rte_bus *bus; - void *reg_addr; - - if (!port->dev_info.device) { - fprintf(stderr, "Invalid device\n"); - return; - } - - bus = rte_bus_find_by_device(port->dev_info.device); - if (bus && !strcmp(bus->name, "pci")) { - pci_dev = RTE_DEV_TO_PCI(port->dev_info.device); - } else { - fprintf(stderr, "Not a PCI device\n"); - return; - } - - reg_addr = ((char *)pci_dev->mem_resource[0].addr + reg_off); - *((volatile uint32_t *)reg_addr) = rte_cpu_to_le_32(reg_v); -} - -#define port_id_pci_reg_write(pt_id, reg_off, reg_value) \ - port_pci_reg_write(&ports[(pt_id)], (reg_off), (reg_value)) - static inline void get_start_cycles(uint64_t *start_tsc) { @@ -922,15 +861,6 @@ void update_fwd_ports(portid_t new_pid); void set_fwd_eth_peer(portid_t port_id, char *peer_addr); void port_mtu_set(portid_t port_id, uint16_t mtu); -void port_reg_bit_display(portid_t port_id, uint32_t reg_off, uint8_t bit_pos); -void port_reg_bit_set(portid_t port_id, uint32_t reg_off, uint8_t bit_pos, - uint8_t bit_v); -void port_reg_bit_field_display(portid_t port_id, uint32_t reg_off, - uint8_t bit1_pos, uint8_t bit2_pos); -void port_reg_bit_field_set(portid_t port_id, uint32_t reg_off, - uint8_t bit1_pos, uint8_t bit2_pos, uint32_t value); -void port_reg_display(portid_t port_id, uint32_t reg_off); -void port_reg_set(portid_t port_id, uint32_t reg_off, uint32_t value); int port_action_handle_create(portid_t port_id, uint32_t id, const struct rte_flow_indir_action_conf *conf, const struct rte_flow_action *action); diff --git a/app/test-pmd/txonly.c b/app/test-pmd/txonly.c index e1bc78b73d..021624952d 100644 --- a/app/test-pmd/txonly.c +++ b/app/test-pmd/txonly.c @@ -28,7 +28,6 @@ #include #include #include -#include #include #include #include diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst index 330e34427d..7dacd6fb04 100644 --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst @@ -55,7 +55,6 @@ These are divided into sections and can be accessed using help, help section or help display : Displaying port, stats and config information. help config : Configuration information. help ports : Configuring ports. - help registers : Reading and setting port registers. help filters : Filters configuration help. help traffic_management : Traffic Management commands. help devices : Device related commands. @@ -2356,86 +2355,6 @@ manage link bonding devices from within testpmd interactive prompt. See :doc:`../prog_guide/link_bonding_poll_mode_drv_lib` for more information. -Register Functions ------------------- - -The Register Functions can be used to read from and write to registers on the network card referenced by a port number. -This is mainly useful for debugging purposes. -Reference should be made to the appropriate datasheet for the network card for details on the register addresses -and fields that can be accessed. - -read reg -~~~~~~~~ - -Display the value of a port register:: - - testpmd> read reg (port_id) (address) - -For example, to examine the Flow Director control register (FDIRCTL, 0x0000EE000) on an Intel 82599 10 GbE Controller:: - - testpmd> read reg 0 0xEE00 - port 0 PCI register at offset 0xEE00: 0x4A060029 (1241907241) - -read regfield -~~~~~~~~~~~~~ - -Display a port register bit field:: - - testpmd> read regfield (port_id) (address) (bit_x) (bit_y) - -For example, reading the lowest two bits from the register in the example above:: - - testpmd> read regfield 0 0xEE00 0 1 - port 0 PCI register at offset 0xEE00: bits[0, 1]=0x1 (1) - -read regbit -~~~~~~~~~~~ - -Display a single port register bit:: - - testpmd> read regbit (port_id) (address) (bit_x) - -For example, reading the lowest bit from the register in the example above:: - - testpmd> read regbit 0 0xEE00 0 - port 0 PCI register at offset 0xEE00: bit 0=1 - -write reg -~~~~~~~~~ - -Set the value of a port register:: - - testpmd> write reg (port_id) (address) (value) - -For example, to clear a register:: - - testpmd> write reg 0 0xEE00 0x0 - port 0 PCI register at offset 0xEE00: 0x00000000 (0) - -write regfield -~~~~~~~~~~~~~~ - -Set bit field of a port register:: - - testpmd> write regfield (port_id) (address) (bit_x) (bit_y) (value) - -For example, writing to the register cleared in the example above:: - - testpmd> write regfield 0 0xEE00 0 1 2 - port 0 PCI register at offset 0xEE00: 0x00000002 (2) - -write regbit -~~~~~~~~~~~~ - -Set single bit value of a port register:: - - testpmd> write regbit (port_id) (address) (bit_x) (value) - -For example, to set the high bit in the register from the example above:: - - testpmd> write regbit 0 0xEE00 31 1 - port 0 PCI register at offset 0xEE00: 0x8000000A (2147483658) - Traffic Metering and Policing ----------------------------- From patchwork Thu Jul 28 15:26:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114376 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6FCEDA00C5; Thu, 28 Jul 2022 17:27:19 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 46C3842BE9; Thu, 28 Jul 2022 17:27:03 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 7D90C42BE9 for ; Thu, 28 Jul 2022 17:27:02 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022022; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IgfPaFWCdAro7DQ/IZbICdoCjAepfEjWUzjT2TJwHSc=; b=Mrbu5DdxbPeG9LZjRWQntzuzXuBr75txhVOFimps8bjdHG2nUrYy6hGuZD6Mu8TxGSMN5C ltMb9ScKMZv6ZflwjvCZ2IvMBDIbQa7nR1XeUMA4mQUrhBuaa2EAh0dHXw7gvtNCGpnDlF nhmu8ZnRFGQZ1BZlYKiW60JpxeH+i4M= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-55-LZK7MfNdO2qPB-oUHrndAg-1; Thu, 28 Jul 2022 11:26:58 -0400 X-MC-Unique: LZK7MfNdO2qPB-oUHrndAg-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 76E1D280176C; Thu, 28 Jul 2022 15:26:58 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id D7F211415118; Thu, 28 Jul 2022 15:26:57 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Cristian Dumitrescu Subject: [RFC v3 05/26] kni: stop populating PCI info in examples Date: Thu, 28 Jul 2022 17:26:19 +0200 Message-Id: <20220728152640.547725-6-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 addr and id fields are deprecated and are not used in the kni library. Stop populating them in the in-tree examples. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- app/test/test_kni.c | 30 ------------------------------ examples/ip_pipeline/kni.c | 10 ---------- 2 files changed, 40 deletions(-) diff --git a/app/test/test_kni.c b/app/test/test_kni.c index 622315c8b1..4039da0b08 100644 --- a/app/test/test_kni.c +++ b/app/test/test_kni.c @@ -25,7 +25,6 @@ test_kni(void) #include #include #include -#include #include #include @@ -426,8 +425,6 @@ test_kni_processing(uint16_t port_id, struct rte_mempool *mp) struct rte_kni_conf conf; struct rte_eth_dev_info info; struct rte_kni_ops ops; - const struct rte_pci_device *pci_dev; - const struct rte_bus *bus = NULL; if (!mp) return -1; @@ -443,13 +440,6 @@ test_kni_processing(uint16_t port_id, struct rte_mempool *mp) return -1; } - if (info.device) - bus = rte_bus_find_by_device(info.device); - if (bus && !strcmp(bus->name, "pci")) { - pci_dev = RTE_DEV_TO_PCI(info.device); - conf.addr = pci_dev->addr; - conf.id = pci_dev->id; - } snprintf(conf.name, sizeof(conf.name), TEST_KNI_PORT); /* core id 1 configured for kernel thread */ @@ -545,8 +535,6 @@ test_kni(void) struct rte_kni_conf conf; struct rte_eth_dev_info info; struct rte_kni_ops ops; - const struct rte_pci_device *pci_dev; - const struct rte_bus *bus; FILE *fd; DIR *dir; char buf[16]; @@ -645,15 +633,6 @@ test_kni(void) return -1; } - if (info.device) - bus = rte_bus_find_by_device(info.device); - else - bus = NULL; - if (bus && !strcmp(bus->name, "pci")) { - pci_dev = RTE_DEV_TO_PCI(info.device); - conf.addr = pci_dev->addr; - conf.id = pci_dev->id; - } conf.group_id = port_id; conf.mbuf_size = MAX_PACKET_SZ; @@ -689,15 +668,6 @@ test_kni(void) goto fail; } - if (info.device) - bus = rte_bus_find_by_device(info.device); - else - bus = NULL; - if (bus && !strcmp(bus->name, "pci")) { - pci_dev = RTE_DEV_TO_PCI(info.device); - conf.addr = pci_dev->addr; - conf.id = pci_dev->id; - } conf.group_id = port_id; conf.mbuf_size = MAX_PACKET_SZ; diff --git a/examples/ip_pipeline/kni.c b/examples/ip_pipeline/kni.c index a2d3331cb0..cd02c39478 100644 --- a/examples/ip_pipeline/kni.c +++ b/examples/ip_pipeline/kni.c @@ -6,7 +6,6 @@ #include #include -#include #include #include "kni.h" @@ -107,8 +106,6 @@ kni_create(const char *name, struct kni_params *params) struct mempool *mempool; struct link *link; struct rte_kni *k; - const struct rte_pci_device *pci_dev; - const struct rte_bus *bus = NULL; int ret; /* Check input params */ @@ -134,13 +131,6 @@ kni_create(const char *name, struct kni_params *params) kni_conf.core_id = params->thread_id; kni_conf.group_id = link->port_id; kni_conf.mbuf_size = mempool->buffer_size; - if (dev_info.device) - bus = rte_bus_find_by_device(dev_info.device); - if (bus && !strcmp(bus->name, "pci")) { - pci_dev = RTE_DEV_TO_PCI(dev_info.device); - kni_conf.addr = pci_dev->addr; - kni_conf.id = pci_dev->id; - } memset(&kni_ops, 0, sizeof(kni_ops)); kni_ops.port_id = link->port_id; From patchwork Thu Jul 28 15:26:20 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114377 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A05A9A00C5; Thu, 28 Jul 2022 17:27:25 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 241F042BC5; Thu, 28 Jul 2022 17:27:06 +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 989904014F for ; Thu, 28 Jul 2022 17:27:05 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022025; 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=I2HmaXXgi+id40VhQX6qAjpQ8oEc6efbxm3DdXEU2LM=; b=VqoxzufE34JvUOqTgX09UrEcAH3OV7eQ2AOQ/NocHpODW0TpRwOsgEL2/+lkKAtl9SBXAo 1CmCxD+AgJcqc4dDkLfpChYD+TPv0F1lGi18HnvqzEOJCCPHgZXaals37uxAHW48voXuqt OCVAn5QD3wgyMvAvQTv1TYkmwc7+0lk= 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-392-GGxOcbDaMiiOhMrzqDg4IA-1; Thu, 28 Jul 2022 11:27:01 -0400 X-MC-Unique: GGxOcbDaMiiOhMrzqDg4IA-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 4ABAD8037AF for ; Thu, 28 Jul 2022 15:27:01 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id CE2B61415121 for ; Thu, 28 Jul 2022 15:27:00 +0000 (UTC) From: David Marchand To: dev@dpdk.org Subject: [RFC v3 06/26] examples/ethtool: prefer device name Date: Thu, 28 Jul 2022 17:26:20 +0200 Message-Id: <20220728152640.547725-7-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 Rely on the generic device name rather than restrict to only supporting PCI devices. Signed-off-by: David Marchand --- examples/ethtool/lib/rte_ethtool.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/examples/ethtool/lib/rte_ethtool.c b/examples/ethtool/lib/rte_ethtool.c index ffaad96498..88dc917b73 100644 --- a/examples/ethtool/lib/rte_ethtool.c +++ b/examples/ethtool/lib/rte_ethtool.c @@ -8,7 +8,6 @@ #include #include #include -#include #ifdef RTE_NET_IXGBE #include #endif @@ -23,8 +22,6 @@ rte_ethtool_get_drvinfo(uint16_t port_id, struct ethtool_drvinfo *drvinfo) { struct rte_eth_dev_info dev_info; struct rte_dev_reg_info reg_info; - const struct rte_pci_device *pci_dev; - const struct rte_bus *bus = NULL; int n; int ret; @@ -52,18 +49,8 @@ rte_ethtool_get_drvinfo(uint16_t port_id, struct ethtool_drvinfo *drvinfo) strlcpy(drvinfo->driver, dev_info.driver_name, sizeof(drvinfo->driver)); strlcpy(drvinfo->version, rte_version(), sizeof(drvinfo->version)); - /* TODO: replace bus_info by rte_devargs.name */ - if (dev_info.device) - bus = rte_bus_find_by_device(dev_info.device); - if (bus && !strcmp(bus->name, "pci")) { - pci_dev = RTE_DEV_TO_PCI(dev_info.device); - snprintf(drvinfo->bus_info, sizeof(drvinfo->bus_info), - "%04x:%02x:%02x.%x", - pci_dev->addr.domain, pci_dev->addr.bus, - pci_dev->addr.devid, pci_dev->addr.function); - } else { - snprintf(drvinfo->bus_info, sizeof(drvinfo->bus_info), "N/A"); - } + strlcpy(drvinfo->bus_info, dev_info.device->name, + sizeof(drvinfo->bus_info)); memset(®_info, 0, sizeof(reg_info)); rte_eth_dev_get_reg_info(port_id, ®_info); From patchwork Thu Jul 28 15:26:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114378 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 110E3A00C5; Thu, 28 Jul 2022 17:27:32 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 016F742BC7; Thu, 28 Jul 2022 17:27:10 +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 435C842BED for ; Thu, 28 Jul 2022 17:27:08 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022027; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=e/P58+BW7+PCPf4+C2VAcxQ0WL10vWsUzdaY0G62keM=; b=UFH2dn9rk8v5M2s5hku4Kx1I1g/IwIUesiPaua0adEAOnCAuksPbHvJRJ88QInX0lKIYqa 1gQ45cRHP9+fMgi7WFbnRsq7mYaSZo8SjoNKIK8tU/lrjLUS1NerFlJ62twBw+1DOw3xSF BX0/z/AD3X/doMFOPMChHBIvazNNAH0= 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-400-OigCr2bXPtCASQUl5rKL8g-1; Thu, 28 Jul 2022 11:27:04 -0400 X-MC-Unique: OigCr2bXPtCASQUl5rKL8g-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 77CE7101A588; Thu, 28 Jul 2022 15:27:04 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id B33381415118; Thu, 28 Jul 2022 15:27:03 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Aman Singh , Yuying Zhang Subject: [RFC v3 07/26] dev: hide debug messages in device iterator Date: Thu, 28 Jul 2022 17:26:21 +0200 Message-Id: <20220728152640.547725-8-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 For any bus that does not support device iteration, rte_dev_iterator_init both returned an error code and logged an error message. An application (like testpmd) that only wants to list devices, would have no choice but to inspect a bus object to avoid spewing error logs. Make those log messages debug level, and remove the check in testpmd. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- app/test-pmd/config.c | 4 ---- lib/eal/common/eal_common_dev.c | 7 +++---- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 3a53b616d8..bc73819183 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -641,10 +641,6 @@ device_infos_display(const char *identifier) if (identifier && da.bus != next) continue; - /* Skip buses that don't have iterate method */ - if (!next->dev_iterate) - continue; - snprintf(devstr, sizeof(devstr), "bus=%s", next->name); RTE_DEV_FOREACH(dev, devstr, &dev_iter) { diff --git a/lib/eal/common/eal_common_dev.c b/lib/eal/common/eal_common_dev.c index 9d913e5478..b6f0392f30 100644 --- a/lib/eal/common/eal_common_dev.c +++ b/lib/eal/common/eal_common_dev.c @@ -592,18 +592,17 @@ rte_dev_iterator_init(struct rte_dev_iterator *it, * one layer specified. */ if (bus == NULL && cls == NULL) { - RTE_LOG(ERR, EAL, - "Either bus or class must be specified.\n"); + RTE_LOG(DEBUG, EAL, "Either bus or class must be specified.\n"); rte_errno = EINVAL; goto get_out; } if (bus != NULL && bus->dev_iterate == NULL) { - RTE_LOG(ERR, EAL, "Bus %s not supported\n", bus->name); + RTE_LOG(DEBUG, EAL, "Bus %s not supported\n", bus->name); rte_errno = ENOTSUP; goto get_out; } if (cls != NULL && cls->dev_iterate == NULL) { - RTE_LOG(ERR, EAL, "Class %s not supported\n", cls->name); + RTE_LOG(DEBUG, EAL, "Class %s not supported\n", cls->name); rte_errno = ENOTSUP; goto get_out; } From patchwork Thu Jul 28 15:26:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114380 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id EF207A00C5; Thu, 28 Jul 2022 17:27:43 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4D0E942BF5; Thu, 28 Jul 2022 17:27:21 +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 20A4242BF5 for ; Thu, 28 Jul 2022 17:27:19 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022038; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iZZkJcN7rIbl2rlPAfODjLzVxehbUJtDS4ZZYFU2vNU=; b=gfVEHAl5rAF9LQowhPSDU1hHZdodK+O7YreWyYq00tsWcAujJHn+pf472FdnEovMVp9Gn5 /zmDttQVSYanClkHMKP6yea4q7wGam94GEB40eFM3HimAenMBa4a+GyTszMDhLupCXEQK4 24lBA8JGtcaPb0pVJGjR1nLOD1pm7RM= 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-494-hxpcTJaVMumI4RP8JTq2nw-1; Thu, 28 Jul 2022 11:27:11 -0400 X-MC-Unique: hxpcTJaVMumI4RP8JTq2nw-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 A16B9811E81; Thu, 28 Jul 2022 15:27:10 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3D3A81415118; Thu, 28 Jul 2022 15:27:07 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Fan Zhang , Ashish Gupta , Qiming Yang , Wenjun Wu , Shijith Thotton , Srisivasubramanian Srinivasan , Chengwen Feng , Kevin Laatz , Bruce Richardson , Thomas Monjalon , Ferruh Yigit , Andrew Rybchenko , Olivier Matz , Ori Kam , Akhil Goyal , Maxime Coquelin , Chenbo Xia Subject: [RFC v3 08/26] dev: move unrelated macros from header Date: Thu, 28 Jul 2022 17:26:22 +0200 Message-Id: <20220728152640.547725-9-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 RTE_FUNC_PTR_OR_* macros have nothing to do with the rte_device object and associated API. Move them to rte_common.h and include it where needed. Signed-off-by: David Marchand --- drivers/common/qat/qat_device.c | 1 + drivers/compress/qat/qat_comp_pmd.c | 1 + drivers/crypto/scheduler/rte_cryptodev_scheduler.c | 1 + drivers/net/ixgbe/rte_pmd_ixgbe.c | 1 + drivers/net/liquidio/lio_ethdev.c | 1 + lib/compressdev/rte_compressdev.c | 1 + lib/dmadev/rte_dmadev.c | 1 + lib/eal/include/rte_common.h | 11 +++++++++++ lib/eal/include/rte_dev.h | 11 ----------- lib/ethdev/ethdev_driver.c | 1 + lib/ethdev/ethdev_pci.h | 1 + lib/mempool/rte_mempool_ops.c | 1 + lib/regexdev/rte_regexdev.c | 1 + lib/security/rte_security.c | 1 + lib/vhost/vdpa.c | 1 + 15 files changed, 24 insertions(+), 11 deletions(-) diff --git a/drivers/common/qat/qat_device.c b/drivers/common/qat/qat_device.c index db4b087d2b..6583cf0554 100644 --- a/drivers/common/qat/qat_device.c +++ b/drivers/common/qat/qat_device.c @@ -2,6 +2,7 @@ * Copyright(c) 2018-2022 Intel Corporation */ +#include #include #include #include diff --git a/drivers/compress/qat/qat_comp_pmd.c b/drivers/compress/qat/qat_comp_pmd.c index dc8db84a68..e4cac159be 100644 --- a/drivers/compress/qat/qat_comp_pmd.c +++ b/drivers/compress/qat/qat_comp_pmd.c @@ -2,6 +2,7 @@ * Copyright(c) 2015-2022 Intel Corporation */ +#include #include #include "qat_comp.h" diff --git a/drivers/crypto/scheduler/rte_cryptodev_scheduler.c b/drivers/crypto/scheduler/rte_cryptodev_scheduler.c index 1e0c4fe464..88c9b21cd8 100644 --- a/drivers/crypto/scheduler/rte_cryptodev_scheduler.c +++ b/drivers/crypto/scheduler/rte_cryptodev_scheduler.c @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause * Copyright(c) 2017 Intel Corporation */ +#include #include #include #include diff --git a/drivers/net/ixgbe/rte_pmd_ixgbe.c b/drivers/net/ixgbe/rte_pmd_ixgbe.c index 9729f8575f..8ae4d9b39a 100644 --- a/drivers/net/ixgbe/rte_pmd_ixgbe.c +++ b/drivers/net/ixgbe/rte_pmd_ixgbe.c @@ -2,6 +2,7 @@ * Copyright(c) 2010-2017 Intel Corporation */ +#include #include #include "base/ixgbe_api.h" diff --git a/drivers/net/liquidio/lio_ethdev.c b/drivers/net/liquidio/lio_ethdev.c index 90ffe31b9f..ccbd0ff849 100644 --- a/drivers/net/liquidio/lio_ethdev.c +++ b/drivers/net/liquidio/lio_ethdev.c @@ -2,6 +2,7 @@ * Copyright(c) 2017 Cavium, Inc */ +#include #include #include #include diff --git a/lib/compressdev/rte_compressdev.c b/lib/compressdev/rte_compressdev.c index 22c438f2dd..12469042f7 100644 --- a/lib/compressdev/rte_compressdev.c +++ b/lib/compressdev/rte_compressdev.c @@ -6,6 +6,7 @@ #include #include +#include #include #include #include diff --git a/lib/dmadev/rte_dmadev.c b/lib/dmadev/rte_dmadev.c index 174d4c40ae..e199b888c8 100644 --- a/lib/dmadev/rte_dmadev.c +++ b/lib/dmadev/rte_dmadev.c @@ -5,6 +5,7 @@ #include +#include #include #include #include diff --git a/lib/eal/include/rte_common.h b/lib/eal/include/rte_common.h index a96cc2a138..e2d1271c53 100644 --- a/lib/eal/include/rte_common.h +++ b/lib/eal/include/rte_common.h @@ -861,6 +861,17 @@ rte_log2_u64(uint64_t v) /** Number of elements in the array. */ #define RTE_DIM(a) (sizeof (a) / sizeof ((a)[0])) +/** Macros to check for invalid function pointers. */ +#define RTE_FUNC_PTR_OR_ERR_RET(func, retval) do { \ + if ((func) == NULL) \ + return retval; \ +} while (0) + +#define RTE_FUNC_PTR_OR_RET(func) do { \ + if ((func) == NULL) \ + return; \ +} while (0) + /** * Converts a numeric string to the equivalent uint64_t value. * As well as straight number conversion, also recognises the suffixes diff --git a/lib/eal/include/rte_dev.h b/lib/eal/include/rte_dev.h index e6ff1218f9..24f9122558 100644 --- a/lib/eal/include/rte_dev.h +++ b/lib/eal/include/rte_dev.h @@ -36,17 +36,6 @@ typedef void (*rte_dev_event_cb_fn)(const char *device_name, enum rte_dev_event_type event, void *cb_arg); -/* Macros to check for invalid function pointers */ -#define RTE_FUNC_PTR_OR_ERR_RET(func, retval) do { \ - if ((func) == NULL) \ - return retval; \ -} while (0) - -#define RTE_FUNC_PTR_OR_RET(func) do { \ - if ((func) == NULL) \ - return; \ -} while (0) - /** * Device policies. */ diff --git a/lib/ethdev/ethdev_driver.c b/lib/ethdev/ethdev_driver.c index a285f213f0..86f5a37874 100644 --- a/lib/ethdev/ethdev_driver.c +++ b/lib/ethdev/ethdev_driver.c @@ -2,6 +2,7 @@ * Copyright(c) 2022 Intel Corporation */ +#include #include #include diff --git a/lib/ethdev/ethdev_pci.h b/lib/ethdev/ethdev_pci.h index 0549842709..b4bb460dcb 100644 --- a/lib/ethdev/ethdev_pci.h +++ b/lib/ethdev/ethdev_pci.h @@ -10,6 +10,7 @@ extern "C" { #endif +#include #include #include #include diff --git a/lib/mempool/rte_mempool_ops.c b/lib/mempool/rte_mempool_ops.c index 2d36dee8f0..d60235a7e3 100644 --- a/lib/mempool/rte_mempool_ops.c +++ b/lib/mempool/rte_mempool_ops.c @@ -6,6 +6,7 @@ #include #include +#include #include #include #include diff --git a/lib/regexdev/rte_regexdev.c b/lib/regexdev/rte_regexdev.c index 02a388bc5d..aa57ab5bfa 100644 --- a/lib/regexdev/rte_regexdev.c +++ b/lib/regexdev/rte_regexdev.c @@ -5,6 +5,7 @@ #include +#include #include #include diff --git a/lib/security/rte_security.c b/lib/security/rte_security.c index 4f5e4b4d49..046b6496d2 100644 --- a/lib/security/rte_security.c +++ b/lib/security/rte_security.c @@ -4,6 +4,7 @@ * Copyright (c) 2020 Samsung Electronics Co., Ltd All Rights Reserved */ +#include #include #include #include diff --git a/lib/vhost/vdpa.c b/lib/vhost/vdpa.c index b2a2919fc0..bdebcbe565 100644 --- a/lib/vhost/vdpa.c +++ b/lib/vhost/vdpa.c @@ -10,6 +10,7 @@ #include +#include #include #include #include From patchwork Thu Jul 28 15:26:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114379 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D010CA00C5; Thu, 28 Jul 2022 17:27:37 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5D76142BE8; Thu, 28 Jul 2022 17:27:18 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 1167E42BB1 for ; Thu, 28 Jul 2022 17:27:15 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022035; 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=dV5QfK90LtLPKpwTQAosy6LbcssDGr+d3gXbTjn3fWc=; b=QTUq0knCcphn8q4MKaFl0fasPL6X9xsNNqY0SMuRuPYjDnw5SqNofN4/p8wvOrnO4FZdG+ K+VOQ+n7iNGZ5jcqh9tH2bZpfaxzZfIjo0CioT2zMrCgbgQqkvAT5o3WJDtrBmZCpS6zqk yq8/rkKBu8Hhuqt3sUrjyATDOLZpI2k= 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-317-Ll2cen2YMwWY11bZmtNC5A-1; Thu, 28 Jul 2022 11:27:14 -0400 X-MC-Unique: Ll2cen2YMwWY11bZmtNC5A-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 8FFA1811E76 for ; Thu, 28 Jul 2022 15:27:13 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 204D11415118 for ; Thu, 28 Jul 2022 15:27:12 +0000 (UTC) From: David Marchand To: dev@dpdk.org Subject: [RFC v3 09/26] devargs: remove dependency on bus header Date: Thu, 28 Jul 2022 17:26:23 +0200 Message-Id: <20220728152640.547725-10-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 We don't need to include rte_bus.h in rte_devargs.h. Only a forward declaration of rte_bus and an inclusion of rte_dev.h are needed. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- app/test/test_vdev.c | 1 + lib/eal/include/rte_devargs.h | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/test/test_vdev.c b/app/test/test_vdev.c index 720722c363..5eeff3106d 100644 --- a/app/test/test_vdev.c +++ b/app/test/test_vdev.c @@ -8,6 +8,7 @@ #include #include +#include #include #include "test.h" diff --git a/lib/eal/include/rte_devargs.h b/lib/eal/include/rte_devargs.h index 37a0f042ab..38dee2f288 100644 --- a/lib/eal/include/rte_devargs.h +++ b/lib/eal/include/rte_devargs.h @@ -22,7 +22,9 @@ extern "C" { #include #include -#include +#include + +struct rte_bus; /** * Bus type key in global devargs syntax. From patchwork Thu Jul 28 15:26:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114381 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A3CBAA00C5; Thu, 28 Jul 2022 17:27:49 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 37C1F42BF9; Thu, 28 Jul 2022 17:27:23 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id B853842BF9 for ; Thu, 28 Jul 2022 17:27:21 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022041; 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=KkQ1nh9ZKE99xj2zAxXJmvb7JJ9N3vrmLvKm17oXnQI=; b=YJgYO/Ap54bMd9yL0n+wVGK+7SXuF86ngS0ae8RX5OVSi9rUnm7qiiqlxCLnhebzOleEI6 Nr5Lk2Fp0ukYaK4diuqlWlAqwCJv6NpVJcxfrZYLOfyz3/7EojVKCLeZ5Er/8hyeU7lJYs IyDo292/v4rLrgY+TX9M2Zz5SEEUmSM= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-219-iNjBikXsM2iGwuZ1XaDG_A-1; Thu, 28 Jul 2022 11:27:17 -0400 X-MC-Unique: iNjBikXsM2iGwuZ1XaDG_A-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 8A4381C14492 for ; Thu, 28 Jul 2022 15:27:17 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 17C571415124 for ; Thu, 28 Jul 2022 15:27:16 +0000 (UTC) From: David Marchand To: dev@dpdk.org Subject: [RFC v3 10/26] build: export drivers headers Date: Thu, 28 Jul 2022 17:26:24 +0200 Message-Id: <20220728152640.547725-11-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 Same as for device classes, external DPDK users may need to include some bus headers for their out of tree drivers. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- drivers/meson.build | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/meson.build b/drivers/meson.build index b22c2adda7..7449643fa9 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -89,6 +89,7 @@ foreach subpath:subdirs name = drv sources = [] headers = [] + driver_sdk_headers = [] # public headers included by drivers objs = [] cflags = default_cflags includes = [include_directories(drv_path)] @@ -158,6 +159,9 @@ foreach subpath:subdirs dpdk_extra_ldflags += pkgconfig_extra_libs install_headers(headers) + if get_option('enable_driver_sdk') + install_headers(driver_sdk_headers) + endif # generate pmdinfo sources by building a temporary # lib and then running pmdinfogen on the contents of From patchwork Thu Jul 28 15:26:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114382 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9A0C5A00C5; Thu, 28 Jul 2022 17:27:56 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6053A42BF2; Thu, 28 Jul 2022 17:27:28 +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 CD2A042BDF for ; Thu, 28 Jul 2022 17:27:26 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022046; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=dE64aN0ayiLujBg05ioQpizP9diJfSbqYsfvxXOe+Ao=; b=YYXnXPmes1myqAggSdVBcpRpkc4nBXa/Too+po57axAX/GGEPaIBiPDBkxgVwT8zmDhgua xkcvAHQgu95gcq/rhoTulFT9MRESp0vsm/3wfg94bGshNJAMhAPUpus2sAOUSdk4uHZx++ m6XldFnTyAl6J1WF89R87fc6mMJQR0M= 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-452-nsOFiWalO_CRVMb6dZ3ffw-1; Thu, 28 Jul 2022 11:27:23 -0400 X-MC-Unique: nsOFiWalO_CRVMb6dZ3ffw-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 BC4B5802D2C; Thu, 28 Jul 2022 15:27:22 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0BD141415118; Thu, 28 Jul 2022 15:27:20 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Parav Pandit , Xueming Li , Ray Kinsella , Matan Azrad , Viacheslav Ovsiienko Subject: [RFC v3 11/26] bus/auxiliary: make driver-only headers private Date: Thu, 28 Jul 2022 17:26:25 +0200 Message-Id: <20220728152640.547725-12-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 The auxiliary bus interface is for drivers only. Mark as internal and move the header in the driver headers list. While at it, cleanup the code: - fix indentation, - remove unneeded reference to bus specific singleton object, - remove unneeded list head structure type, - reorder the definitions and macro manipulating the bus singleton object, - remove inclusion of rte_bus.h and fix the code that relied on implicit inclusion, Signed-off-by: David Marchand --- Changes since RFC v2: - squashed cleanup for this bus code from other patches, - updated release notes, --- doc/guides/rel_notes/release_22_11.rst | 5 ++++ drivers/bus/auxiliary/auxiliary_common.c | 3 -- drivers/bus/auxiliary/auxiliary_params.c | 1 - ...bus_auxiliary.h => bus_auxiliary_driver.h} | 24 +++++++-------- 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 +- .../common/mlx5/linux/mlx5_common_auxiliary.c | 2 +- drivers/common/mlx5/linux/mlx5_common_os.c | 2 +- drivers/common/mlx5/mlx5_common_private.h | 2 +- drivers/net/mlx5/linux/mlx5_os.c | 2 +- 12 files changed, 36 insertions(+), 44 deletions(-) rename drivers/bus/auxiliary/{rte_bus_auxiliary.h => bus_auxiliary_driver.h} (90%) diff --git a/doc/guides/rel_notes/release_22_11.rst b/doc/guides/rel_notes/release_22_11.rst index 3cea3aa8eb..7247acebd2 100644 --- a/doc/guides/rel_notes/release_22_11.rst +++ b/doc/guides/rel_notes/release_22_11.rst @@ -84,6 +84,11 @@ API Changes Also, make sure to start the actual text at the margin. ======================================================= +* drivers: Registering a driver on the ``auxiliary``, + buses has been marked as an internal API. + External users may still register their driver using the associated driver + headers (see ``enable_driver_sdk`` meson option). + * raw/ifgpa: The function ``rte_pmd_ifpga_get_pci_bus`` has been removed. diff --git a/drivers/bus/auxiliary/auxiliary_common.c b/drivers/bus/auxiliary/auxiliary_common.c index 2cf8fe672d..6cf6c170ec 100644 --- a/drivers/bus/auxiliary/auxiliary_common.c +++ b/drivers/bus/auxiliary/auxiliary_common.c @@ -23,7 +23,6 @@ #include #include "private.h" -#include "rte_bus_auxiliary.h" static struct rte_devargs * auxiliary_devargs_lookup(const char *name) @@ -259,7 +258,6 @@ void rte_auxiliary_register(struct rte_auxiliary_driver *driver) { TAILQ_INSERT_TAIL(&auxiliary_bus.driver_list, driver, next); - driver->bus = &auxiliary_bus; } /* Unregister a driver */ @@ -267,7 +265,6 @@ void rte_auxiliary_unregister(struct rte_auxiliary_driver *driver) { TAILQ_REMOVE(&auxiliary_bus.driver_list, driver, next); - driver->bus = NULL; } /* Add a device to auxiliary bus */ diff --git a/drivers/bus/auxiliary/auxiliary_params.c b/drivers/bus/auxiliary/auxiliary_params.c index 9017118b36..0289777922 100644 --- a/drivers/bus/auxiliary/auxiliary_params.c +++ b/drivers/bus/auxiliary/auxiliary_params.c @@ -10,7 +10,6 @@ #include #include "private.h" -#include "rte_bus_auxiliary.h" enum auxiliary_params { RTE_AUXILIARY_PARAM_NAME, diff --git a/drivers/bus/auxiliary/rte_bus_auxiliary.h b/drivers/bus/auxiliary/bus_auxiliary_driver.h similarity index 90% rename from drivers/bus/auxiliary/rte_bus_auxiliary.h rename to drivers/bus/auxiliary/bus_auxiliary_driver.h index 93b266daf7..1c2d2c04af 100644 --- a/drivers/bus/auxiliary/rte_bus_auxiliary.h +++ b/drivers/bus/auxiliary/bus_auxiliary_driver.h @@ -2,8 +2,8 @@ * Copyright (c) 2021 NVIDIA Corporation & Affiliates */ -#ifndef RTE_BUS_AUXILIARY_H -#define RTE_BUS_AUXILIARY_H +#ifndef BUS_AUXILIARY_DRIVER_H +#define BUS_AUXILIARY_DRIVER_H /** * @file @@ -22,17 +22,16 @@ extern "C" { #include #include +#include #include #include #include -#include #include #define RTE_BUS_AUXILIARY_NAME "auxiliary" /* Forward declarations */ struct rte_auxiliary_driver; -struct rte_auxiliary_bus; struct rte_auxiliary_device; /** @@ -43,7 +42,7 @@ struct rte_auxiliary_device; * @return * Whether the driver can handle the auxiliary device. */ -typedef bool(rte_auxiliary_match_t)(const char *name); +typedef bool (rte_auxiliary_match_t)(const char *name); /** * Initialization function for the driver called during auxiliary probing. @@ -56,8 +55,8 @@ typedef bool(rte_auxiliary_match_t)(const char *name); * - 0 On success. * - Negative value and rte_errno is set otherwise. */ -typedef int(rte_auxiliary_probe_t)(struct rte_auxiliary_driver *drv, - struct rte_auxiliary_device *dev); +typedef int (rte_auxiliary_probe_t)(struct rte_auxiliary_driver *drv, + struct rte_auxiliary_device *dev); /** * Uninitialization function for the driver called during hotplugging. @@ -87,7 +86,7 @@ typedef int (rte_auxiliary_remove_t)(struct rte_auxiliary_device *dev); * - Negative value and rte_errno is set otherwise. */ typedef int (rte_auxiliary_dma_map_t)(struct rte_auxiliary_device *dev, - void *addr, uint64_t iova, size_t len); + void *addr, uint64_t iova, size_t len); /** * Driver-specific DMA un-mapping. After a successful call the device @@ -106,7 +105,7 @@ typedef int (rte_auxiliary_dma_map_t)(struct rte_auxiliary_device *dev, * - Negative value and rte_errno is set otherwise. */ typedef int (rte_auxiliary_dma_unmap_t)(struct rte_auxiliary_device *dev, - void *addr, uint64_t iova, size_t len); + void *addr, uint64_t iova, size_t len); /** * A structure describing an auxiliary device. @@ -125,7 +124,6 @@ struct rte_auxiliary_device { struct rte_auxiliary_driver { RTE_TAILQ_ENTRY(rte_auxiliary_driver) next; /**< Next in list. */ struct rte_driver driver; /**< Inherit core driver. */ - struct rte_auxiliary_bus *bus; /**< Auxiliary bus reference. */ rte_auxiliary_match_t *match; /**< Device match function. */ rte_auxiliary_probe_t *probe; /**< Device probe function. */ rte_auxiliary_remove_t *remove; /**< Device remove function. */ @@ -160,7 +158,7 @@ struct rte_auxiliary_driver { * A pointer to a rte_auxiliary_driver structure describing the driver * to be registered. */ -__rte_experimental +__rte_internal void rte_auxiliary_register(struct rte_auxiliary_driver *driver); /** Helper for auxiliary device registration from driver instance */ @@ -182,11 +180,11 @@ void rte_auxiliary_register(struct rte_auxiliary_driver *driver); * A pointer to a rte_auxiliary_driver structure describing the driver * to be unregistered. */ -__rte_experimental +__rte_internal void rte_auxiliary_unregister(struct rte_auxiliary_driver *driver); #ifdef __cplusplus } #endif -#endif /* RTE_BUS_AUXILIARY_H */ +#endif /* BUS_AUXILIARY_DRIVER_H */ diff --git a/drivers/bus/auxiliary/linux/auxiliary.c b/drivers/bus/auxiliary/linux/auxiliary.c index 9bd4ee3295..d4c564cd78 100644 --- a/drivers/bus/auxiliary/linux/auxiliary.c +++ b/drivers/bus/auxiliary/linux/auxiliary.c @@ -6,13 +6,11 @@ #include #include -#include #include #include #include #include -#include "../rte_bus_auxiliary.h" #include "../private.h" #define AUXILIARY_SYSFS_PATH "/sys/bus/auxiliary/devices" diff --git a/drivers/bus/auxiliary/meson.build b/drivers/bus/auxiliary/meson.build index e2b356f8d2..fcb1a349c4 100644 --- a/drivers/bus/auxiliary/meson.build +++ b/drivers/bus/auxiliary/meson.build @@ -1,9 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright (c) 2021 NVIDIA Corporation & Affiliates -headers = files( - 'rte_bus_auxiliary.h', -) +driver_sdk_headers += files('bus_auxiliary_driver.h') sources = files( 'auxiliary_common.c', 'auxiliary_params.c', diff --git a/drivers/bus/auxiliary/private.h b/drivers/bus/auxiliary/private.h index d22e83cf7a..3f49f62493 100644 --- a/drivers/bus/auxiliary/private.h +++ b/drivers/bus/auxiliary/private.h @@ -9,9 +9,10 @@ #include #include -#include "rte_bus_auxiliary.h" +#include + +#include "bus_auxiliary_driver.h" -extern struct rte_auxiliary_bus auxiliary_bus; extern int auxiliary_bus_logtype; #define AUXILIARY_LOG(level, ...) \ @@ -19,27 +20,24 @@ extern int auxiliary_bus_logtype; RTE_FMT("auxiliary bus: " RTE_FMT_HEAD(__VA_ARGS__,) "\n", \ RTE_FMT_TAIL(__VA_ARGS__,))) -/* Auxiliary bus iterators */ -#define FOREACH_DEVICE_ON_AUXILIARY_BUS(p) \ - TAILQ_FOREACH(p, &(auxiliary_bus.device_list), next) - -#define FOREACH_DRIVER_ON_AUXILIARY_BUS(p) \ - TAILQ_FOREACH(p, &(auxiliary_bus.driver_list), next) - -/* List of auxiliary devices. */ -TAILQ_HEAD(rte_auxiliary_device_list, rte_auxiliary_device); -/* List of auxiliary drivers. */ -TAILQ_HEAD(rte_auxiliary_driver_list, rte_auxiliary_driver); - /* * Structure describing the auxiliary bus */ struct rte_auxiliary_bus { struct rte_bus bus; /* Inherit the generic class */ - struct rte_auxiliary_device_list device_list; /* List of devices */ - struct rte_auxiliary_driver_list driver_list; /* List of drivers */ + TAILQ_HEAD(, rte_auxiliary_device) device_list; /* List of devices */ + TAILQ_HEAD(, rte_auxiliary_driver) driver_list; /* List of drivers */ }; +extern struct rte_auxiliary_bus auxiliary_bus; + +/* Auxiliary bus iterators */ +#define FOREACH_DEVICE_ON_AUXILIARY_BUS(p) \ + TAILQ_FOREACH(p, &(auxiliary_bus.device_list), next) + +#define FOREACH_DRIVER_ON_AUXILIARY_BUS(p) \ + TAILQ_FOREACH(p, &(auxiliary_bus.driver_list), next) + /* * Test whether the auxiliary device exist. */ diff --git a/drivers/bus/auxiliary/version.map b/drivers/bus/auxiliary/version.map index dc993e84ff..e9322e0b11 100644 --- a/drivers/bus/auxiliary/version.map +++ b/drivers/bus/auxiliary/version.map @@ -1,7 +1,6 @@ -EXPERIMENTAL { +INTERNAL { global: - # added in 21.08 rte_auxiliary_register; rte_auxiliary_unregister; diff --git a/drivers/common/mlx5/linux/mlx5_common_auxiliary.c b/drivers/common/mlx5/linux/mlx5_common_auxiliary.c index a182a8bdde..33479ffd68 100644 --- a/drivers/common/mlx5/linux/mlx5_common_auxiliary.c +++ b/drivers/common/mlx5/linux/mlx5_common_auxiliary.c @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include "eal_filesystem.h" diff --git a/drivers/common/mlx5/linux/mlx5_common_os.c b/drivers/common/mlx5/linux/mlx5_common_os.c index c57e1918d2..b42102e84c 100644 --- a/drivers/common/mlx5/linux/mlx5_common_os.c +++ b/drivers/common/mlx5/linux/mlx5_common_os.c @@ -16,7 +16,7 @@ #include #include #include -#include +#include #include "mlx5_common.h" #include "mlx5_nl.h" diff --git a/drivers/common/mlx5/mlx5_common_private.h b/drivers/common/mlx5/mlx5_common_private.h index 04c0af3763..12a5bdb41b 100644 --- a/drivers/common/mlx5/mlx5_common_private.h +++ b/drivers/common/mlx5/mlx5_common_private.h @@ -6,7 +6,7 @@ #define MLX5_COMMON_PRIVATE_H #include -#include +#include #include "mlx5_common.h" diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c index 0741028dab..c9ed38ef7c 100644 --- a/drivers/net/mlx5/linux/mlx5_os.c +++ b/drivers/net/mlx5/linux/mlx5_os.c @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include #include #include From patchwork Thu Jul 28 15:26:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114383 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0C343A00C5; Thu, 28 Jul 2022 17:28:02 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 518A542BBE; Thu, 28 Jul 2022 17:27:35 +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 1212642BC2 for ; Thu, 28 Jul 2022 17:27:33 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022053; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gsvfFOGNEp5mzR1q2n9qp1MmFJaHHcn7MayBNxJNzrk=; b=aThadJW57axdctm5vzPScem4Lzjn54+7NoeYjxYAUV/cNh5cwVE3OhG6rFG21F8IPBspLl eFBkk5eP7vEbrOC/ybnzjYe7C5EBFZkSM6bLfvq7VWLUK31elCOdLAfP5F1S56bD/73hmO /wB2yLmcWTSUlaQhSnS1A/NVN9h8tLc= 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-248-x2BAwsxmOb605TlrMMrp3w-1; Thu, 28 Jul 2022 11:27:28 -0400 X-MC-Unique: x2BAwsxmOb605TlrMMrp3w-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 162E1802D1C; Thu, 28 Jul 2022 15:27:28 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id E59971415121; Thu, 28 Jul 2022 15:27:26 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Hemant Agrawal , Sachin Saxena , Gagandeep Singh Subject: [RFC v3 12/26] bus/dpaa: make driver-only headers private Date: Thu, 28 Jul 2022 17:26:26 +0200 Message-Id: <20220728152640.547725-13-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 The dpaa bus interface is for drivers only. Mark as internal and move the header in the driver headers list. While at it, cleanup internal structures: - remove unneeded reference to bus specific singleton object, - remove unneeded list head structure type, - reorder the definitions and macro manipulating the bus singleton object, - remove inclusion of rte_bus.h and update code that relied on it, Signed-off-by: David Marchand --- Changes since RFC v2: - squashed cleanup for this bus code from other patches, - updated release notes, --- drivers/bus/dpaa/base/qbman/qman.c | 2 +- .../{rte_dpaa_bus.h => bus_dpaa_driver.h} | 25 ++++++------------- drivers/bus/dpaa/dpaa_bus.c | 20 +++++++-------- drivers/crypto/dpaa_sec/dpaa_sec.c | 2 +- drivers/crypto/dpaa_sec/dpaa_sec_raw_dp.c | 2 +- drivers/dma/dpaa/dpaa_qdma.c | 2 +- drivers/event/dpaa/dpaa_eventdev.c | 2 +- drivers/mempool/dpaa/dpaa_mempool.h | 2 +- drivers/net/dpaa/dpaa_ethdev.c | 2 +- drivers/net/dpaa/dpaa_rxtx.c | 2 +- 10 files changed, 26 insertions(+), 35 deletions(-) rename drivers/bus/dpaa/{rte_dpaa_bus.h => bus_dpaa_driver.h} (92%) diff --git a/drivers/bus/dpaa/base/qbman/qman.c b/drivers/bus/dpaa/base/qbman/qman.c index 447c091770..3949bf8712 100644 --- a/drivers/bus/dpaa/base/qbman/qman.c +++ b/drivers/bus/dpaa/base/qbman/qman.c @@ -7,7 +7,7 @@ #include "qman.h" #include -#include +#include #include #include diff --git a/drivers/bus/dpaa/rte_dpaa_bus.h b/drivers/bus/dpaa/bus_dpaa_driver.h similarity index 92% rename from drivers/bus/dpaa/rte_dpaa_bus.h rename to drivers/bus/dpaa/bus_dpaa_driver.h index 1f04d9ebd3..cf66fc0c53 100644 --- a/drivers/bus/dpaa/rte_dpaa_bus.h +++ b/drivers/bus/dpaa/bus_dpaa_driver.h @@ -3,12 +3,14 @@ * Copyright 2017-2022 NXP * */ -#ifndef __RTE_DPAA_BUS_H__ -#define __RTE_DPAA_BUS_H__ +#ifndef BUS_DPAA_DRIVER_H +#define BUS_DPAA_DRIVER_H -#include +#include +#include #include #include + #include #include @@ -73,24 +75,12 @@ extern unsigned int dpaa_svr_family; struct rte_dpaa_device; struct rte_dpaa_driver; -/* DPAA Device and Driver lists for DPAA bus */ -TAILQ_HEAD(rte_dpaa_device_list, rte_dpaa_device); -TAILQ_HEAD(rte_dpaa_driver_list, rte_dpaa_driver); - enum rte_dpaa_type { FSL_DPAA_ETH = 1, FSL_DPAA_CRYPTO, FSL_DPAA_QDMA }; -struct rte_dpaa_bus { - struct rte_bus bus; - struct rte_dpaa_device_list device_list; - struct rte_dpaa_driver_list driver_list; - int device_count; - int detected; -}; - struct dpaa_device_id { uint8_t fman_id; /**< Fman interface ID, for ETH type device */ uint8_t mac_id; /**< Fman MAC interface ID, for ETH type device */ @@ -119,7 +109,6 @@ typedef int (*rte_dpaa_remove_t)(struct rte_dpaa_device *dpaa_dev); struct rte_dpaa_driver { TAILQ_ENTRY(rte_dpaa_driver) next; struct rte_driver driver; - struct rte_dpaa_bus *dpaa_bus; enum rte_dpaa_type drv_type; rte_dpaa_probe_t probe; rte_dpaa_remove_t remove; @@ -166,6 +155,7 @@ extern struct dpaa_memseg_list rte_dpaa_memsegs; /* Either iterate over the list of internal memseg references or fallback to * EAL memseg based iova2virt. */ +__rte_internal static inline void *rte_dpaa_mem_ptov(phys_addr_t paddr) { struct dpaa_memseg *ms; @@ -192,6 +182,7 @@ static inline void *rte_dpaa_mem_ptov(phys_addr_t paddr) return va; } +__rte_internal static inline rte_iova_t rte_dpaa_mem_vtop(void *vaddr) { @@ -263,4 +254,4 @@ struct fm_eth_port_cfg *dpaa_get_eth_port_cfg(int dev_id); } #endif -#endif /* __RTE_DPAA_BUS_H__ */ +#endif /* BUS_DPAA_DRIVER_H */ diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c index e442bc4c33..1ac6aa314f 100644 --- a/drivers/bus/dpaa/dpaa_bus.c +++ b/drivers/bus/dpaa/dpaa_bus.c @@ -34,7 +34,7 @@ #include #include -#include +#include #include #include @@ -43,6 +43,14 @@ #include #include +struct rte_dpaa_bus { + struct rte_bus bus; + TAILQ_HEAD(, rte_dpaa_device) device_list; + TAILQ_HEAD(, rte_dpaa_driver) driver_list; + int device_count; + int detected; +}; + static struct rte_dpaa_bus rte_dpaa_bus; struct netcfg_info *dpaa_netcfg; @@ -520,23 +528,15 @@ rte_dpaa_driver_register(struct rte_dpaa_driver *driver) BUS_INIT_FUNC_TRACE(); TAILQ_INSERT_TAIL(&rte_dpaa_bus.driver_list, driver, next); - /* Update Bus references */ - driver->dpaa_bus = &rte_dpaa_bus; } /* un-register a dpaa bus based dpaa driver */ void rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver) { - struct rte_dpaa_bus *dpaa_bus; - BUS_INIT_FUNC_TRACE(); - dpaa_bus = driver->dpaa_bus; - - TAILQ_REMOVE(&dpaa_bus->driver_list, driver, next); - /* Update Bus references */ - driver->dpaa_bus = NULL; + TAILQ_REMOVE(&rte_dpaa_bus.driver_list, driver, next); } static int diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c index 05415dbf3b..7e554cb2b1 100644 --- a/drivers/crypto/dpaa_sec/dpaa_sec.c +++ b/drivers/crypto/dpaa_sec/dpaa_sec.c @@ -41,7 +41,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/dpaa_sec/dpaa_sec_raw_dp.c b/drivers/crypto/dpaa_sec/dpaa_sec_raw_dp.c index d081953e26..29c5935739 100644 --- a/drivers/crypto/dpaa_sec/dpaa_sec_raw_dp.c +++ b/drivers/crypto/dpaa_sec/dpaa_sec_raw_dp.c @@ -15,7 +15,7 @@ #include #include -#include +#include #include #include diff --git a/drivers/dma/dpaa/dpaa_qdma.c b/drivers/dma/dpaa/dpaa_qdma.c index 9386fe5698..10e65ef1d7 100644 --- a/drivers/dma/dpaa/dpaa_qdma.c +++ b/drivers/dma/dpaa/dpaa_qdma.c @@ -2,7 +2,7 @@ * Copyright 2021 NXP */ -#include +#include #include #include "dpaa_qdma.h" diff --git a/drivers/event/dpaa/dpaa_eventdev.c b/drivers/event/dpaa/dpaa_eventdev.c index ff6cc0be18..aa403f9e06 100644 --- a/drivers/event/dpaa/dpaa_eventdev.c +++ b/drivers/event/dpaa/dpaa_eventdev.c @@ -29,7 +29,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/mempool/dpaa/dpaa_mempool.h b/drivers/mempool/dpaa/dpaa_mempool.h index dc0058e6dd..3f0eafa7dd 100644 --- a/drivers/mempool/dpaa/dpaa_mempool.h +++ b/drivers/mempool/dpaa/dpaa_mempool.h @@ -14,7 +14,7 @@ #include -#include +#include #include #include diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c index e5a072cf49..f21cbba0d9 100644 --- a/drivers/net/dpaa/dpaa_ethdev.c +++ b/drivers/net/dpaa/dpaa_ethdev.c @@ -33,7 +33,7 @@ #include #include -#include +#include #include #include diff --git a/drivers/net/dpaa/dpaa_rxtx.c b/drivers/net/dpaa/dpaa_rxtx.c index 956fe946fa..20b75efb63 100644 --- a/drivers/net/dpaa/dpaa_rxtx.c +++ b/drivers/net/dpaa/dpaa_rxtx.c @@ -37,7 +37,7 @@ #include "dpaa_ethdev.h" #include "dpaa_rxtx.h" -#include +#include #include #include From patchwork Thu Jul 28 15:26:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114384 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E4EBCA00C5; Thu, 28 Jul 2022 17:28:07 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 18D4942BFF; Thu, 28 Jul 2022 17:27:36 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 0B7FD42BBE for ; Thu, 28 Jul 2022 17:27:33 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022053; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2kdMxcus5h2CRrr5xxsfWoqM6pkpOL519iOSqAZDVQA=; b=evmcwrUy0ULVTvPbc22wFQZMsZ3H5u06VN5tlJwQUagiEuWv37Rnh5OnsjPDusS+YgcO+P fdPEIiZcvTQbmbuBsmcLoeDX5iwYEdRVxLZvmUVhkvwdlHbaMUVnQurMnfp5LOEYfPLCnH c0q6UaSCLMSb23Oc2ISZAnXymqoVxXk= 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-443-1UgtA4c4O1Saz7CbJg5kvg-1; Thu, 28 Jul 2022 11:27:32 -0400 X-MC-Unique: 1UgtA4c4O1Saz7CbJg5kvg-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 E1F40811E7A; Thu, 28 Jul 2022 15:27:31 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id CE4CB1415118; Thu, 28 Jul 2022 15:27:30 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Hemant Agrawal , Sachin Saxena , Gagandeep Singh Subject: [RFC v3 13/26] bus/fslmc: make driver-only headers private Date: Thu, 28 Jul 2022 17:26:27 +0200 Message-Id: <20220728152640.547725-14-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 The fslmc bus interface is for drivers only. Mark as internal and move the header in the driver headers list. While at it, cleanup internal structures: - remove unneeded reference to bus specific singleton object, - remove unneeded list head structure type, - reorder the definitions and macro manipulating the bus singleton object, - remove inclusion of rte_bus.h and update code that relied on it, Signed-off-by: David Marchand --- Changes since RFC v2: - squashed cleanup for this bus code from other patches, - updated release notes, --- .../fslmc/{rte_fslmc.h => bus_fslmc_driver.h} | 28 +++---------------- drivers/bus/fslmc/fslmc_bus.c | 12 ++------ drivers/bus/fslmc/fslmc_vfio.c | 3 +- drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c | 2 +- drivers/bus/fslmc/portal/dpaa2_hw_dpci.c | 2 +- drivers/bus/fslmc/portal/dpaa2_hw_dpio.c | 2 +- drivers/bus/fslmc/portal/dpaa2_hw_dprc.c | 2 +- drivers/bus/fslmc/private.h | 27 ++++++++++++++++++ drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 2 +- drivers/crypto/dpaa2_sec/dpaa2_sec_raw_dp.c | 2 +- drivers/dma/dpaa2/dpaa2_qdma.c | 2 +- drivers/event/dpaa2/dpaa2_eventdev.c | 2 +- drivers/event/dpaa2/dpaa2_eventdev_selftest.c | 2 +- drivers/event/dpaa2/dpaa2_hw_dpcon.c | 2 +- drivers/net/dpaa2/dpaa2_ethdev.c | 2 +- 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 | 2 +- drivers/net/dpaa2/dpaa2_rxtx.c | 2 +- 20 files changed, 50 insertions(+), 52 deletions(-) rename drivers/bus/fslmc/{rte_fslmc.h => bus_fslmc_driver.h} (89%) create mode 100644 drivers/bus/fslmc/private.h diff --git a/drivers/bus/fslmc/rte_fslmc.h b/drivers/bus/fslmc/bus_fslmc_driver.h similarity index 89% rename from drivers/bus/fslmc/rte_fslmc.h rename to drivers/bus/fslmc/bus_fslmc_driver.h index 8c67bfba55..798ddebf3a 100644 --- a/drivers/bus/fslmc/rte_fslmc.h +++ b/drivers/bus/fslmc/bus_fslmc_driver.h @@ -4,8 +4,8 @@ * */ -#ifndef _RTE_FSLMC_H_ -#define _RTE_FSLMC_H_ +#ifndef BUS_FSLMC_DRIVER_H +#define BUS_FSLMC_DRIVER_H /** * @file @@ -26,10 +26,10 @@ extern "C" { #include #include +#include #include #include #include -#include #include #include #include @@ -69,15 +69,9 @@ dpaa2_seqn(struct rte_mbuf *mbuf) struct rte_dpaa2_driver; -/* DPAA2 Device and Driver lists for FSLMC bus */ -TAILQ_HEAD(rte_fslmc_device_list, rte_dpaa2_device); -TAILQ_HEAD(rte_fslmc_driver_list, rte_dpaa2_driver); - #define RTE_DEV_TO_FSLMC_CONST(ptr) \ container_of(ptr, const struct rte_dpaa2_device, device) -extern struct rte_fslmc_bus rte_fslmc_bus; - enum rte_dpaa2_dev_type { /* Devices backed by DPDK driver */ DPAA2_ETH, /**< DPNI type device*/ @@ -146,26 +140,12 @@ typedef int (*rte_dpaa2_remove_t)(struct rte_dpaa2_device *dpaa2_dev); struct rte_dpaa2_driver { TAILQ_ENTRY(rte_dpaa2_driver) next; /**< Next in list. */ struct rte_driver driver; /**< Inherit core driver. */ - struct rte_fslmc_bus *fslmc_bus; /**< FSLMC bus reference */ uint32_t drv_flags; /**< Flags for controlling device.*/ enum rte_dpaa2_dev_type drv_type; /**< Driver Type */ rte_dpaa2_probe_t probe; rte_dpaa2_remove_t remove; }; -/* - * FSLMC bus - */ -struct rte_fslmc_bus { - struct rte_bus bus; /**< Generic Bus object */ - struct rte_fslmc_device_list device_list; - /**< FSLMC DPAA2 Device list */ - struct rte_fslmc_driver_list driver_list; - /**< FSLMC DPAA2 Driver list */ - int device_count[DPAA2_DEVTYPE_MAX]; - /**< Count of all devices scanned */ -}; - /** * Register a DPAA2 driver. * @@ -230,4 +210,4 @@ RTE_PMD_EXPORT_NAME(nm, __COUNTER__) } #endif -#endif /* _RTE_FSLMC_H_ */ +#endif /* BUS_FSLMC_DRIVER_H */ diff --git a/drivers/bus/fslmc/fslmc_bus.c b/drivers/bus/fslmc/fslmc_bus.c index e9edc27e0a..b9b0981329 100644 --- a/drivers/bus/fslmc/fslmc_bus.c +++ b/drivers/bus/fslmc/fslmc_bus.c @@ -16,7 +16,7 @@ #include #include -#include +#include "private.h" #include #include "fslmc_logs.h" @@ -530,27 +530,19 @@ rte_fslmc_driver_register(struct rte_dpaa2_driver *driver) RTE_VERIFY(driver); TAILQ_INSERT_TAIL(&rte_fslmc_bus.driver_list, driver, next); - /* Update Bus references */ - driver->fslmc_bus = &rte_fslmc_bus; } /*un-register a fslmc bus based dpaa2 driver */ void rte_fslmc_driver_unregister(struct rte_dpaa2_driver *driver) { - struct rte_fslmc_bus *fslmc_bus; - - fslmc_bus = driver->fslmc_bus; - /* Cleanup the PA->VA Translation table; From wherever this function * is called from. */ if (rte_eal_iova_mode() == RTE_IOVA_PA) dpaax_iova_table_depopulate(); - TAILQ_REMOVE(&fslmc_bus->driver_list, driver, next); - /* Update Bus references */ - driver->fslmc_bus = NULL; + TAILQ_REMOVE(&rte_fslmc_bus.driver_list, driver, next); } /* diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c index 3d4e71a80a..8604e43947 100644 --- a/drivers/bus/fslmc/fslmc_vfio.c +++ b/drivers/bus/fslmc/fslmc_vfio.c @@ -29,10 +29,9 @@ #include #include #include -#include #include -#include "rte_fslmc.h" +#include "private.h" #include "fslmc_vfio.h" #include "fslmc_logs.h" #include diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c index 122aa1740d..cfe4280f87 100644 --- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c @@ -23,7 +23,7 @@ #include #include -#include +#include #include #include "portal/dpaa2_hw_pvt.h" #include "portal/dpaa2_hw_dpio.h" diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c index 8ed969c7c0..b7d81b518c 100644 --- a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c @@ -21,7 +21,7 @@ #include #include -#include +#include #include #include "portal/dpaa2_hw_pvt.h" #include "portal/dpaa2_hw_dpio.h" diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c index 22c51c1a82..071b0d297d 100644 --- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c @@ -33,7 +33,7 @@ #include #include -#include +#include #include "dpaa2_hw_pvt.h" #include "dpaa2_hw_dpio.h" #include diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dprc.c b/drivers/bus/fslmc/portal/dpaa2_hw_dprc.c index ca1d0304d5..223e34bcba 100644 --- a/drivers/bus/fslmc/portal/dpaa2_hw_dprc.c +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dprc.c @@ -12,8 +12,8 @@ #include #include +#include "private.h" #include -#include #include #include "portal/dpaa2_hw_pvt.h" diff --git a/drivers/bus/fslmc/private.h b/drivers/bus/fslmc/private.h new file mode 100644 index 0000000000..60d68155e1 --- /dev/null +++ b/drivers/bus/fslmc/private.h @@ -0,0 +1,27 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright 2016,2021 NXP + */ + +#ifndef BUS_FSLMC_PRIVATE_H +#define BUS_FSLMC_PRIVATE_H + +#include + +#include + +/* + * FSLMC bus + */ +struct rte_fslmc_bus { + struct rte_bus bus; /**< Generic Bus object */ + TAILQ_HEAD(, rte_dpaa2_device) device_list; + /**< FSLMC DPAA2 Device list */ + TAILQ_HEAD(, rte_dpaa2_driver) driver_list; + /**< FSLMC DPAA2 Driver list */ + int device_count[DPAA2_DEVTYPE_MAX]; + /**< Count of all devices scanned */ +}; + +extern struct rte_fslmc_bus rte_fslmc_bus; + +#endif /* BUS_FSLMC_PRIVATE_H */ diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c index 8444f1a795..0cce861899 100644 --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_raw_dp.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_raw_dp.c index e68a4875dd..b3242791ac 100644 --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_raw_dp.c +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_raw_dp.c @@ -3,7 +3,7 @@ */ #include -#include +#include #include #include #include diff --git a/drivers/dma/dpaa2/dpaa2_qdma.c b/drivers/dma/dpaa2/dpaa2_qdma.c index 0500e8c225..d5a5f08ecc 100644 --- a/drivers/dma/dpaa2/dpaa2_qdma.c +++ b/drivers/dma/dpaa2/dpaa2_qdma.c @@ -3,7 +3,7 @@ */ #include -#include +#include #include #include #include diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c index ffc7b8b073..5de3e9e5f5 100644 --- a/drivers/event/dpaa2/dpaa2_eventdev.c +++ b/drivers/event/dpaa2/dpaa2_eventdev.c @@ -16,7 +16,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/event/dpaa2/dpaa2_eventdev_selftest.c b/drivers/event/dpaa2/dpaa2_eventdev_selftest.c index b549bdfcbb..941fb8fc43 100644 --- a/drivers/event/dpaa2/dpaa2_eventdev_selftest.c +++ b/drivers/event/dpaa2/dpaa2_eventdev_selftest.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include "dpaa2_eventdev.h" #include "dpaa2_eventdev_logs.h" diff --git a/drivers/event/dpaa2/dpaa2_hw_dpcon.c b/drivers/event/dpaa2/dpaa2_hw_dpcon.c index acc1fde771..3882a9cf1d 100644 --- a/drivers/event/dpaa2/dpaa2_hw_dpcon.c +++ b/drivers/event/dpaa2/dpaa2_hw_dpcon.c @@ -20,7 +20,7 @@ #include #include -#include +#include #include #include #include "dpaa2_eventdev.h" diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index 52eb6df310..f876f4790c 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -16,7 +16,7 @@ #include #include #include -#include +#include #include #include "rte_dpaa2_mempool.h" diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h index a459181139..f69df95253 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.h +++ b/drivers/net/dpaa2/dpaa2_ethdev.h @@ -11,7 +11,7 @@ #include #include -#include +#include #include #include "dpaa2_tm.h" diff --git a/drivers/net/dpaa2/dpaa2_mux.c b/drivers/net/dpaa2/dpaa2_mux.c index e8689a7832..3289f388e1 100644 --- a/drivers/net/dpaa2/dpaa2_mux.c +++ b/drivers/net/dpaa2/dpaa2_mux.c @@ -16,7 +16,7 @@ #include #include -#include +#include #include #include diff --git a/drivers/net/dpaa2/dpaa2_ptp.c b/drivers/net/dpaa2/dpaa2_ptp.c index 4e6d375d1c..c08aa0f3bf 100644 --- a/drivers/net/dpaa2/dpaa2_ptp.c +++ b/drivers/net/dpaa2/dpaa2_ptp.c @@ -16,7 +16,7 @@ #include #include -#include +#include #include #include diff --git a/drivers/net/dpaa2/dpaa2_recycle.c b/drivers/net/dpaa2/dpaa2_recycle.c index 336506dc0d..932570c6e0 100644 --- a/drivers/net/dpaa2/dpaa2_recycle.c +++ b/drivers/net/dpaa2/dpaa2_recycle.c @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include "dpaa2_pmd_logs.h" diff --git a/drivers/net/dpaa2/dpaa2_rxtx.c b/drivers/net/dpaa2/dpaa2_rxtx.c index c17f6ebda9..7b9c528d13 100644 --- a/drivers/net/dpaa2/dpaa2_rxtx.c +++ b/drivers/net/dpaa2/dpaa2_rxtx.c @@ -16,7 +16,7 @@ #include #include -#include +#include #include #include #include From patchwork Thu Jul 28 15:26:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114385 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2F5B7A00C5; Thu, 28 Jul 2022 17:28:16 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4F5EF42C0E; Thu, 28 Jul 2022 17:27:39 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 8975542BB2 for ; Thu, 28 Jul 2022 17:27:37 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022057; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Yk6VMzMHZos4jhNgfiaRuDiDrWZTSwiZTecFtiliC2Q=; b=BwXnH8A9NlsbDlA4GxZsCjUPkcwVnHD6yPA2lHYt7qmKGy9nTrBT+b3UBw133uvXWrJlhj SEU3eLE//l5SxacBi6tSNjfnpOSUL7ZMgrGPOvuJpHrVC56hplNWl/WeEPnaXTKRJ9/mqp UnFRN8WZjjGlxNnm+xQTcnwQKKoJ//c= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-317-0Loejj0PP6y7ShhFiAuIrQ-1; Thu, 28 Jul 2022 11:27:35 -0400 X-MC-Unique: 0Loejj0PP6y7ShhFiAuIrQ-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 B65982801770; Thu, 28 Jul 2022 15:27:34 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id CBE611415118; Thu, 28 Jul 2022 15:27:33 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Rosen Xu , Ray Kinsella , Tianfei zhang Subject: [RFC v3 14/26] bus/ifpga: cleanup exported symbols Date: Thu, 28 Jul 2022 17:26:28 +0200 Message-Id: <20220728152640.547725-15-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 Remove unused symbols (exposed only in an internal header which guarantees that no application out there relied on them). Remove rte_ prefix and inline the rest to avoid having to expose them as global symbols for a relatively small added value. Signed-off-by: David Marchand Acked-by: Rosen Xu --- drivers/bus/ifpga/ifpga_bus.c | 13 +++-- drivers/bus/ifpga/ifpga_common.c | 88 -------------------------------- drivers/bus/ifpga/ifpga_common.h | 54 ++++++++++++++++---- drivers/bus/ifpga/meson.build | 2 +- drivers/bus/ifpga/version.map | 2 - drivers/raw/ifpga/ifpga_rawdev.c | 2 +- 6 files changed, 53 insertions(+), 108 deletions(-) delete mode 100644 drivers/bus/ifpga/ifpga_common.c diff --git a/drivers/bus/ifpga/ifpga_bus.c b/drivers/bus/ifpga/ifpga_bus.c index e005f2cb70..b1e9eb7cc4 100644 --- a/drivers/bus/ifpga/ifpga_bus.c +++ b/drivers/bus/ifpga/ifpga_bus.c @@ -117,9 +117,9 @@ ifpga_scan_one(struct rte_rawdev *rawdev, if (rte_kvargs_count(kvlist, IFPGA_ARG_PORT) == 1) { if (rte_kvargs_process(kvlist, IFPGA_ARG_PORT, - &rte_ifpga_get_integer32_arg, &afu_pr_conf.afu_id.port) < 0) { - IFPGA_BUS_ERR("error to parse %s", - IFPGA_ARG_PORT); + ifpga_get_integer32_arg, + &afu_pr_conf.afu_id.port) < 0) { + IFPGA_BUS_ERR("error to parse %s", IFPGA_ARG_PORT); goto end; } } else { @@ -130,9 +130,8 @@ ifpga_scan_one(struct rte_rawdev *rawdev, if (rte_kvargs_count(kvlist, IFPGA_AFU_BTS) == 1) { if (rte_kvargs_process(kvlist, IFPGA_AFU_BTS, - &rte_ifpga_get_string_arg, &path) < 0) { - IFPGA_BUS_ERR("Failed to parse %s", - IFPGA_AFU_BTS); + ifpga_get_string_arg, &path) < 0) { + IFPGA_BUS_ERR("Failed to parse %s", IFPGA_AFU_BTS); goto end; } afu_pr_conf.pr_enable = 1; @@ -228,7 +227,7 @@ ifpga_scan(void) if (rte_kvargs_count(kvlist, IFPGA_ARG_NAME) == 1) { if (rte_kvargs_process(kvlist, IFPGA_ARG_NAME, - &rte_ifpga_get_string_arg, &name) < 0) { + ifpga_get_string_arg, &name) < 0) { IFPGA_BUS_ERR("error to parse %s", IFPGA_ARG_NAME); goto end; diff --git a/drivers/bus/ifpga/ifpga_common.c b/drivers/bus/ifpga/ifpga_common.c deleted file mode 100644 index 78e2eaee4e..0000000000 --- a/drivers/bus/ifpga/ifpga_common.c +++ /dev/null @@ -1,88 +0,0 @@ -/* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2010-2018 Intel Corporation - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "rte_bus_ifpga.h" -#include "ifpga_logs.h" -#include "ifpga_common.h" - -int rte_ifpga_get_string_arg(const char *key __rte_unused, - const char *value, void *extra_args) -{ - if (!value || !extra_args) - return -EINVAL; - - *(char **)extra_args = strdup(value); - - if (!*(char **)extra_args) - return -ENOMEM; - - return 0; -} -int rte_ifpga_get_integer32_arg(const char *key __rte_unused, - const char *value, void *extra_args) -{ - if (!value || !extra_args) - return -EINVAL; - - *(int *)extra_args = strtoull(value, NULL, 0); - - return 0; -} -int ifpga_get_integer64_arg(const char *key __rte_unused, - const char *value, void *extra_args) -{ - if (!value || !extra_args) - return -EINVAL; - - *(uint64_t *)extra_args = strtoull(value, NULL, 0); - - return 0; -} -int ifpga_get_unsigned_long(const char *str, int base) -{ - unsigned long num; - char *end = NULL; - - errno = 0; - - num = strtoul(str, &end, base); - if ((str[0] == '\0') || (end == NULL) || (*end != '\0') || (errno != 0)) - return -1; - - return num; -} - -int ifpga_afu_id_cmp(const struct rte_afu_id *afu_id0, - const struct rte_afu_id *afu_id1) -{ - if ((afu_id0->uuid.uuid_low == afu_id1->uuid.uuid_low) && - (afu_id0->uuid.uuid_high == afu_id1->uuid.uuid_high) && - (afu_id0->port == afu_id1->port)) { - return 0; - } else - return 1; -} diff --git a/drivers/bus/ifpga/ifpga_common.h b/drivers/bus/ifpga/ifpga_common.h index f9254b9d5d..bb6524030f 100644 --- a/drivers/bus/ifpga/ifpga_common.h +++ b/drivers/bus/ifpga/ifpga_common.h @@ -5,14 +5,50 @@ #ifndef _IFPGA_COMMON_H_ #define _IFPGA_COMMON_H_ -int rte_ifpga_get_string_arg(const char *key __rte_unused, - const char *value, void *extra_args); -int rte_ifpga_get_integer32_arg(const char *key __rte_unused, - const char *value, void *extra_args); -int ifpga_get_integer64_arg(const char *key __rte_unused, - const char *value, void *extra_args); -int ifpga_get_unsigned_long(const char *str, int base); -int ifpga_afu_id_cmp(const struct rte_afu_id *afu_id0, - const struct rte_afu_id *afu_id1); +#include +#include +#include + +#include +#include + +static inline int +ifpga_get_string_arg(const char *key __rte_unused, const char *value, + void *extra_args) +{ + if (!value || !extra_args) + return -EINVAL; + + *(char **)extra_args = strdup(value); + + if (!*(char **)extra_args) + return -ENOMEM; + + return 0; +} + +static inline int +ifpga_get_integer32_arg(const char *key __rte_unused, const char *value, + void *extra_args) +{ + if (!value || !extra_args) + return -EINVAL; + + *(int *)extra_args = strtoull(value, NULL, 0); + + return 0; +} + +static inline int +ifpga_afu_id_cmp(const struct rte_afu_id *afu_id0, + const struct rte_afu_id *afu_id1) +{ + if ((afu_id0->uuid.uuid_low == afu_id1->uuid.uuid_low) && + (afu_id0->uuid.uuid_high == afu_id1->uuid.uuid_high) && + (afu_id0->port == afu_id1->port)) { + return 0; + } else + return 1; +} #endif /* _IFPGA_COMMON_H_ */ diff --git a/drivers/bus/ifpga/meson.build b/drivers/bus/ifpga/meson.build index cc5047e3ce..9d56a4bb2b 100644 --- a/drivers/bus/ifpga/meson.build +++ b/drivers/bus/ifpga/meson.build @@ -9,4 +9,4 @@ endif deps += ['pci', 'kvargs', 'rawdev'] headers = files('rte_bus_ifpga.h') -sources = files('ifpga_common.c', 'ifpga_bus.c') +sources = files('ifpga_bus.c') diff --git a/drivers/bus/ifpga/version.map b/drivers/bus/ifpga/version.map index c0a1eecae8..da7f92c2a0 100644 --- a/drivers/bus/ifpga/version.map +++ b/drivers/bus/ifpga/version.map @@ -4,8 +4,6 @@ DPDK_23 { rte_ifpga_driver_register; rte_ifpga_driver_unregister; rte_ifpga_find_afu_by_name; - rte_ifpga_get_integer32_arg; - rte_ifpga_get_string_arg; local: *; }; diff --git a/drivers/raw/ifpga/ifpga_rawdev.c b/drivers/raw/ifpga/ifpga_rawdev.c index 78a7123528..93a7e74959 100644 --- a/drivers/raw/ifpga/ifpga_rawdev.c +++ b/drivers/raw/ifpga/ifpga_rawdev.c @@ -1752,7 +1752,7 @@ ifpga_vdev_parse_devargs(struct rte_devargs *devargs, if (rte_kvargs_count(kvlist, IFPGA_ARG_PORT) == 1) { if (rte_kvargs_process(kvlist, IFPGA_ARG_PORT, - &rte_ifpga_get_integer32_arg, &port) < 0) { + ifpga_get_integer32_arg, &port) < 0) { IFPGA_RAWDEV_PMD_ERR("error to parse %s", IFPGA_ARG_PORT); goto end; From patchwork Thu Jul 28 15:26:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114386 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 38D2FA00C5; Thu, 28 Jul 2022 17:28:22 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4692C42BCA; Thu, 28 Jul 2022 17:27:41 +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 7212042C12 for ; Thu, 28 Jul 2022 17:27:39 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022059; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7bEn5YJqKxDWRR/7po7D0G1aWLU3TGrgspkAHfZZ7oo=; b=Xhdiap8nnagK3FSeCtcjMJ0sA07t3K2zRiut3oCkkYPhA4tmqWxYX9W7adDLLoyzUyVljE 0GTYoHOGhOFhdJ4tlglRZxpAFAW25Df6RPdKg2NKHo8/M+EKvpJWazpWuMe/OmknQc/RwR pAqEpewxIcC9dAbffwMoWX4p9axkoLQ= 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-606-8pqg96PbNjqCH9ibaxt2bQ-1; Thu, 28 Jul 2022 11:27:38 -0400 X-MC-Unique: 8pqg96PbNjqCH9ibaxt2bQ-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 A5A89101A58D; Thu, 28 Jul 2022 15:27:37 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id B883F1415118; Thu, 28 Jul 2022 15:27:36 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Rosen Xu , Ray Kinsella , Tianfei zhang Subject: [RFC v3 15/26] bus/ifpga: make driver-only headers private Date: Thu, 28 Jul 2022 17:26:29 +0200 Message-Id: <20220728152640.547725-16-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 The ifpga bus interface is for drivers only. Mark as internal and move the header in the driver headers list. While at it, cleanup the code: - remove unneeded list head structure type, - reorder the definitions and macro manipulating the bus singleton object, - remove inclusion of rte_bus.h and fix the code that relied on implicit inclusion, Signed-off-by: David Marchand Acked-by: Rosen Xu --- Changes since RFC v2: - squashed cleanup for this bus code from other patches, - updated release notes, --- doc/guides/rel_notes/release_22_11.rst | 2 +- .../{rte_bus_ifpga.h => bus_ifpga_driver.h} | 18 ++++++++---------- drivers/bus/ifpga/ifpga_bus.c | 6 +++--- drivers/bus/ifpga/ifpga_common.h | 2 +- drivers/bus/ifpga/meson.build | 2 +- drivers/bus/ifpga/version.map | 2 +- drivers/net/ipn3ke/ipn3ke_ethdev.c | 2 +- drivers/net/ipn3ke/ipn3ke_ethdev.h | 2 +- drivers/net/ipn3ke/ipn3ke_flow.c | 2 +- drivers/net/ipn3ke/ipn3ke_representor.c | 2 +- drivers/net/ipn3ke/ipn3ke_tm.c | 2 +- drivers/raw/ifpga/afu_pmd_core.h | 2 +- drivers/raw/ifpga/afu_pmd_he_hssi.c | 2 +- drivers/raw/ifpga/afu_pmd_he_lpbk.c | 2 +- drivers/raw/ifpga/afu_pmd_he_mem.c | 2 +- drivers/raw/ifpga/afu_pmd_n3000.c | 2 +- drivers/raw/ifpga/ifpga_rawdev.c | 2 +- 17 files changed, 26 insertions(+), 28 deletions(-) rename drivers/bus/ifpga/{rte_bus_ifpga.h => bus_ifpga_driver.h} (91%) diff --git a/doc/guides/rel_notes/release_22_11.rst b/doc/guides/rel_notes/release_22_11.rst index 7247acebd2..8aae628d71 100644 --- a/doc/guides/rel_notes/release_22_11.rst +++ b/doc/guides/rel_notes/release_22_11.rst @@ -84,7 +84,7 @@ API Changes Also, make sure to start the actual text at the margin. ======================================================= -* drivers: Registering a driver on the ``auxiliary``, +* drivers: Registering a driver on the ``auxiliary``, ``ifpga`` buses has been marked as an internal API. External users may still register their driver using the associated driver headers (see ``enable_driver_sdk`` meson option). diff --git a/drivers/bus/ifpga/rte_bus_ifpga.h b/drivers/bus/ifpga/bus_ifpga_driver.h similarity index 91% rename from drivers/bus/ifpga/rte_bus_ifpga.h rename to drivers/bus/ifpga/bus_ifpga_driver.h index 007ad19875..7b75c2ddbc 100644 --- a/drivers/bus/ifpga/rte_bus_ifpga.h +++ b/drivers/bus/ifpga/bus_ifpga_driver.h @@ -2,8 +2,8 @@ * Copyright(c) 2010-2018 Intel Corporation */ -#ifndef _RTE_BUS_IFPGA_H_ -#define _RTE_BUS_IFPGA_H_ +#ifndef BUS_IFPGA_DRIVER_H +#define BUS_IFPGA_DRIVER_H /** * @file @@ -15,23 +15,17 @@ extern "C" { #endif /* __cplusplus */ -#include +#include #include #include #include -/** Name of Intel FPGA Bus */ #define IFPGA_BUS_NAME ifpga /* Forward declarations */ struct rte_afu_device; struct rte_afu_driver; -/** Double linked list of Intel FPGA AFU device. */ -RTE_TAILQ_HEAD(ifpga_afu_dev_list, rte_afu_device); -/** Double linked list of Intel FPGA AFU device drivers. */ -RTE_TAILQ_HEAD(ifpga_afu_drv_list, rte_afu_driver); - #define IFPGA_BUS_BITSTREAM_PATH_MAX_LEN 256 struct rte_afu_uuid { @@ -112,6 +106,7 @@ struct rte_afu_driver { const struct rte_afu_uuid *id_table; /**< AFU uuid within FPGA. */ }; +__rte_internal static inline const char * rte_ifpga_device_name(const struct rte_afu_device *afu) { @@ -126,6 +121,7 @@ rte_ifpga_device_name(const struct rte_afu_device *afu) * @param name * A pointer to AFU name string. */ +__rte_internal struct rte_afu_device * rte_ifpga_find_afu_by_name(const char *name); @@ -136,6 +132,7 @@ rte_ifpga_find_afu_by_name(const char *name); * A pointer to a rte_afu_driver structure describing the driver * to be registered. */ +__rte_internal void rte_ifpga_driver_register(struct rte_afu_driver *driver); /** @@ -145,6 +142,7 @@ void rte_ifpga_driver_register(struct rte_afu_driver *driver); * A pointer to a rte_afu_driver structure describing the driver * to be unregistered. */ +__rte_internal void rte_ifpga_driver_unregister(struct rte_afu_driver *driver); #define RTE_PMD_REGISTER_AFU(nm, afudrv)\ @@ -164,4 +162,4 @@ static const char *afudrvinit_ ## nm ## _alias = RTE_STR(alias) } #endif /* __cplusplus */ -#endif /* _RTE_BUS_IFPGA_H_ */ +#endif /* BUS_IFPGA_DRIVER_H */ diff --git a/drivers/bus/ifpga/ifpga_bus.c b/drivers/bus/ifpga/ifpga_bus.c index b1e9eb7cc4..27e2de7072 100644 --- a/drivers/bus/ifpga/ifpga_bus.c +++ b/drivers/bus/ifpga/ifpga_bus.c @@ -28,7 +28,7 @@ #include "rte_rawdev.h" #include "rte_rawdev_pmd.h" -#include "rte_bus_ifpga.h" +#include "bus_ifpga_driver.h" #include "ifpga_logs.h" #include "ifpga_common.h" @@ -37,9 +37,9 @@ */ static struct rte_bus rte_ifpga_bus; -static struct ifpga_afu_dev_list ifpga_afu_dev_list = +static TAILQ_HEAD(, rte_afu_device) ifpga_afu_dev_list = TAILQ_HEAD_INITIALIZER(ifpga_afu_dev_list); -static struct ifpga_afu_drv_list ifpga_afu_drv_list = +static TAILQ_HEAD(, rte_afu_driver) ifpga_afu_drv_list = TAILQ_HEAD_INITIALIZER(ifpga_afu_drv_list); diff --git a/drivers/bus/ifpga/ifpga_common.h b/drivers/bus/ifpga/ifpga_common.h index bb6524030f..a41a1628f5 100644 --- a/drivers/bus/ifpga/ifpga_common.h +++ b/drivers/bus/ifpga/ifpga_common.h @@ -9,7 +9,7 @@ #include #include -#include +#include #include static inline int diff --git a/drivers/bus/ifpga/meson.build b/drivers/bus/ifpga/meson.build index 9d56a4bb2b..dedc94db2d 100644 --- a/drivers/bus/ifpga/meson.build +++ b/drivers/bus/ifpga/meson.build @@ -8,5 +8,5 @@ if is_windows endif deps += ['pci', 'kvargs', 'rawdev'] -headers = files('rte_bus_ifpga.h') +driver_sdk_headers += files('bus_ifpga_driver.h') sources = files('ifpga_bus.c') diff --git a/drivers/bus/ifpga/version.map b/drivers/bus/ifpga/version.map index da7f92c2a0..3d1943afe4 100644 --- a/drivers/bus/ifpga/version.map +++ b/drivers/bus/ifpga/version.map @@ -1,4 +1,4 @@ -DPDK_23 { +INTERNAL { global: rte_ifpga_driver_register; diff --git a/drivers/net/ipn3ke/ipn3ke_ethdev.c b/drivers/net/ipn3ke/ipn3ke_ethdev.c index 550a8b0466..2e39113941 100644 --- a/drivers/net/ipn3ke/ipn3ke_ethdev.c +++ b/drivers/net/ipn3ke/ipn3ke_ethdev.c @@ -16,7 +16,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/ipn3ke/ipn3ke_ethdev.h b/drivers/net/ipn3ke/ipn3ke_ethdev.h index 58fcc50c57..dbf57f9ba8 100644 --- a/drivers/net/ipn3ke/ipn3ke_ethdev.h +++ b/drivers/net/ipn3ke/ipn3ke_ethdev.h @@ -24,7 +24,7 @@ #include #include -#include +#include #include #define IPN3KE_TM_SCRATCH_RW 0 diff --git a/drivers/net/ipn3ke/ipn3ke_flow.c b/drivers/net/ipn3ke/ipn3ke_flow.c index 66ae31a5a9..5b57ee9341 100644 --- a/drivers/net/ipn3ke/ipn3ke_flow.c +++ b/drivers/net/ipn3ke/ipn3ke_flow.c @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/ipn3ke/ipn3ke_representor.c b/drivers/net/ipn3ke/ipn3ke_representor.c index abbecfdf2e..2f088d767f 100644 --- a/drivers/net/ipn3ke/ipn3ke_representor.c +++ b/drivers/net/ipn3ke/ipn3ke_representor.c @@ -18,7 +18,7 @@ #include #include #include -#include +#include #include #include "ipn3ke_rawdev_api.h" diff --git a/drivers/net/ipn3ke/ipn3ke_tm.c b/drivers/net/ipn3ke/ipn3ke_tm.c index 6a9b98fd7f..2f242b678a 100644 --- a/drivers/net/ipn3ke/ipn3ke_tm.c +++ b/drivers/net/ipn3ke/ipn3ke_tm.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include "ipn3ke_rawdev_api.h" diff --git a/drivers/raw/ifpga/afu_pmd_core.h b/drivers/raw/ifpga/afu_pmd_core.h index 91118a19ab..ab5a228147 100644 --- a/drivers/raw/ifpga/afu_pmd_core.h +++ b/drivers/raw/ifpga/afu_pmd_core.h @@ -15,7 +15,7 @@ extern "C" { #include #include -#include +#include #include #include "ifpga_rawdev.h" diff --git a/drivers/raw/ifpga/afu_pmd_he_hssi.c b/drivers/raw/ifpga/afu_pmd_he_hssi.c index 102de50812..eca1edc270 100644 --- a/drivers/raw/ifpga/afu_pmd_he_hssi.c +++ b/drivers/raw/ifpga/afu_pmd_he_hssi.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include "afu_pmd_core.h" diff --git a/drivers/raw/ifpga/afu_pmd_he_lpbk.c b/drivers/raw/ifpga/afu_pmd_he_lpbk.c index 8b2c85b5f8..da0aba6e00 100644 --- a/drivers/raw/ifpga/afu_pmd_he_lpbk.c +++ b/drivers/raw/ifpga/afu_pmd_he_lpbk.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include "afu_pmd_core.h" diff --git a/drivers/raw/ifpga/afu_pmd_he_mem.c b/drivers/raw/ifpga/afu_pmd_he_mem.c index 0f57a03b0e..3c41aa9ee8 100644 --- a/drivers/raw/ifpga/afu_pmd_he_mem.c +++ b/drivers/raw/ifpga/afu_pmd_he_mem.c @@ -18,7 +18,7 @@ #include #include #include -#include +#include #include #include "afu_pmd_core.h" diff --git a/drivers/raw/ifpga/afu_pmd_n3000.c b/drivers/raw/ifpga/afu_pmd_n3000.c index 5120df5f77..b7438bd372 100644 --- a/drivers/raw/ifpga/afu_pmd_n3000.c +++ b/drivers/raw/ifpga/afu_pmd_n3000.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include "afu_pmd_core.h" diff --git a/drivers/raw/ifpga/ifpga_rawdev.c b/drivers/raw/ifpga/ifpga_rawdev.c index 93a7e74959..bd9966a6c3 100644 --- a/drivers/raw/ifpga/ifpga_rawdev.c +++ b/drivers/raw/ifpga/ifpga_rawdev.c @@ -35,7 +35,7 @@ #include "base/ifpga_api.h" #include "rte_rawdev.h" #include "rte_rawdev_pmd.h" -#include "rte_bus_ifpga.h" +#include "bus_ifpga_driver.h" #include "ifpga_common.h" #include "ifpga_logs.h" #include "ifpga_rawdev.h" From patchwork Thu Jul 28 15:26:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114387 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id F0972A00C5; Thu, 28 Jul 2022 17:28:27 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 85ECD42BD1; Thu, 28 Jul 2022 17:28:03 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 908DD4014F for ; Thu, 28 Jul 2022 17:28:01 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022081; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=uaW7f8pDOMXWUTxDh8fP6axaxKO5y0pWc0MtsJQEVBs=; b=JgetzYw46Ft8WNqxpvhdvGtZ2fy78azwpZvuViMw0D8NGQydcXcUawA2tNRGTI28A4wieC m6uXQHiTHbMkpP8dU2aPl5kvcEGL1wmpnlHW4JgmZ3WRUYpa9coQjwiY5rpQJ9wMpWJAzU BtXcoULsphuCJN3hmpyfEgURs5qtMkU= 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-479-8phZgWOlOBeVAR5VThmcXw-1; Thu, 28 Jul 2022 11:27:57 -0400 X-MC-Unique: 8phZgWOlOBeVAR5VThmcXw-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 AD44C180F6DF; Thu, 28 Jul 2022 15:27:54 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id A50661415118; Thu, 28 Jul 2022 15:27:40 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Nicolas Chautru , Ray Kinsella , Nithin Dabilpuram , Kiran Kumar K , Sunil Kumar Kori , Satha Rao , Matan Azrad , Viacheslav Ovsiienko , Fan Zhang , Andrew Rybchenko , Ashish Gupta , Chandubabu Namburu , Ankur Dwivedi , Anoob Joseph , Tejasree Kondoj , Nagadheeraj Rottela , Srikanth Jampala , Jay Zhou , Radha Mohan Chintakuntla , Veerasenareddy Burru , Chengwen Feng , Bruce Richardson , Kevin Laatz , Conor Walsh , Timothy McDaniel , Jerin Jacob , Pavan Nikhilesh , Elena Agostini , Ashwin Sekhar T K , Harman Kalra , Shepard Siegel , Ed Czeck , John Miller , Steven Webster , Matt Peters , Rasesh Mody , Shahed Shaikh , Ajit Khaparde , Somnath Kotur , Chas Williams , "Min Hu (Connor)" , Rahul Lakkireddy , Simei Su , Wenjun Wu , Marcin Wojtas , Michal Krawczyk , Shai Brandes , Evgeny Schemeilin , Igor Chauskin , John Daley , Hyong Youb Kim , Ziyang Xuan , Xiaoyun Wang , Guoyang Zhou , Dongdong Liu , Yisen Zhuang , Yuying Zhang , Beilei Xing , Junfeng Guo , Andrew Boyer , Rosen Xu , Qiming Yang , Stephen Hemminger , Long Li , Jiawen Wu , Devendra Singh Rawat , Maciej Czekaj , Jian Wang , Maxime Coquelin , Chenbo Xia , Jochen Behrens , Jakub Palider , Tomasz Duszynski , Tianfei zhang , Jingjing Wu , Ori Kam , Xiao Wang , Vijay Kumar Srivastava , Thomas Monjalon , Ferruh Yigit Subject: [RFC v3 16/26] bus/pci: make driver-only headers private Date: Thu, 28 Jul 2022 17:26:30 +0200 Message-Id: <20220728152640.547725-17-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 The pci bus interface is for drivers only. Mark as internal and move the header in the driver headers list. While at it, cleanup the code: - fix indentation, - remove unneeded reference to bus specific singleton object, - remove unneeded list head structure type, - reorder the definitions and macro manipulating the bus singleton object, - remove inclusion of rte_bus.h and fix the code that relied on implicit inclusion, Signed-off-by: David Marchand Acked-by: Bruce Richardson Acked-by: Ajit Khaparde Acked-by: Rosen Xu --- Changes since RFC v2: - squashed cleanup for this bus code from other patches, - updated release notes, --- app/test/virtual_pmd.c | 2 +- doc/guides/rel_notes/release_22_11.rst | 2 +- drivers/baseband/acc100/rte_acc100_pmd.c | 2 +- .../fpga_5gnr_fec/rte_fpga_5gnr_fec.c | 2 +- drivers/baseband/fpga_lte_fec/fpga_lte_fec.c | 2 +- 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/meson.build | 1 + drivers/bus/pci/pci_common.c | 2 - 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/common/cnxk/roc_platform.h | 2 +- drivers/common/mlx5/linux/mlx5_common_os.c | 2 +- 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/windows/mlx5_common_os.c | 2 +- drivers/common/qat/qat_device.h | 2 +- drivers/common/qat/qat_qp.c | 2 +- drivers/common/sfc_efx/sfc_efx.h | 2 +- drivers/compress/mlx5/mlx5_compress.c | 2 +- drivers/compress/octeontx/otx_zip.h | 2 +- drivers/compress/qat/qat_comp.c | 2 +- drivers/crypto/ccp/ccp_dev.h | 2 +- drivers/crypto/ccp/ccp_pci.h | 2 +- drivers/crypto/ccp/rte_ccp_pmd.c | 2 +- drivers/crypto/cnxk/cn10k_cryptodev.c | 2 +- drivers/crypto/cnxk/cn9k_cryptodev.c | 2 +- drivers/crypto/mlx5/mlx5_crypto.c | 2 +- drivers/crypto/nitrox/nitrox_device.h | 2 +- drivers/crypto/octeontx/otx_cryptodev.c | 2 +- drivers/crypto/octeontx/otx_cryptodev_ops.c | 2 +- drivers/crypto/qat/qat_sym.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/hisilicon/hisi_dmadev.c | 2 +- drivers/dma/idxd/idxd_pci.c | 2 +- drivers/dma/ioat/ioat_dmadev.c | 2 +- drivers/event/dlb2/pf/dlb2_main.h | 2 +- drivers/event/dlb2/pf/dlb2_pf.c | 2 +- drivers/event/octeontx/ssovf_probe.c | 2 +- drivers/event/octeontx/timvf_probe.c | 2 +- drivers/gpu/cuda/cuda.c | 2 +- drivers/mempool/cnxk/cnxk_mempool.c | 2 +- drivers/mempool/octeontx/octeontx_fpavf.c | 2 +- drivers/net/ark/ark_ethdev.c | 2 +- drivers/net/avp/avp_ethdev.c | 2 +- drivers/net/bnx2x/bnx2x.h | 2 +- drivers/net/bnxt/bnxt.h | 2 +- drivers/net/bonding/rte_eth_bond_args.c | 3 +- drivers/net/cxgbe/base/adapter.h | 2 +- drivers/net/cxgbe/cxgbe_ethdev.c | 2 +- drivers/net/e1000/em_ethdev.c | 2 +- drivers/net/e1000/em_rxtx.c | 2 +- drivers/net/e1000/igb_ethdev.c | 2 +- drivers/net/e1000/igb_pf.c | 2 +- drivers/net/ena/ena_ethdev.h | 2 +- drivers/net/enic/base/vnic_dev.h | 2 +- drivers/net/enic/enic_ethdev.c | 2 +- drivers/net/enic/enic_main.c | 2 +- drivers/net/enic/enic_vf_representor.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 | 2 +- drivers/net/i40e/i40e_vf_representor.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 | 2 +- drivers/net/ipn3ke/ipn3ke_representor.c | 2 +- drivers/net/ipn3ke/ipn3ke_tm.c | 2 +- drivers/net/ixgbe/ixgbe_ethdev.c | 2 +- drivers/net/ixgbe/ixgbe_ethdev.h | 2 +- drivers/net/mlx4/mlx4_ethdev.c | 2 +- drivers/net/mlx5/linux/mlx5_ethdev_os.c | 2 +- drivers/net/mlx5/linux/mlx5_os.c | 3 +- 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/netvsc/hn_vf.c | 2 +- drivers/net/ngbe/base/ngbe_osdep.h | 2 +- drivers/net/ngbe/ngbe_pf.c | 2 +- drivers/net/octeontx/base/octeontx_pkivf.c | 2 +- drivers/net/octeontx/base/octeontx_pkovf.c | 2 +- drivers/net/qede/base/bcm_osal.h | 2 +- drivers/net/sfc/sfc.h | 2 +- drivers/net/sfc/sfc_ethdev.c | 2 +- drivers/net/sfc/sfc_sriov.c | 2 +- drivers/net/thunderx/nicvf_ethdev.c | 2 +- drivers/net/txgbe/txgbe_ethdev.h | 2 +- drivers/net/txgbe/txgbe_flow.c | 2 +- drivers/net/txgbe/txgbe_pf.c | 2 +- drivers/net/virtio/virtio_pci.h | 2 +- drivers/net/virtio/virtio_pci_ethdev.c | 2 +- drivers/net/vmxnet3/vmxnet3_ethdev.c | 2 +- drivers/raw/cnxk_bphy/cnxk_bphy.c | 2 +- drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c | 2 +- drivers/raw/cnxk_bphy/cnxk_bphy_irq.c | 2 +- drivers/raw/ifpga/afu_pmd_he_hssi.c | 2 +- drivers/raw/ifpga/afu_pmd_he_lpbk.c | 2 +- drivers/raw/ifpga/afu_pmd_he_mem.c | 2 +- drivers/raw/ifpga/afu_pmd_n3000.c | 2 +- drivers/raw/ifpga/ifpga_rawdev.c | 2 +- drivers/raw/ifpga/rte_pmd_ifpga.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/regex/mlx5/mlx5_regex.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 +- lib/ethdev/ethdev_pci.h | 2 +- lib/eventdev/eventdev_pmd_pci.h | 2 +- 128 files changed, 350 insertions(+), 331 deletions(-) create mode 100644 drivers/bus/pci/bus_pci_driver.h diff --git a/app/test/virtual_pmd.c b/app/test/virtual_pmd.c index cd4611ab48..2b55c85fd8 100644 --- a/app/test/virtual_pmd.c +++ b/app/test/virtual_pmd.c @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/doc/guides/rel_notes/release_22_11.rst b/doc/guides/rel_notes/release_22_11.rst index 8aae628d71..79ec128533 100644 --- a/doc/guides/rel_notes/release_22_11.rst +++ b/doc/guides/rel_notes/release_22_11.rst @@ -84,7 +84,7 @@ API Changes Also, make sure to start the actual text at the margin. ======================================================= -* drivers: Registering a driver on the ``auxiliary``, ``ifpga`` +* drivers: Registering a driver on the ``auxiliary``, ``ifpga``, ``pci`` buses has been marked as an internal API. External users may still register their driver using the associated driver headers (see ``enable_driver_sdk`` meson option). diff --git a/drivers/baseband/acc100/rte_acc100_pmd.c b/drivers/baseband/acc100/rte_acc100_pmd.c index a8482bd411..801e8920df 100644 --- a/drivers/baseband/acc100/rte_acc100_pmd.c +++ b/drivers/baseband/acc100/rte_acc100_pmd.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include #ifdef RTE_BBDEV_OFFLOAD_COST #include #endif diff --git a/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c b/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c index 82ae6ba678..c1d877c87f 100644 --- a/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c +++ b/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include #ifdef RTE_BBDEV_OFFLOAD_COST #include diff --git a/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c b/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c index 21d35292a3..f16814e241 100644 --- a/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c +++ b/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include #ifdef RTE_BBDEV_OFFLOAD_COST #include diff --git a/drivers/bus/pci/bsd/pci.c b/drivers/bus/pci/bsd/pci.c index 9a11f99ae3..bc560a2a56 100644 --- a/drivers/bus/pci/bsd/pci.c +++ b/drivers/bus/pci/bsd/pci.c @@ -28,7 +28,6 @@ #include #include #include -#include #include #include #include @@ -48,8 +47,6 @@ * PCI probing under BSD. */ -extern struct rte_pci_bus rte_pci_bus; - /* Map pci device */ int rte_pci_map_device(struct rte_pci_device *dev) diff --git a/drivers/bus/pci/bus_pci_driver.h b/drivers/bus/pci/bus_pci_driver.h new file mode 100644 index 0000000000..b5c7dee617 --- /dev/null +++ b/drivers/bus/pci/bus_pci_driver.h @@ -0,0 +1,200 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2010-2015 Intel Corporation. + * Copyright 2013-2014 6WIND S.A. + */ + +#ifndef BUS_PCI_DRIVER_H +#define BUS_PCI_DRIVER_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +/** Pathname of PCI devices directory. */ +__rte_internal +const char *rte_pci_get_sysfs_path(void); + +enum rte_pci_kernel_driver { + RTE_PCI_KDRV_UNKNOWN = 0, /* may be misc UIO or bifurcated driver */ + RTE_PCI_KDRV_IGB_UIO, /* igb_uio for Linux */ + RTE_PCI_KDRV_VFIO, /* VFIO for Linux */ + RTE_PCI_KDRV_UIO_GENERIC, /* uio_pci_generic for Linux */ + RTE_PCI_KDRV_NIC_UIO, /* nic_uio for FreeBSD */ + RTE_PCI_KDRV_NONE, /* no attached driver */ + RTE_PCI_KDRV_NET_UIO, /* NetUIO for Windows */ +}; + +/** + * A structure describing a PCI device. + */ +struct rte_pci_device { + RTE_TAILQ_ENTRY(rte_pci_device) next; /**< Next probed PCI device. */ + struct rte_device device; /**< Inherit core device */ + struct rte_pci_addr addr; /**< PCI location. */ + struct rte_pci_id id; /**< PCI ID. */ + struct rte_mem_resource mem_resource[PCI_MAX_RESOURCE]; + /**< PCI Memory Resource */ + struct rte_intr_handle *intr_handle; /**< Interrupt handle */ + struct rte_pci_driver *driver; /**< PCI driver used in probing */ + uint16_t max_vfs; /**< sriov enable if not zero */ + enum rte_pci_kernel_driver kdrv; /**< Kernel driver passthrough */ + char name[PCI_PRI_STR_SIZE+1]; /**< PCI location (ASCII) */ + struct rte_intr_handle *vfio_req_intr_handle; + /**< Handler of VFIO request interrupt */ +}; + +/** + * @internal + * Helper macro for drivers that need to convert to struct rte_pci_device. + */ +#define RTE_DEV_TO_PCI(ptr) container_of(ptr, struct rte_pci_device, device) + +#define RTE_DEV_TO_PCI_CONST(ptr) \ + container_of(ptr, const struct rte_pci_device, device) + +#define RTE_ETH_DEV_TO_PCI(eth_dev) RTE_DEV_TO_PCI((eth_dev)->device) + +#ifdef __cplusplus +/** C++ macro used to help building up tables of device IDs */ +#define RTE_PCI_DEVICE(vend, dev) \ + RTE_CLASS_ANY_ID, \ + (vend), \ + (dev), \ + RTE_PCI_ANY_ID, \ + RTE_PCI_ANY_ID +#else +/** Macro used to help building up tables of device IDs */ +#define RTE_PCI_DEVICE(vend, dev) \ + .class_id = RTE_CLASS_ANY_ID, \ + .vendor_id = (vend), \ + .device_id = (dev), \ + .subsystem_vendor_id = RTE_PCI_ANY_ID, \ + .subsystem_device_id = RTE_PCI_ANY_ID +#endif + +/** + * Initialisation function for the driver called during PCI probing. + */ +typedef int (rte_pci_probe_t)(struct rte_pci_driver *, struct rte_pci_device *); + +/** + * Uninitialisation function for the driver called during hotplugging. + */ +typedef int (rte_pci_remove_t)(struct rte_pci_device *); + +/** + * Driver-specific DMA mapping. After a successful call the device + * will be able to read/write from/to this segment. + * + * @param dev + * Pointer to the PCI device. + * @param addr + * Starting virtual address of memory to be mapped. + * @param iova + * Starting IOVA address of memory to be mapped. + * @param len + * Length of memory segment being mapped. + * @return + * - 0 On success. + * - Negative value and rte_errno is set otherwise. + */ +typedef int (pci_dma_map_t)(struct rte_pci_device *dev, void *addr, + uint64_t iova, size_t len); + +/** + * Driver-specific DMA un-mapping. After a successful call the device + * will not be able to read/write from/to this segment. + * + * @param dev + * Pointer to the PCI device. + * @param addr + * Starting virtual address of memory to be unmapped. + * @param iova + * Starting IOVA address of memory to be unmapped. + * @param len + * Length of memory segment being unmapped. + * @return + * - 0 On success. + * - Negative value and rte_errno is set otherwise. + */ +typedef int (pci_dma_unmap_t)(struct rte_pci_device *dev, void *addr, + uint64_t iova, size_t len); + +/** + * A structure describing a PCI driver. + */ +struct rte_pci_driver { + RTE_TAILQ_ENTRY(rte_pci_driver) next; /**< Next in list. */ + struct rte_driver driver; /**< Inherit core driver. */ + rte_pci_probe_t *probe; /**< Device probe function. */ + rte_pci_remove_t *remove; /**< Device remove function. */ + pci_dma_map_t *dma_map; /**< device dma map function. */ + pci_dma_unmap_t *dma_unmap; /**< device dma unmap function. */ + const struct rte_pci_id *id_table; /**< ID table, NULL terminated. */ + uint32_t drv_flags; /**< Flags RTE_PCI_DRV_*. */ +}; + +/** Device needs PCI BAR mapping (done with either IGB_UIO or VFIO) */ +#define RTE_PCI_DRV_NEED_MAPPING 0x0001 +/** Device needs PCI BAR mapping with enabled write combining (wc) */ +#define RTE_PCI_DRV_WC_ACTIVATE 0x0002 +/** Device already probed can be probed again to check for new ports. */ +#define RTE_PCI_DRV_PROBE_AGAIN 0x0004 +/** Device driver supports link state interrupt */ +#define RTE_PCI_DRV_INTR_LSC 0x0008 +/** Device driver supports device removal interrupt */ +#define RTE_PCI_DRV_INTR_RMV 0x0010 +/** Device driver needs to keep mapped resources if unsupported dev detected */ +#define RTE_PCI_DRV_KEEP_MAPPED_RES 0x0020 +/** Device driver needs IOVA as VA and cannot work with IOVA as PA */ +#define RTE_PCI_DRV_NEED_IOVA_AS_VA 0x0040 + +/** + * Register a PCI driver. + * + * @param driver + * A pointer to a rte_pci_driver structure describing the driver + * to be registered. + */ +__rte_internal +void rte_pci_register(struct rte_pci_driver *driver); + +/** Helper for PCI device registration from driver (eth, crypto) instance */ +#define RTE_PMD_REGISTER_PCI(nm, pci_drv) \ +RTE_INIT(pciinitfn_ ##nm) \ +{\ + (pci_drv).driver.name = RTE_STR(nm);\ + rte_pci_register(&pci_drv); \ +} \ +RTE_PMD_EXPORT_NAME(nm, __COUNTER__) + +/** + * Unregister a PCI driver. + * + * @param driver + * A pointer to a rte_pci_driver structure describing the driver + * to be unregistered. + */ +__rte_internal +void rte_pci_unregister(struct rte_pci_driver *driver); + +/* + * A structure used to access io resources for a pci device. + * rte_pci_ioport is arch, os, driver specific, and should not be used outside + * of pci ioport api. + */ +struct rte_pci_ioport { + struct rte_pci_device *dev; + uint64_t base; + uint64_t len; /* only filled for memory mapped ports */ +}; + +#ifdef __cplusplus +} +#endif + +#endif /* BUS_PCI_DRIVER_H */ diff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c index e521459870..fa5d5e131d 100644 --- a/drivers/bus/pci/linux/pci.c +++ b/drivers/bus/pci/linux/pci.c @@ -6,7 +6,6 @@ #include #include -#include #include #include #include @@ -24,8 +23,6 @@ * PCI probing using Linux sysfs. */ -extern struct rte_pci_bus rte_pci_bus; - static int pci_get_kernel_driver_by_path(const char *filename, char *dri_name, size_t len) diff --git a/drivers/bus/pci/meson.build b/drivers/bus/pci/meson.build index 81c7e94c00..f50f039a68 100644 --- a/drivers/bus/pci/meson.build +++ b/drivers/bus/pci/meson.build @@ -3,6 +3,7 @@ deps += ['pci'] headers = files('rte_bus_pci.h') +driver_sdk_headers = files('bus_pci_driver.h') sources = files('pci_common.c', 'pci_params.c') if is_linux diff --git a/drivers/bus/pci/pci_common.c b/drivers/bus/pci/pci_common.c index 37ab879779..0d61d49287 100644 --- a/drivers/bus/pci/pci_common.c +++ b/drivers/bus/pci/pci_common.c @@ -443,7 +443,6 @@ void rte_pci_register(struct rte_pci_driver *driver) { TAILQ_INSERT_TAIL(&rte_pci_bus.driver_list, driver, next); - driver->bus = &rte_pci_bus; } /* unregister a driver */ @@ -451,7 +450,6 @@ void rte_pci_unregister(struct rte_pci_driver *driver) { TAILQ_REMOVE(&rte_pci_bus.driver_list, driver, next); - driver->bus = NULL; } /* Add a device to PCI bus */ diff --git a/drivers/bus/pci/private.h b/drivers/bus/pci/private.h index 0fbef8e1d8..4e40a2ed85 100644 --- a/drivers/bus/pci/private.h +++ b/drivers/bus/pci/private.h @@ -8,12 +8,29 @@ #include #include -#include +#include +#include #include #include +/** + * Structure describing the PCI bus + */ +struct rte_pci_bus { + struct rte_bus bus; /**< Inherit the generic class */ + RTE_TAILQ_HEAD(, rte_pci_device) device_list; /**< List of PCI devices */ + RTE_TAILQ_HEAD(, rte_pci_driver) driver_list; /**< List of PCI drivers */ +}; + extern struct rte_pci_bus rte_pci_bus; +/* PCI Bus iterators */ +#define FOREACH_DEVICE_ON_PCIBUS(p) \ + RTE_TAILQ_FOREACH(p, &(rte_pci_bus.device_list), next) + +#define FOREACH_DRIVER_ON_PCIBUS(p) \ + RTE_TAILQ_FOREACH(p, &(rte_pci_bus.driver_list), next) + struct rte_pci_driver; struct rte_pci_device; diff --git a/drivers/bus/pci/rte_bus_pci.h b/drivers/bus/pci/rte_bus_pci.h index 1c6a8fdd7b..60e50ca875 100644 --- a/drivers/bus/pci/rte_bus_pci.h +++ b/drivers/bus/pci/rte_bus_pci.h @@ -24,176 +24,15 @@ extern "C" { #include #include -#include -#include #include -/** Pathname of PCI devices directory. */ -const char *rte_pci_get_sysfs_path(void); - /* Forward declarations */ struct rte_pci_device; struct rte_pci_driver; - -/** List of PCI devices */ -RTE_TAILQ_HEAD(rte_pci_device_list, rte_pci_device); -/** List of PCI drivers */ -RTE_TAILQ_HEAD(rte_pci_driver_list, rte_pci_driver); - -/* PCI Bus iterators */ -#define FOREACH_DEVICE_ON_PCIBUS(p) \ - RTE_TAILQ_FOREACH(p, &(rte_pci_bus.device_list), next) - -#define FOREACH_DRIVER_ON_PCIBUS(p) \ - RTE_TAILQ_FOREACH(p, &(rte_pci_bus.driver_list), next) +struct rte_pci_ioport; struct rte_devargs; -enum rte_pci_kernel_driver { - RTE_PCI_KDRV_UNKNOWN = 0, /* may be misc UIO or bifurcated driver */ - RTE_PCI_KDRV_IGB_UIO, /* igb_uio for Linux */ - RTE_PCI_KDRV_VFIO, /* VFIO for Linux */ - RTE_PCI_KDRV_UIO_GENERIC, /* uio_pci_generic for Linux */ - RTE_PCI_KDRV_NIC_UIO, /* nic_uio for FreeBSD */ - RTE_PCI_KDRV_NONE, /* no attached driver */ - RTE_PCI_KDRV_NET_UIO, /* NetUIO for Windows */ -}; - -/** - * A structure describing a PCI device. - */ -struct rte_pci_device { - RTE_TAILQ_ENTRY(rte_pci_device) next; /**< Next probed PCI device. */ - struct rte_device device; /**< Inherit core device */ - struct rte_pci_addr addr; /**< PCI location. */ - struct rte_pci_id id; /**< PCI ID. */ - struct rte_mem_resource mem_resource[PCI_MAX_RESOURCE]; - /**< PCI Memory Resource */ - struct rte_intr_handle *intr_handle; /**< Interrupt handle */ - struct rte_pci_driver *driver; /**< PCI driver used in probing */ - uint16_t max_vfs; /**< sriov enable if not zero */ - enum rte_pci_kernel_driver kdrv; /**< Kernel driver passthrough */ - char name[PCI_PRI_STR_SIZE+1]; /**< PCI location (ASCII) */ - struct rte_intr_handle *vfio_req_intr_handle; - /**< Handler of VFIO request interrupt */ -}; - -/** - * @internal - * Helper macro for drivers that need to convert to struct rte_pci_device. - */ -#define RTE_DEV_TO_PCI(ptr) container_of(ptr, struct rte_pci_device, device) - -#define RTE_DEV_TO_PCI_CONST(ptr) \ - container_of(ptr, const struct rte_pci_device, device) - -#define RTE_ETH_DEV_TO_PCI(eth_dev) RTE_DEV_TO_PCI((eth_dev)->device) - -#ifdef __cplusplus -/** C++ macro used to help building up tables of device IDs */ -#define RTE_PCI_DEVICE(vend, dev) \ - RTE_CLASS_ANY_ID, \ - (vend), \ - (dev), \ - RTE_PCI_ANY_ID, \ - RTE_PCI_ANY_ID -#else -/** Macro used to help building up tables of device IDs */ -#define RTE_PCI_DEVICE(vend, dev) \ - .class_id = RTE_CLASS_ANY_ID, \ - .vendor_id = (vend), \ - .device_id = (dev), \ - .subsystem_vendor_id = RTE_PCI_ANY_ID, \ - .subsystem_device_id = RTE_PCI_ANY_ID -#endif - -/** - * Initialisation function for the driver called during PCI probing. - */ -typedef int (rte_pci_probe_t)(struct rte_pci_driver *, struct rte_pci_device *); - -/** - * Uninitialisation function for the driver called during hotplugging. - */ -typedef int (rte_pci_remove_t)(struct rte_pci_device *); - -/** - * Driver-specific DMA mapping. After a successful call the device - * will be able to read/write from/to this segment. - * - * @param dev - * Pointer to the PCI device. - * @param addr - * Starting virtual address of memory to be mapped. - * @param iova - * Starting IOVA address of memory to be mapped. - * @param len - * Length of memory segment being mapped. - * @return - * - 0 On success. - * - Negative value and rte_errno is set otherwise. - */ -typedef int (pci_dma_map_t)(struct rte_pci_device *dev, void *addr, - uint64_t iova, size_t len); - -/** - * Driver-specific DMA un-mapping. After a successful call the device - * will not be able to read/write from/to this segment. - * - * @param dev - * Pointer to the PCI device. - * @param addr - * Starting virtual address of memory to be unmapped. - * @param iova - * Starting IOVA address of memory to be unmapped. - * @param len - * Length of memory segment being unmapped. - * @return - * - 0 On success. - * - Negative value and rte_errno is set otherwise. - */ -typedef int (pci_dma_unmap_t)(struct rte_pci_device *dev, void *addr, - uint64_t iova, size_t len); - -/** - * A structure describing a PCI driver. - */ -struct rte_pci_driver { - RTE_TAILQ_ENTRY(rte_pci_driver) next; /**< Next in list. */ - struct rte_driver driver; /**< Inherit core driver. */ - struct rte_pci_bus *bus; /**< PCI bus reference. */ - rte_pci_probe_t *probe; /**< Device probe function. */ - rte_pci_remove_t *remove; /**< Device remove function. */ - pci_dma_map_t *dma_map; /**< device dma map function. */ - pci_dma_unmap_t *dma_unmap; /**< device dma unmap function. */ - const struct rte_pci_id *id_table; /**< ID table, NULL terminated. */ - uint32_t drv_flags; /**< Flags RTE_PCI_DRV_*. */ -}; - -/** - * Structure describing the PCI bus - */ -struct rte_pci_bus { - struct rte_bus bus; /**< Inherit the generic class */ - struct rte_pci_device_list device_list; /**< List of PCI devices */ - struct rte_pci_driver_list driver_list; /**< List of PCI drivers */ -}; - -/** Device needs PCI BAR mapping (done with either IGB_UIO or VFIO) */ -#define RTE_PCI_DRV_NEED_MAPPING 0x0001 -/** Device needs PCI BAR mapping with enabled write combining (wc) */ -#define RTE_PCI_DRV_WC_ACTIVATE 0x0002 -/** Device already probed can be probed again to check for new ports. */ -#define RTE_PCI_DRV_PROBE_AGAIN 0x0004 -/** Device driver supports link state interrupt */ -#define RTE_PCI_DRV_INTR_LSC 0x0008 -/** Device driver supports device removal interrupt */ -#define RTE_PCI_DRV_INTR_RMV 0x0010 -/** Device driver needs to keep mapped resources if unsupported dev detected */ -#define RTE_PCI_DRV_KEEP_MAPPED_RES 0x0020 -/** Device driver needs IOVA as VA and cannot work with IOVA as PA */ -#define RTE_PCI_DRV_NEED_IOVA_AS_VA 0x0040 - /** * Map the PCI device resources in user space virtual memory address * @@ -261,33 +100,6 @@ off_t rte_pci_find_ext_capability(struct rte_pci_device *dev, uint32_t cap); __rte_experimental int rte_pci_set_bus_master(struct rte_pci_device *dev, bool enable); -/** - * Register a PCI driver. - * - * @param driver - * A pointer to a rte_pci_driver structure describing the driver - * to be registered. - */ -void rte_pci_register(struct rte_pci_driver *driver); - -/** Helper for PCI device registration from driver (eth, crypto) instance */ -#define RTE_PMD_REGISTER_PCI(nm, pci_drv) \ -RTE_INIT(pciinitfn_ ##nm) \ -{\ - (pci_drv).driver.name = RTE_STR(nm);\ - rte_pci_register(&pci_drv); \ -} \ -RTE_PMD_EXPORT_NAME(nm, __COUNTER__) - -/** - * Unregister a PCI driver. - * - * @param driver - * A pointer to a rte_pci_driver structure describing the driver - * to be unregistered. - */ -void rte_pci_unregister(struct rte_pci_driver *driver); - /** * Read PCI config space. * @@ -322,17 +134,6 @@ int rte_pci_read_config(const struct rte_pci_device *device, int rte_pci_write_config(const struct rte_pci_device *device, const void *buf, size_t len, off_t offset); -/** - * A structure used to access io resources for a pci device. - * rte_pci_ioport is arch, os, driver specific, and should not be used outside - * of pci ioport api. - */ -struct rte_pci_ioport { - struct rte_pci_device *dev; - uint64_t base; - uint64_t len; /* only filled for memory mapped ports */ -}; - /** * Initialize a rte_pci_ioport object for a pci device io resource. * diff --git a/drivers/bus/pci/version.map b/drivers/bus/pci/version.map index 3d5c2f3068..161ab86d3b 100644 --- a/drivers/bus/pci/version.map +++ b/drivers/bus/pci/version.map @@ -2,16 +2,13 @@ DPDK_23 { global: rte_pci_dump; - rte_pci_get_sysfs_path; rte_pci_ioport_map; rte_pci_ioport_read; rte_pci_ioport_unmap; rte_pci_ioport_write; rte_pci_map_device; rte_pci_read_config; - rte_pci_register; rte_pci_unmap_device; - rte_pci_unregister; rte_pci_write_config; local: *; @@ -25,3 +22,11 @@ EXPERIMENTAL { # added in 21.08 rte_pci_set_bus_master; }; + +INTERNAL { + global: + + rte_pci_get_sysfs_path; + rte_pci_register; + rte_pci_unregister; +}; diff --git a/drivers/bus/pci/windows/pci.c b/drivers/bus/pci/windows/pci.c index 7bf091158b..f013b743b3 100644 --- a/drivers/bus/pci/windows/pci.c +++ b/drivers/bus/pci/windows/pci.c @@ -9,6 +9,7 @@ #include #include #include +#include #include "private.h" #include "pci_netuio.h" diff --git a/drivers/bus/pci/windows/pci_netuio.c b/drivers/bus/pci/windows/pci_netuio.c index 5460399eea..314bbcf547 100644 --- a/drivers/bus/pci/windows/pci_netuio.c +++ b/drivers/bus/pci/windows/pci_netuio.c @@ -8,6 +8,7 @@ #include #include #include +#include #ifdef __MINGW32__ #include diff --git a/drivers/common/cnxk/roc_platform.h b/drivers/common/cnxk/roc_platform.h index 502f243a81..a7cbe444ae 100644 --- a/drivers/common/cnxk/roc_platform.h +++ b/drivers/common/cnxk/roc_platform.h @@ -7,7 +7,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/common/mlx5/linux/mlx5_common_os.c b/drivers/common/mlx5/linux/mlx5_common_os.c index b42102e84c..aafff60eeb 100644 --- a/drivers/common/mlx5/linux/mlx5_common_os.c +++ b/drivers/common/mlx5/linux/mlx5_common_os.c @@ -15,7 +15,7 @@ #include #include -#include +#include #include #include "mlx5_common.h" diff --git a/drivers/common/mlx5/linux/mlx5_common_os.h b/drivers/common/mlx5/linux/mlx5_common_os.h index 479bb3c7cb..81702b8768 100644 --- a/drivers/common/mlx5/linux/mlx5_common_os.h +++ b/drivers/common/mlx5/linux/mlx5_common_os.h @@ -9,7 +9,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/common/mlx5/mlx5_common.h b/drivers/common/mlx5/mlx5_common.h index 63f31437da..629a639a81 100644 --- a/drivers/common/mlx5/mlx5_common.h +++ b/drivers/common/mlx5/mlx5_common.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/common/mlx5/mlx5_common_pci.c b/drivers/common/mlx5/mlx5_common_pci.c index 66626953f1..e82cb881bf 100644 --- a/drivers/common/mlx5/mlx5_common_pci.c +++ b/drivers/common/mlx5/mlx5_common_pci.c @@ -9,7 +9,8 @@ #include #include #include -#include +#include +#include #include "mlx5_common_log.h" #include "mlx5_common_private.h" diff --git a/drivers/common/mlx5/windows/mlx5_common_os.c b/drivers/common/mlx5/windows/mlx5_common_os.c index f2fc7cd494..2b6058eb3e 100644 --- a/drivers/common/mlx5/windows/mlx5_common_os.c +++ b/drivers/common/mlx5/windows/mlx5_common_os.c @@ -7,7 +7,7 @@ #include #include -#include +#include #include #include diff --git a/drivers/common/qat/qat_device.h b/drivers/common/qat/qat_device.h index e1a32a7e87..d1512f3b89 100644 --- a/drivers/common/qat/qat_device.h +++ b/drivers/common/qat/qat_device.h @@ -4,7 +4,7 @@ #ifndef _QAT_DEVICE_H_ #define _QAT_DEVICE_H_ -#include +#include #include "qat_common.h" #include "qat_logs.h" diff --git a/drivers/common/qat/qat_qp.c b/drivers/common/qat/qat_qp.c index 08ac91eac4..4a1be35b47 100644 --- a/drivers/common/qat/qat_qp.c +++ b/drivers/common/qat/qat_qp.c @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/common/sfc_efx/sfc_efx.h b/drivers/common/sfc_efx/sfc_efx.h index c16eca60f3..d3ea586cb8 100644 --- a/drivers/common/sfc_efx/sfc_efx.h +++ b/drivers/common/sfc_efx/sfc_efx.h @@ -10,7 +10,7 @@ #ifndef _SFC_EFX_H_ #define _SFC_EFX_H_ -#include +#include #include "efx.h" #include "efsys.h" diff --git a/drivers/compress/mlx5/mlx5_compress.c b/drivers/compress/mlx5/mlx5_compress.c index d64a628c74..3d2c45fcee 100644 --- a/drivers/compress/mlx5/mlx5_compress.c +++ b/drivers/compress/mlx5/mlx5_compress.c @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/compress/octeontx/otx_zip.h b/drivers/compress/octeontx/otx_zip.h index 46c80c8dc2..cdef8cc6cb 100644 --- a/drivers/compress/octeontx/otx_zip.h +++ b/drivers/compress/octeontx/otx_zip.h @@ -7,7 +7,7 @@ #include -#include +#include #include #include #include diff --git a/drivers/compress/qat/qat_comp.c b/drivers/compress/qat/qat_comp.c index e8f57c3cc4..fe4a4999c6 100644 --- a/drivers/compress/qat/qat_comp.c +++ b/drivers/compress/qat/qat_comp.c @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/ccp/ccp_dev.h b/drivers/crypto/ccp/ccp_dev.h index 2a205cd446..9deaae7980 100644 --- a/drivers/crypto/ccp/ccp_dev.h +++ b/drivers/crypto/ccp/ccp_dev.h @@ -10,7 +10,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/ccp/ccp_pci.h b/drivers/crypto/ccp/ccp_pci.h index 7ed3bac406..6736bf8ad3 100644 --- a/drivers/crypto/ccp/ccp_pci.h +++ b/drivers/crypto/ccp/ccp_pci.h @@ -7,7 +7,7 @@ #include -#include +#include #define SYSFS_PCI_DEVICES "/sys/bus/pci/devices" #define PROC_MODULES "/proc/modules" diff --git a/drivers/crypto/ccp/rte_ccp_pmd.c b/drivers/crypto/ccp/rte_ccp_pmd.c index a35a8cd775..4957f11e97 100644 --- a/drivers/crypto/ccp/rte_ccp_pmd.c +++ b/drivers/crypto/ccp/rte_ccp_pmd.c @@ -3,7 +3,7 @@ */ #include -#include +#include #include #include #include diff --git a/drivers/crypto/cnxk/cn10k_cryptodev.c b/drivers/crypto/cnxk/cn10k_cryptodev.c index 1e0a7b91c9..3fd9f3c426 100644 --- a/drivers/crypto/cnxk/cn10k_cryptodev.c +++ b/drivers/crypto/cnxk/cn10k_cryptodev.c @@ -2,7 +2,7 @@ * Copyright(C) 2021 Marvell. */ -#include +#include #include #include #include diff --git a/drivers/crypto/cnxk/cn9k_cryptodev.c b/drivers/crypto/cnxk/cn9k_cryptodev.c index 54cd77e575..bd425f95ff 100644 --- a/drivers/crypto/cnxk/cn9k_cryptodev.c +++ b/drivers/crypto/cnxk/cn9k_cryptodev.c @@ -2,7 +2,7 @@ * Copyright(C) 2021 Marvell. */ -#include +#include #include #include #include diff --git a/drivers/crypto/mlx5/mlx5_crypto.c b/drivers/crypto/mlx5/mlx5_crypto.c index eb7616257e..dc8e291f50 100644 --- a/drivers/crypto/mlx5/mlx5_crypto.c +++ b/drivers/crypto/mlx5/mlx5_crypto.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/crypto/nitrox/nitrox_device.h b/drivers/crypto/nitrox/nitrox_device.h index 6b8095f42b..1ff7c59b63 100644 --- a/drivers/crypto/nitrox/nitrox_device.h +++ b/drivers/crypto/nitrox/nitrox_device.h @@ -5,7 +5,7 @@ #ifndef _NITROX_DEVICE_H_ #define _NITROX_DEVICE_H_ -#include +#include #include struct nitrox_sym_device; diff --git a/drivers/crypto/octeontx/otx_cryptodev.c b/drivers/crypto/octeontx/otx_cryptodev.c index 337d06aab8..b5ab937c3a 100644 --- a/drivers/crypto/octeontx/otx_cryptodev.c +++ b/drivers/crypto/octeontx/otx_cryptodev.c @@ -2,7 +2,7 @@ * Copyright(c) 2018 Cavium, Inc */ -#include +#include #include #include #include diff --git a/drivers/crypto/octeontx/otx_cryptodev_ops.c b/drivers/crypto/octeontx/otx_cryptodev_ops.c index 7aee67ab09..11840f5ecf 100644 --- a/drivers/crypto/octeontx/otx_cryptodev_ops.c +++ b/drivers/crypto/octeontx/otx_cryptodev_ops.c @@ -3,7 +3,7 @@ */ #include -#include +#include #include #include #include diff --git a/drivers/crypto/qat/qat_sym.c b/drivers/crypto/qat/qat_sym.c index db6316fbe9..f3a99ae15c 100644 --- a/drivers/crypto/qat/qat_sym.c +++ b/drivers/crypto/qat/qat_sym.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include "qat_sym.h" diff --git a/drivers/crypto/virtio/virtio_cryptodev.c b/drivers/crypto/virtio/virtio_cryptodev.c index ed64866758..21bd996064 100644 --- a/drivers/crypto/virtio/virtio_cryptodev.c +++ b/drivers/crypto/virtio/virtio_cryptodev.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/virtio/virtio_pci.c b/drivers/crypto/virtio/virtio_pci.c index ae069794a6..95a43c8801 100644 --- a/drivers/crypto/virtio/virtio_pci.c +++ b/drivers/crypto/virtio/virtio_pci.c @@ -10,7 +10,6 @@ #endif #include -#include #include "virtio_pci.h" #include "virtqueue.h" diff --git a/drivers/crypto/virtio/virtio_pci.h b/drivers/crypto/virtio/virtio_pci.h index 0a7ea1bb64..41949c3d13 100644 --- a/drivers/crypto/virtio/virtio_pci.h +++ b/drivers/crypto/virtio/virtio_pci.h @@ -9,7 +9,7 @@ #include #include -#include +#include #include #include "virtio_crypto.h" diff --git a/drivers/dma/cnxk/cnxk_dmadev.c b/drivers/dma/cnxk/cnxk_dmadev.c index 2824c1b44f..9f0de60861 100644 --- a/drivers/dma/cnxk/cnxk_dmadev.c +++ b/drivers/dma/cnxk/cnxk_dmadev.c @@ -5,8 +5,7 @@ #include #include -#include -#include +#include #include #include #include diff --git a/drivers/dma/hisilicon/hisi_dmadev.c b/drivers/dma/hisilicon/hisi_dmadev.c index 9494b60779..0e11ca14cc 100644 --- a/drivers/dma/hisilicon/hisi_dmadev.c +++ b/drivers/dma/hisilicon/hisi_dmadev.c @@ -5,7 +5,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/dma/idxd/idxd_pci.c b/drivers/dma/idxd/idxd_pci.c index 2f8ec06d9e..781fa02db3 100644 --- a/drivers/dma/idxd/idxd_pci.c +++ b/drivers/dma/idxd/idxd_pci.c @@ -2,7 +2,7 @@ * Copyright(c) 2021 Intel Corporation */ -#include +#include #include #include #include diff --git a/drivers/dma/ioat/ioat_dmadev.c b/drivers/dma/ioat/ioat_dmadev.c index a230496b11..5906eb45aa 100644 --- a/drivers/dma/ioat/ioat_dmadev.c +++ b/drivers/dma/ioat/ioat_dmadev.c @@ -2,7 +2,7 @@ * Copyright(c) 2021 Intel Corporation */ -#include +#include #include #include #include diff --git a/drivers/event/dlb2/pf/dlb2_main.h b/drivers/event/dlb2/pf/dlb2_main.h index 9eeda482a3..5aa51b1616 100644 --- a/drivers/event/dlb2/pf/dlb2_main.h +++ b/drivers/event/dlb2/pf/dlb2_main.h @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include "base/dlb2_hw_types.h" diff --git a/drivers/event/dlb2/pf/dlb2_pf.c b/drivers/event/dlb2/pf/dlb2_pf.c index dd3f2b8ece..9f8c6cd8b8 100644 --- a/drivers/event/dlb2/pf/dlb2_pf.c +++ b/drivers/event/dlb2/pf/dlb2_pf.c @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/event/octeontx/ssovf_probe.c b/drivers/event/octeontx/ssovf_probe.c index 4da7d1ae45..2c9601a8ff 100644 --- a/drivers/event/octeontx/ssovf_probe.c +++ b/drivers/event/octeontx/ssovf_probe.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include "octeontx_mbox.h" #include "ssovf_evdev.h" diff --git a/drivers/event/octeontx/timvf_probe.c b/drivers/event/octeontx/timvf_probe.c index 59bba31e8e..7ce3eddd7e 100644 --- a/drivers/event/octeontx/timvf_probe.c +++ b/drivers/event/octeontx/timvf_probe.c @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include diff --git a/drivers/gpu/cuda/cuda.c b/drivers/gpu/cuda/cuda.c index 664605d9fb..2be7b8d2df 100644 --- a/drivers/gpu/cuda/cuda.c +++ b/drivers/gpu/cuda/cuda.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include diff --git a/drivers/mempool/cnxk/cnxk_mempool.c b/drivers/mempool/cnxk/cnxk_mempool.c index 54a1a7d3ae..78caf987d0 100644 --- a/drivers/mempool/cnxk/cnxk_mempool.c +++ b/drivers/mempool/cnxk/cnxk_mempool.c @@ -3,7 +3,7 @@ */ #include -#include +#include #include #include #include diff --git a/drivers/mempool/octeontx/octeontx_fpavf.c b/drivers/mempool/octeontx/octeontx_fpavf.c index 8fd9edced2..1513c632c6 100644 --- a/drivers/mempool/octeontx/octeontx_fpavf.c +++ b/drivers/mempool/octeontx/octeontx_fpavf.c @@ -13,7 +13,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/net/ark/ark_ethdev.c b/drivers/net/ark/ark_ethdev.c index e8e4092be6..c654a229f7 100644 --- a/drivers/net/ark/ark_ethdev.c +++ b/drivers/net/ark/ark_ethdev.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include diff --git a/drivers/net/avp/avp_ethdev.c b/drivers/net/avp/avp_ethdev.c index 7ac55584ff..7c0cb666fb 100644 --- a/drivers/net/avp/avp_ethdev.c +++ b/drivers/net/avp/avp_ethdev.c @@ -16,7 +16,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/bnx2x/bnx2x.h b/drivers/net/bnx2x/bnx2x.h index d7e1729e68..89414ac88a 100644 --- a/drivers/net/bnx2x/bnx2x.h +++ b/drivers/net/bnx2x/bnx2x.h @@ -16,7 +16,7 @@ #include #include -#include +#include #include #include "bnx2x_osal.h" diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h index e86e51e1fa..c9aa45ed3b 100644 --- a/drivers/net/bnxt/bnxt.h +++ b/drivers/net/bnxt/bnxt.h @@ -11,7 +11,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/net/bonding/rte_eth_bond_args.c b/drivers/net/bonding/rte_eth_bond_args.c index 5406e1c934..1a86eb3c00 100644 --- a/drivers/net/bonding/rte_eth_bond_args.c +++ b/drivers/net/bonding/rte_eth_bond_args.c @@ -4,7 +4,8 @@ #include #include -#include +#include +#include #include #include "rte_eth_bond.h" diff --git a/drivers/net/cxgbe/base/adapter.h b/drivers/net/cxgbe/base/adapter.h index 1c016a7115..16cbc1a345 100644 --- a/drivers/net/cxgbe/base/adapter.h +++ b/drivers/net/cxgbe/base/adapter.h @@ -8,7 +8,7 @@ #ifndef __T4_ADAPTER_H__ #define __T4_ADAPTER_H__ -#include +#include #include #include #include diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c index cf9a2fdc19..fd71a50a58 100644 --- a/drivers/net/cxgbe/cxgbe_ethdev.c +++ b/drivers/net/cxgbe/cxgbe_ethdev.c @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c index 794496abfc..409de50083 100644 --- a/drivers/net/e1000/em_ethdev.c +++ b/drivers/net/e1000/em_ethdev.c @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/e1000/em_rxtx.c b/drivers/net/e1000/em_rxtx.c index cea5b490ba..d48fd52404 100644 --- a/drivers/net/e1000/em_rxtx.c +++ b/drivers/net/e1000/em_rxtx.c @@ -18,7 +18,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c index a9c18b27e8..43979992d3 100644 --- a/drivers/net/e1000/igb_ethdev.c +++ b/drivers/net/e1000/igb_ethdev.c @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/e1000/igb_pf.c b/drivers/net/e1000/igb_pf.c index 3f3fd0d61e..c7588ea57e 100644 --- a/drivers/net/e1000/igb_pf.c +++ b/drivers/net/e1000/igb_pf.c @@ -10,7 +10,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/net/ena/ena_ethdev.h b/drivers/net/ena/ena_ethdev.h index 0db0918b43..4709675af8 100644 --- a/drivers/net/ena/ena_ethdev.h +++ b/drivers/net/ena/ena_ethdev.h @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/enic/base/vnic_dev.h b/drivers/net/enic/base/vnic_dev.h index 4b9f75b65f..44ca5c739f 100644 --- a/drivers/net/enic/base/vnic_dev.h +++ b/drivers/net/enic/base/vnic_dev.h @@ -9,7 +9,7 @@ #include #include -#include +#include #include "enic_compat.h" #include "vnic_resource.h" diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c index a8d470e8ac..998436e5e8 100644 --- a/drivers/net/enic/enic_ethdev.c +++ b/drivers/net/enic/enic_ethdev.c @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c index 9f351de72e..19a99a82c5 100644 --- a/drivers/net/enic/enic_main.c +++ b/drivers/net/enic/enic_main.c @@ -10,7 +10,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/net/enic/enic_vf_representor.c b/drivers/net/enic/enic_vf_representor.c index 1ad6ad3dfb..7312c411bd 100644 --- a/drivers/net/enic/enic_vf_representor.c +++ b/drivers/net/enic/enic_vf_representor.c @@ -5,7 +5,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/net/hinic/base/hinic_pmd_hwdev.c b/drivers/net/hinic/base/hinic_pmd_hwdev.c index 5eb022297e..818698dcb3 100644 --- a/drivers/net/hinic/base/hinic_pmd_hwdev.c +++ b/drivers/net/hinic/base/hinic_pmd_hwdev.c @@ -3,7 +3,7 @@ */ #include -#include +#include #include #include diff --git a/drivers/net/hinic/base/hinic_pmd_hwif.c b/drivers/net/hinic/base/hinic_pmd_hwif.c index 26fa1e27d4..2d3f192b21 100644 --- a/drivers/net/hinic/base/hinic_pmd_hwif.c +++ b/drivers/net/hinic/base/hinic_pmd_hwif.c @@ -2,7 +2,7 @@ * Copyright(c) 2017 Huawei Technologies Co., Ltd */ -#include +#include #include "hinic_compat.h" #include "hinic_csr.h" diff --git a/drivers/net/hinic/base/hinic_pmd_nicio.c b/drivers/net/hinic/base/hinic_pmd_nicio.c index ad5db9f1de..4aa3fa6adc 100644 --- a/drivers/net/hinic/base/hinic_pmd_nicio.c +++ b/drivers/net/hinic/base/hinic_pmd_nicio.c @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause * Copyright(c) 2017 Huawei Technologies Co., Ltd */ -#include +#include #include "hinic_compat.h" #include "hinic_pmd_hwdev.h" diff --git a/drivers/net/hinic/hinic_pmd_ethdev.c b/drivers/net/hinic/hinic_pmd_ethdev.c index 35788f46eb..7aa5e7d8e9 100644 --- a/drivers/net/hinic/hinic_pmd_ethdev.c +++ b/drivers/net/hinic/hinic_pmd_ethdev.c @@ -3,7 +3,7 @@ */ #include -#include +#include #include #include #include diff --git a/drivers/net/hns3/hns3_common.c b/drivers/net/hns3/hns3_common.c index 424205356e..e8e5aa2c86 100644 --- a/drivers/net/hns3/hns3_common.c +++ b/drivers/net/hns3/hns3_common.c @@ -3,7 +3,7 @@ */ #include -#include +#include #include #include diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c index 6b1d1a5fb1..144daf1636 100644 --- a/drivers/net/hns3/hns3_ethdev.c +++ b/drivers/net/hns3/hns3_ethdev.c @@ -3,7 +3,7 @@ */ #include -#include +#include #include #include "hns3_ethdev.h" diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c index 95f711e7eb..cd0c91f3a3 100644 --- a/drivers/net/hns3/hns3_rxtx.c +++ b/drivers/net/hns3/hns3_rxtx.c @@ -2,7 +2,7 @@ * Copyright(c) 2018-2021 HiSilicon Limited. */ -#include +#include #include #include #include diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 67d79de08d..7bdc453ec1 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/i40e/i40e_vf_representor.c b/drivers/net/i40e/i40e_vf_representor.c index 7f8e81858e..cc0f992453 100644 --- a/drivers/net/i40e/i40e_vf_representor.c +++ b/drivers/net/i40e/i40e_vf_representor.c @@ -2,7 +2,7 @@ * Copyright(c) 2018 Intel Corporation. */ -#include +#include #include #include #include diff --git a/drivers/net/igc/igc_ethdev.c b/drivers/net/igc/igc_ethdev.c index 7f221a5d34..e3727b7b41 100644 --- a/drivers/net/igc/igc_ethdev.c +++ b/drivers/net/igc/igc_ethdev.c @@ -7,7 +7,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/net/ionic/ionic.h b/drivers/net/ionic/ionic.h index 49b90d1b7c..a55202b178 100644 --- a/drivers/net/ionic/ionic.h +++ b/drivers/net/ionic/ionic.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include "ionic_dev.h" #include "ionic_if.h" diff --git a/drivers/net/ionic/ionic_ethdev.c b/drivers/net/ionic/ionic_ethdev.c index 28280c5377..d72033c32c 100644 --- a/drivers/net/ionic/ionic_ethdev.c +++ b/drivers/net/ionic/ionic_ethdev.c @@ -3,7 +3,7 @@ */ #include -#include +#include #include #include #include diff --git a/drivers/net/ipn3ke/ipn3ke_ethdev.c b/drivers/net/ipn3ke/ipn3ke_ethdev.c index 2e39113941..70a06a3b15 100644 --- a/drivers/net/ipn3ke/ipn3ke_ethdev.c +++ b/drivers/net/ipn3ke/ipn3ke_ethdev.c @@ -4,7 +4,7 @@ #include -#include +#include #include #include #include diff --git a/drivers/net/ipn3ke/ipn3ke_representor.c b/drivers/net/ipn3ke/ipn3ke_representor.c index 2f088d767f..2ef96a984a 100644 --- a/drivers/net/ipn3ke/ipn3ke_representor.c +++ b/drivers/net/ipn3ke/ipn3ke_representor.c @@ -5,7 +5,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/net/ipn3ke/ipn3ke_tm.c b/drivers/net/ipn3ke/ipn3ke_tm.c index 2f242b678a..0260227900 100644 --- a/drivers/net/ipn3ke/ipn3ke_tm.c +++ b/drivers/net/ipn3ke/ipn3ke_tm.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c index f31bbb7895..552e41692c 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h index cc6049a66a..ff34fd1515 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.h +++ b/drivers/net/ixgbe/ixgbe_ethdev.h @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include /* need update link, bit flag */ diff --git a/drivers/net/mlx4/mlx4_ethdev.c b/drivers/net/mlx4/mlx4_ethdev.c index ce74c51ce2..bb1dd33e7c 100644 --- a/drivers/net/mlx4/mlx4_ethdev.c +++ b/drivers/net/mlx4/mlx4_ethdev.c @@ -32,7 +32,7 @@ #pragma GCC diagnostic error "-Wpedantic" #endif -#include +#include #include #include #include diff --git a/drivers/net/mlx5/linux/mlx5_ethdev_os.c b/drivers/net/mlx5/linux/mlx5_ethdev_os.c index aaf636aa0d..661d362dc0 100644 --- a/drivers/net/mlx5/linux/mlx5_ethdev_os.c +++ b/drivers/net/mlx5/linux/mlx5_ethdev_os.c @@ -25,7 +25,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c index c9ed38ef7c..efb262e368 100644 --- a/drivers/net/mlx5/linux/mlx5_os.c +++ b/drivers/net/mlx5/linux/mlx5_os.c @@ -19,7 +19,8 @@ #include #include #include -#include +#include +#include #include #include #include diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index 998846adbe..30923b0732 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c index 05c919ed39..a5c7ca8c52 100644 --- a/drivers/net/mlx5/mlx5_ethdev.c +++ b/drivers/net/mlx5/mlx5_ethdev.c @@ -11,7 +11,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index bee9363515..e122b39cb3 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c index 0140f8b3b2..9150ced72d 100644 --- a/drivers/net/mlx5/mlx5_txq.c +++ b/drivers/net/mlx5/mlx5_txq.c @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/net/netvsc/hn_vf.c b/drivers/net/netvsc/hn_vf.c index 62948bf889..cce0a79edb 100644 --- a/drivers/net/netvsc/hn_vf.c +++ b/drivers/net/netvsc/hn_vf.c @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/ngbe/base/ngbe_osdep.h b/drivers/net/ngbe/base/ngbe_osdep.h index bf1fa30312..8783fce4dd 100644 --- a/drivers/net/ngbe/base/ngbe_osdep.h +++ b/drivers/net/ngbe/base/ngbe_osdep.h @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include "../ngbe_logs.h" diff --git a/drivers/net/ngbe/ngbe_pf.c b/drivers/net/ngbe/ngbe_pf.c index 12a18de31d..947ae7fe94 100644 --- a/drivers/net/ngbe/ngbe_pf.c +++ b/drivers/net/ngbe/ngbe_pf.c @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include "base/ngbe.h" #include "ngbe_ethdev.h" diff --git a/drivers/net/octeontx/base/octeontx_pkivf.c b/drivers/net/octeontx/base/octeontx_pkivf.c index 0ddff54886..6a48a22de6 100644 --- a/drivers/net/octeontx/base/octeontx_pkivf.c +++ b/drivers/net/octeontx/base/octeontx_pkivf.c @@ -5,7 +5,7 @@ #include #include -#include +#include #include "../octeontx_logs.h" #include "octeontx_io.h" diff --git a/drivers/net/octeontx/base/octeontx_pkovf.c b/drivers/net/octeontx/base/octeontx_pkovf.c index bf28bc7992..5d445dfb49 100644 --- a/drivers/net/octeontx/base/octeontx_pkovf.c +++ b/drivers/net/octeontx/base/octeontx_pkovf.c @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include #include "../octeontx_logs.h" diff --git a/drivers/net/qede/base/bcm_osal.h b/drivers/net/qede/base/bcm_osal.h index 9ea579bfc8..67e7f759fe 100644 --- a/drivers/net/qede/base/bcm_osal.h +++ b/drivers/net/qede/base/bcm_osal.h @@ -20,7 +20,7 @@ #include #include #include -#include +#include /* Forward declaration */ struct ecore_dev; diff --git a/drivers/net/sfc/sfc.h b/drivers/net/sfc/sfc.h index a0979618be..0a1e224fa2 100644 --- a/drivers/net/sfc/sfc.h +++ b/drivers/net/sfc/sfc.h @@ -13,7 +13,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c index 39f85e8b84..506c62a726 100644 --- a/drivers/net/sfc/sfc_ethdev.c +++ b/drivers/net/sfc/sfc_ethdev.c @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/sfc/sfc_sriov.c b/drivers/net/sfc/sfc_sriov.c index 385b172e2e..009b884d8d 100644 --- a/drivers/net/sfc/sfc_sriov.c +++ b/drivers/net/sfc/sfc_sriov.c @@ -8,7 +8,7 @@ */ #include -#include +#include #include "sfc.h" #include "sfc_log.h" diff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c index 262c024560..28183ec740 100644 --- a/drivers/net/thunderx/nicvf_ethdev.c +++ b/drivers/net/thunderx/nicvf_ethdev.c @@ -32,7 +32,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/txgbe/txgbe_ethdev.h b/drivers/net/txgbe/txgbe_ethdev.h index 262dbb5e38..6fb22ca7d9 100644 --- a/drivers/net/txgbe/txgbe_ethdev.h +++ b/drivers/net/txgbe/txgbe_ethdev.h @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include /* need update link, bit flag */ diff --git a/drivers/net/txgbe/txgbe_flow.c b/drivers/net/txgbe/txgbe_flow.c index d0093c0163..f19bdf36dc 100644 --- a/drivers/net/txgbe/txgbe_flow.c +++ b/drivers/net/txgbe/txgbe_flow.c @@ -4,7 +4,7 @@ */ #include -#include +#include #include #include #include diff --git a/drivers/net/txgbe/txgbe_pf.c b/drivers/net/txgbe/txgbe_pf.c index 0b82fb1a88..176f79005c 100644 --- a/drivers/net/txgbe/txgbe_pf.c +++ b/drivers/net/txgbe/txgbe_pf.c @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include "base/txgbe.h" #include "txgbe_ethdev.h" diff --git a/drivers/net/virtio/virtio_pci.h b/drivers/net/virtio/virtio_pci.h index 11e25a0142..6d4a8712c2 100644 --- a/drivers/net/virtio/virtio_pci.h +++ b/drivers/net/virtio/virtio_pci.h @@ -9,7 +9,7 @@ #include #include -#include +#include #include #include "virtio.h" diff --git a/drivers/net/virtio/virtio_pci_ethdev.c b/drivers/net/virtio/virtio_pci_ethdev.c index 1f6bdeddda..2b9e35cef5 100644 --- a/drivers/net/virtio/virtio_pci_ethdev.c +++ b/drivers/net/virtio/virtio_pci_ethdev.c @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c index 2af67dc0a3..101b1cb500 100644 --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/raw/cnxk_bphy/cnxk_bphy.c b/drivers/raw/cnxk_bphy/cnxk_bphy.c index 349d551839..db029cbf34 100644 --- a/drivers/raw/cnxk_bphy/cnxk_bphy.c +++ b/drivers/raw/cnxk_bphy/cnxk_bphy.c @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause * Copyright(C) 2021 Marvell. */ -#include +#include #include #include #include diff --git a/drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c b/drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c index 26def43564..2d8466ef91 100644 --- a/drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c +++ b/drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c @@ -3,7 +3,7 @@ */ #include -#include +#include #include #include diff --git a/drivers/raw/cnxk_bphy/cnxk_bphy_irq.c b/drivers/raw/cnxk_bphy/cnxk_bphy_irq.c index bbe7f74def..b424d6127d 100644 --- a/drivers/raw/cnxk_bphy/cnxk_bphy_irq.c +++ b/drivers/raw/cnxk_bphy/cnxk_bphy_irq.c @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause * Copyright(C) 2021 Marvell. */ -#include +#include #include #include #include diff --git a/drivers/raw/ifpga/afu_pmd_he_hssi.c b/drivers/raw/ifpga/afu_pmd_he_hssi.c index eca1edc270..859f28dcc1 100644 --- a/drivers/raw/ifpga/afu_pmd_he_hssi.c +++ b/drivers/raw/ifpga/afu_pmd_he_hssi.c @@ -18,7 +18,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/raw/ifpga/afu_pmd_he_lpbk.c b/drivers/raw/ifpga/afu_pmd_he_lpbk.c index da0aba6e00..c7c5cda48c 100644 --- a/drivers/raw/ifpga/afu_pmd_he_lpbk.c +++ b/drivers/raw/ifpga/afu_pmd_he_lpbk.c @@ -18,7 +18,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/raw/ifpga/afu_pmd_he_mem.c b/drivers/raw/ifpga/afu_pmd_he_mem.c index 3c41aa9ee8..a1db533eeb 100644 --- a/drivers/raw/ifpga/afu_pmd_he_mem.c +++ b/drivers/raw/ifpga/afu_pmd_he_mem.c @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/raw/ifpga/afu_pmd_n3000.c b/drivers/raw/ifpga/afu_pmd_n3000.c index b7438bd372..67b3941265 100644 --- a/drivers/raw/ifpga/afu_pmd_n3000.c +++ b/drivers/raw/ifpga/afu_pmd_n3000.c @@ -18,7 +18,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/raw/ifpga/ifpga_rawdev.c b/drivers/raw/ifpga/ifpga_rawdev.c index bd9966a6c3..d6106dd5da 100644 --- a/drivers/raw/ifpga/ifpga_rawdev.c +++ b/drivers/raw/ifpga/ifpga_rawdev.c @@ -16,7 +16,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/raw/ifpga/rte_pmd_ifpga.c b/drivers/raw/ifpga/rte_pmd_ifpga.c index 1ca248123b..a47d5a0350 100644 --- a/drivers/raw/ifpga/rte_pmd_ifpga.c +++ b/drivers/raw/ifpga/rte_pmd_ifpga.c @@ -3,7 +3,7 @@ */ #include -#include +#include #include #include #include "rte_pmd_ifpga.h" diff --git a/drivers/raw/ioat/idxd_pci.c b/drivers/raw/ioat/idxd_pci.c index 13515dbc6c..90ec0222e6 100644 --- a/drivers/raw/ioat/idxd_pci.c +++ b/drivers/raw/ioat/idxd_pci.c @@ -2,7 +2,7 @@ * Copyright(c) 2020 Intel Corporation */ -#include +#include #include #include diff --git a/drivers/raw/ioat/ioat_rawdev.c b/drivers/raw/ioat/ioat_rawdev.c index 11341fcf5d..f58006bbda 100644 --- a/drivers/raw/ioat/ioat_rawdev.c +++ b/drivers/raw/ioat/ioat_rawdev.c @@ -3,7 +3,7 @@ */ #include -#include +#include #include #include #include diff --git a/drivers/raw/ntb/ntb.c b/drivers/raw/ntb/ntb.c index f5e773c53b..76e98fe515 100644 --- a/drivers/raw/ntb/ntb.c +++ b/drivers/raw/ntb/ntb.c @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/raw/ntb/ntb_hw_intel.c b/drivers/raw/ntb/ntb_hw_intel.c index 20cdb761a3..9b4465176a 100644 --- a/drivers/raw/ntb/ntb_hw_intel.c +++ b/drivers/raw/ntb/ntb_hw_intel.c @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/regex/mlx5/mlx5_regex.c b/drivers/regex/mlx5/mlx5_regex.c index 9f79c6907c..4c20daac94 100644 --- a/drivers/regex/mlx5/mlx5_regex.c +++ b/drivers/regex/mlx5/mlx5_regex.c @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/regex/mlx5/mlx5_regex_fastpath.c b/drivers/regex/mlx5/mlx5_regex_fastpath.c index 9a2db7e43f..0a8c83fe14 100644 --- a/drivers/regex/mlx5/mlx5_regex_fastpath.c +++ b/drivers/regex/mlx5/mlx5_regex_fastpath.c @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/vdpa/ifc/base/ifcvf_osdep.h b/drivers/vdpa/ifc/base/ifcvf_osdep.h index 3d567695cc..6444d7f72c 100644 --- a/drivers/vdpa/ifc/base/ifcvf_osdep.h +++ b/drivers/vdpa/ifc/base/ifcvf_osdep.h @@ -10,7 +10,7 @@ #include #include -#include +#include #include #include diff --git a/drivers/vdpa/ifc/ifcvf_vdpa.c b/drivers/vdpa/ifc/ifcvf_vdpa.c index ac42de9c79..d5ac583589 100644 --- a/drivers/vdpa/ifc/ifcvf_vdpa.c +++ b/drivers/vdpa/ifc/ifcvf_vdpa.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/vdpa/mlx5/mlx5_vdpa.c b/drivers/vdpa/mlx5/mlx5_vdpa.c index 91af792a3a..026daa3f24 100644 --- a/drivers/vdpa/mlx5/mlx5_vdpa.c +++ b/drivers/vdpa/mlx5/mlx5_vdpa.c @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/vdpa/sfc/sfc_vdpa.h b/drivers/vdpa/sfc/sfc_vdpa.h index daeb27d4cd..b25eb3a5fe 100644 --- a/drivers/vdpa/sfc/sfc_vdpa.h +++ b/drivers/vdpa/sfc/sfc_vdpa.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include "sfc_efx.h" #include "sfc_efx_mcdi.h" diff --git a/lib/ethdev/ethdev_pci.h b/lib/ethdev/ethdev_pci.h index b4bb460dcb..b3ac509f36 100644 --- a/lib/ethdev/ethdev_pci.h +++ b/lib/ethdev/ethdev_pci.h @@ -13,7 +13,7 @@ extern "C" { #include #include #include -#include +#include #include #include diff --git a/lib/eventdev/eventdev_pmd_pci.h b/lib/eventdev/eventdev_pmd_pci.h index 24b56faaa9..7bbec40c71 100644 --- a/lib/eventdev/eventdev_pmd_pci.h +++ b/lib/eventdev/eventdev_pmd_pci.h @@ -23,7 +23,7 @@ extern "C" { #include #include #include -#include +#include #include "eventdev_pmd.h" From patchwork Thu Jul 28 15:26:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114388 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 3C94AA00C5; Thu, 28 Jul 2022 17:28:38 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 45A0042BC5; Thu, 28 Jul 2022 17:28:13 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 2A78D4014F for ; Thu, 28 Jul 2022 17:28:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022091; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iaKnTe38kVqhUDUyrkp27vLf+F+adU/+ujJ8qzeulJA=; b=GeHhUKSs7voV8VB4KpX/sJ9uiHnXn2c5wv0AsANKb6B2vKHX/pLvvmiVKXuoNuwSat7lIX J6hg07Guxfc7CI0evE8iTW3ENO3rbRtnOr1sPXVTLjQW/isbimtcpJOR1WVYmoIoIoF49I klxiE9TCL2MokHSRUfYtT6F0DJ6o7Dc= 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-631-KKWTRyulN36SdW0ImbgudA-1; Thu, 28 Jul 2022 11:28:08 -0400 X-MC-Unique: KKWTRyulN36SdW0ImbgudA-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 1E928811E80; Thu, 28 Jul 2022 15:28:06 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 670D81415118; Thu, 28 Jul 2022 15:27:58 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Gagandeep Singh , Hemant Agrawal , Nicolas Chautru , Ray Kinsella , Lee Daly , Fan Zhang , Ashish Gupta , Sunila Sahu , Ruifeng Wang , Ajit Khaparde , Raveendra Padasalagi , Vikas Gupta , Chandubabu Namburu , Pablo de Lara , Michael Shamis , Liron Himi , Chengwen Feng , Kevin Laatz , Bruce Richardson , Sachin Saxena , Jerin Jacob , Liang Ma , Peter Mccarthy , Harry van Haaren , "John W. Linville" , Ciara Loftus , Qi Zhang , Chas Williams , "Min Hu (Connor)" , Gaetan Rivet , Rosen Xu , Jakub Grajciar , Zyta Szpak , Tetsuya Mukawa , Harman Kalra , Jasvinder Singh , Cristian Dumitrescu , Matan Azrad , Maxime Coquelin , Chenbo Xia , Jakub Palider , Tomasz Duszynski , Tianfei zhang , Thomas Monjalon , Ferruh Yigit , Andrew Rybchenko Subject: [RFC v3 17/26] bus/vdev: make driver-only headers private Date: Thu, 28 Jul 2022 17:26:31 +0200 Message-Id: <20220728152640.547725-18-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 The vdev bus interface is for drivers only. Mark as internal and move the header in the driver headers list. While at it, cleanup the code: - fix indentation, - remove unneeded reference to bus specific singleton object, - remove unneeded list head structure type, - reorder the definitions and macro manipulating the bus singleton object, - remove inclusion of rte_bus.h and fix the code that relied on implicit inclusion, Signed-off-by: David Marchand Acked-by: Rosen Xu --- Changes since RFC v2: - squashed cleanup for this bus code from other patches, - updated release notes, --- app/test/test_vdev.c | 2 +- doc/guides/rel_notes/release_22_11.rst | 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/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 | 8 +- drivers/bus/vdev/vdev_params.c | 1 - drivers/bus/vdev/version.map | 9 +- drivers/compress/isal/isal_compress_pmd.c | 2 +- drivers/compress/zlib/zlib_pmd.c | 2 +- drivers/crypto/armv8/rte_armv8_pmd.c | 2 +- drivers/crypto/bcmfs/bcmfs_device.h | 2 +- drivers/crypto/caam_jr/caam_jr.c | 2 +- drivers/crypto/ccp/rte_ccp_pmd.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/mvsam/rte_mrvl_pmd.c | 2 +- drivers/crypto/null/null_crypto_pmd.c | 2 +- drivers/crypto/openssl/rte_openssl_pmd.c | 2 +- drivers/crypto/scheduler/scheduler_pmd.c | 2 +- drivers/dma/skeleton/skeleton_dmadev.c | 2 +- drivers/event/dpaa2/dpaa2_eventdev.c | 2 +- drivers/event/dpaa2/dpaa2_eventdev_selftest.c | 2 +- drivers/event/octeontx/ssovf_evdev.c | 2 +- drivers/event/octeontx/ssovf_evdev_selftest.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 | 2 +- drivers/event/sw/sw_evdev.c | 2 +- drivers/event/sw/sw_evdev_selftest.c | 2 +- drivers/net/af_packet/rte_eth_af_packet.c | 2 +- drivers/net/af_xdp/rte_eth_af_xdp.c | 2 +- drivers/net/bonding/rte_eth_bond_api.c | 2 +- drivers/net/bonding/rte_eth_bond_pmd.c | 2 +- drivers/net/failsafe/failsafe.c | 3 +- drivers/net/ipn3ke/ipn3ke_ethdev.h | 2 +- drivers/net/kni/rte_eth_kni.c | 2 +- drivers/net/memif/memif_socket.c | 2 +- drivers/net/memif/rte_eth_memif.c | 2 +- drivers/net/mvneta/mvneta_ethdev.c | 2 +- drivers/net/mvpp2/mrvl_ethdev.c | 2 +- drivers/net/null/rte_eth_null.c | 2 +- drivers/net/octeontx/octeontx_ethdev.c | 2 +- drivers/net/pcap/pcap_ethdev.c | 2 +- drivers/net/pfe/pfe_ethdev.c | 2 +- drivers/net/ring/rte_eth_ring.c | 2 +- drivers/net/softnic/rte_eth_softnic.c | 2 +- drivers/net/tap/rte_eth_tap.c | 2 +- drivers/net/vdev_netvsc/vdev_netvsc.c | 2 +- drivers/net/vhost/rte_eth_vhost.c | 2 +- drivers/net/virtio/virtio_user_ethdev.c | 2 +- drivers/raw/cnxk_gpio/cnxk_gpio.c | 2 +- drivers/raw/dpaa2_cmdif/dpaa2_cmdif.c | 2 +- drivers/raw/ifpga/ifpga_rawdev.c | 2 +- drivers/raw/skeleton/skeleton_rawdev.c | 2 +- drivers/raw/skeleton/skeleton_rawdev_test.c | 2 +- lib/ethdev/ethdev_vdev.h | 2 +- lib/eventdev/eventdev_pmd_vdev.h | 2 +- 63 files changed, 221 insertions(+), 200 deletions(-) create mode 100644 drivers/bus/vdev/bus_vdev_driver.h diff --git a/app/test/test_vdev.c b/app/test/test_vdev.c index 5eeff3106d..3cc3abe70b 100644 --- a/app/test/test_vdev.c +++ b/app/test/test_vdev.c @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include "test.h" diff --git a/doc/guides/rel_notes/release_22_11.rst b/doc/guides/rel_notes/release_22_11.rst index 79ec128533..f726a901e6 100644 --- a/doc/guides/rel_notes/release_22_11.rst +++ b/doc/guides/rel_notes/release_22_11.rst @@ -84,8 +84,8 @@ API Changes Also, make sure to start the actual text at the margin. ======================================================= -* drivers: Registering a driver on the ``auxiliary``, ``ifpga``, ``pci`` - buses has been marked as an internal API. +* drivers: Registering a driver on the ``auxiliary``, ``ifpga``, ``pci``, + ``vdev`` buses has been marked as an internal API. External users may still register their driver using the associated driver headers (see ``enable_driver_sdk`` meson option). diff --git a/drivers/baseband/la12xx/bbdev_la12xx.c b/drivers/baseband/la12xx/bbdev_la12xx.c index 4d1bd16751..f0927d9fca 100644 --- a/drivers/baseband/la12xx/bbdev_la12xx.c +++ b/drivers/baseband/la12xx/bbdev_la12xx.c @@ -10,7 +10,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/baseband/null/bbdev_null.c b/drivers/baseband/null/bbdev_null.c index 248e12987f..e76ef2313f 100644 --- a/drivers/baseband/null/bbdev_null.c +++ b/drivers/baseband/null/bbdev_null.c @@ -5,7 +5,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/baseband/turbo_sw/bbdev_turbo_software.c b/drivers/baseband/turbo_sw/bbdev_turbo_software.c index af7bc416f9..e8d0c43e6f 100644 --- a/drivers/baseband/turbo_sw/bbdev_turbo_software.c +++ b/drivers/baseband/turbo_sw/bbdev_turbo_software.c @@ -5,7 +5,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/bus/vdev/bus_vdev_driver.h b/drivers/bus/vdev/bus_vdev_driver.h new file mode 100644 index 0000000000..36748cdfae --- /dev/null +++ b/drivers/bus/vdev/bus_vdev_driver.h @@ -0,0 +1,151 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2016 RehiveTech. All rights reserved. + */ + +#ifndef BUS_VDEV_DRIVER_H +#define BUS_VDEV_DRIVER_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include +#include + +struct rte_vdev_device { + RTE_TAILQ_ENTRY(rte_vdev_device) next; /**< Next attached vdev */ + struct rte_device device; /**< Inherit core device */ +}; + +/** + * @internal + * Helper macro for drivers that need to convert to struct rte_vdev_device. + */ +#define RTE_DEV_TO_VDEV(ptr) \ + container_of(ptr, struct rte_vdev_device, device) + +#define RTE_DEV_TO_VDEV_CONST(ptr) \ + container_of(ptr, const struct rte_vdev_device, device) + +#define RTE_ETH_DEV_TO_VDEV(eth_dev) RTE_DEV_TO_VDEV((eth_dev)->device) + +static inline const char * +rte_vdev_device_name(const struct rte_vdev_device *dev) +{ + if (dev && dev->device.name) + return dev->device.name; + return NULL; +} + +static inline const char * +rte_vdev_device_args(const struct rte_vdev_device *dev) +{ + if (dev && dev->device.devargs) + return dev->device.devargs->args; + return ""; +} + +/** + * Probe function called for each virtual device driver once. + */ +typedef int (rte_vdev_probe_t)(struct rte_vdev_device *dev); + +/** + * Remove function called for each virtual device driver once. + */ +typedef int (rte_vdev_remove_t)(struct rte_vdev_device *dev); + +/** + * Driver-specific DMA mapping. After a successful call the device + * will be able to read/write from/to this segment. + * + * @param dev + * Pointer to the Virtual device. + * @param addr + * Starting virtual address of memory to be mapped. + * @param iova + * Starting IOVA address of memory to be mapped. + * @param len + * Length of memory segment being mapped. + * @return + * - 0 On success. + * - Negative value and rte_errno is set otherwise. + */ +typedef int (rte_vdev_dma_map_t)(struct rte_vdev_device *dev, void *addr, + uint64_t iova, size_t len); + +/** + * Driver-specific DMA un-mapping. After a successful call the device + * will not be able to read/write from/to this segment. + * + * @param dev + * Pointer to the Virtual device. + * @param addr + * Starting virtual address of memory to be unmapped. + * @param iova + * Starting IOVA address of memory to be unmapped. + * @param len + * Length of memory segment being unmapped. + * @return + * - 0 On success. + * - Negative value and rte_errno is set otherwise. + */ +typedef int (rte_vdev_dma_unmap_t)(struct rte_vdev_device *dev, void *addr, + uint64_t iova, size_t len); + +/** + * A virtual device driver abstraction. + */ +struct rte_vdev_driver { + RTE_TAILQ_ENTRY(rte_vdev_driver) next; /**< Next in list. */ + struct rte_driver driver; /**< Inherited general driver. */ + rte_vdev_probe_t *probe; /**< Virtual device probe function. */ + rte_vdev_remove_t *remove; /**< Virtual device remove function. */ + rte_vdev_dma_map_t *dma_map; /**< Virtual device DMA map function. */ + rte_vdev_dma_unmap_t *dma_unmap; /**< Virtual device DMA unmap function. */ + uint32_t drv_flags; /**< Flags RTE_VDEV_DRV_*. */ +}; + +/** Device driver needs IOVA as VA and cannot work with IOVA as PA */ +#define RTE_VDEV_DRV_NEED_IOVA_AS_VA 0x0001 + +/** + * Register a virtual device driver. + * + * @param driver + * A pointer to a rte_vdev_driver structure describing the driver + * to be registered. + */ +__rte_internal +void rte_vdev_register(struct rte_vdev_driver *driver); + +/** + * Unregister a virtual device driver. + * + * @param driver + * A pointer to a rte_vdev_driver structure describing the driver + * to be unregistered. + */ +__rte_internal +void rte_vdev_unregister(struct rte_vdev_driver *driver); + +#define RTE_PMD_REGISTER_VDEV(nm, vdrv)\ +static const char *vdrvinit_ ## nm ## _alias;\ +RTE_INIT(vdrvinitfn_ ##vdrv)\ +{\ + (vdrv).driver.name = RTE_STR(nm);\ + (vdrv).driver.alias = vdrvinit_ ## nm ## _alias;\ + rte_vdev_register(&vdrv);\ +} \ +RTE_PMD_EXPORT_NAME(nm, __COUNTER__) + +#define RTE_PMD_REGISTER_ALIAS(nm, alias)\ +static const char *vdrvinit_ ## nm ## _alias = RTE_STR(alias) + +#ifdef __cplusplus +} +#endif + +#endif /* BUS_VDEV_DRIVER_H */ diff --git a/drivers/bus/vdev/meson.build b/drivers/bus/vdev/meson.build index 8adf674530..1532ed4f35 100644 --- a/drivers/bus/vdev/meson.build +++ b/drivers/bus/vdev/meson.build @@ -6,5 +6,6 @@ sources = files( 'vdev_params.c', ) headers = files('rte_bus_vdev.h') +driver_sdk_headers = files('bus_vdev_driver.h') deps += ['kvargs'] diff --git a/drivers/bus/vdev/rte_bus_vdev.h b/drivers/bus/vdev/rte_bus_vdev.h index 5af6be009f..f48dd24e5e 100644 --- a/drivers/bus/vdev/rte_bus_vdev.h +++ b/drivers/bus/vdev/rte_bus_vdev.h @@ -15,140 +15,6 @@ extern "C" { #endif -#include -#include - -struct rte_vdev_device { - RTE_TAILQ_ENTRY(rte_vdev_device) next; /**< Next attached vdev */ - struct rte_device device; /**< Inherit core device */ -}; - -/** - * @internal - * Helper macro for drivers that need to convert to struct rte_vdev_device. - */ -#define RTE_DEV_TO_VDEV(ptr) \ - container_of(ptr, struct rte_vdev_device, device) - -#define RTE_DEV_TO_VDEV_CONST(ptr) \ - container_of(ptr, const struct rte_vdev_device, device) - -#define RTE_ETH_DEV_TO_VDEV(eth_dev) RTE_DEV_TO_VDEV((eth_dev)->device) - -static inline const char * -rte_vdev_device_name(const struct rte_vdev_device *dev) -{ - if (dev && dev->device.name) - return dev->device.name; - return NULL; -} - -static inline const char * -rte_vdev_device_args(const struct rte_vdev_device *dev) -{ - if (dev && dev->device.devargs) - return dev->device.devargs->args; - return ""; -} - -/** Double linked list of virtual device drivers. */ -RTE_TAILQ_HEAD(vdev_driver_list, rte_vdev_driver); - -/** - * Probe function called for each virtual device driver once. - */ -typedef int (rte_vdev_probe_t)(struct rte_vdev_device *dev); - -/** - * Remove function called for each virtual device driver once. - */ -typedef int (rte_vdev_remove_t)(struct rte_vdev_device *dev); - -/** - * Driver-specific DMA mapping. After a successful call the device - * will be able to read/write from/to this segment. - * - * @param dev - * Pointer to the Virtual device. - * @param addr - * Starting virtual address of memory to be mapped. - * @param iova - * Starting IOVA address of memory to be mapped. - * @param len - * Length of memory segment being mapped. - * @return - * - 0 On success. - * - Negative value and rte_errno is set otherwise. - */ -typedef int (rte_vdev_dma_map_t)(struct rte_vdev_device *dev, void *addr, - uint64_t iova, size_t len); - -/** - * Driver-specific DMA un-mapping. After a successful call the device - * will not be able to read/write from/to this segment. - * - * @param dev - * Pointer to the Virtual device. - * @param addr - * Starting virtual address of memory to be unmapped. - * @param iova - * Starting IOVA address of memory to be unmapped. - * @param len - * Length of memory segment being unmapped. - * @return - * - 0 On success. - * - Negative value and rte_errno is set otherwise. - */ -typedef int (rte_vdev_dma_unmap_t)(struct rte_vdev_device *dev, void *addr, - uint64_t iova, size_t len); - -/** - * A virtual device driver abstraction. - */ -struct rte_vdev_driver { - RTE_TAILQ_ENTRY(rte_vdev_driver) next; /**< Next in list. */ - struct rte_driver driver; /**< Inherited general driver. */ - rte_vdev_probe_t *probe; /**< Virtual device probe function. */ - rte_vdev_remove_t *remove; /**< Virtual device remove function. */ - rte_vdev_dma_map_t *dma_map; /**< Virtual device DMA map function. */ - rte_vdev_dma_unmap_t *dma_unmap; /**< Virtual device DMA unmap function. */ - uint32_t drv_flags; /**< Flags RTE_VDEV_DRV_*. */ -}; - -/** Device driver needs IOVA as VA and cannot work with IOVA as PA */ -#define RTE_VDEV_DRV_NEED_IOVA_AS_VA 0x0001 - -/** - * Register a virtual device driver. - * - * @param driver - * A pointer to a rte_vdev_driver structure describing the driver - * to be registered. - */ -void rte_vdev_register(struct rte_vdev_driver *driver); - -/** - * Unregister a virtual device driver. - * - * @param driver - * A pointer to a rte_vdev_driver structure describing the driver - * to be unregistered. - */ -void rte_vdev_unregister(struct rte_vdev_driver *driver); - -#define RTE_PMD_REGISTER_VDEV(nm, vdrv)\ -static const char *vdrvinit_ ## nm ## _alias;\ -RTE_INIT(vdrvinitfn_ ##vdrv)\ -{\ - (vdrv).driver.name = RTE_STR(nm);\ - (vdrv).driver.alias = vdrvinit_ ## nm ## _alias;\ - rte_vdev_register(&vdrv);\ -} \ -RTE_PMD_EXPORT_NAME(nm, __COUNTER__) - -#define RTE_PMD_REGISTER_ALIAS(nm, alias)\ -static const char *vdrvinit_ ## nm ## _alias = RTE_STR(alias) - typedef void (*rte_vdev_scan_callback)(void *user_arg); /** diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c index a8d8b2327e..7d78cf93bc 100644 --- a/drivers/bus/vdev/vdev.c +++ b/drivers/bus/vdev/vdev.c @@ -21,7 +21,7 @@ #include #include -#include "rte_bus_vdev.h" +#include "bus_vdev_driver.h" #include "vdev_logs.h" #include "vdev_private.h" @@ -30,16 +30,14 @@ /* Forward declare to access virtual bus name */ static struct rte_bus rte_vdev_bus; -/** Double linked list of virtual device drivers. */ -TAILQ_HEAD(vdev_device_list, rte_vdev_device); -static struct vdev_device_list vdev_device_list = +static TAILQ_HEAD(, rte_vdev_device) vdev_device_list = TAILQ_HEAD_INITIALIZER(vdev_device_list); /* The lock needs to be recursive because a vdev can manage another vdev. */ static rte_spinlock_recursive_t vdev_device_list_lock = RTE_SPINLOCK_RECURSIVE_INITIALIZER; -static struct vdev_driver_list vdev_driver_list = +static TAILQ_HEAD(, rte_vdev_driver) vdev_driver_list = TAILQ_HEAD_INITIALIZER(vdev_driver_list); struct vdev_custom_scan { diff --git a/drivers/bus/vdev/vdev_params.c b/drivers/bus/vdev/vdev_params.c index 3969faf16d..2c72614776 100644 --- a/drivers/bus/vdev/vdev_params.c +++ b/drivers/bus/vdev/vdev_params.c @@ -5,7 +5,6 @@ #include #include -#include #include #include diff --git a/drivers/bus/vdev/version.map b/drivers/bus/vdev/version.map index 7cc3098a50..594c48c3db 100644 --- a/drivers/bus/vdev/version.map +++ b/drivers/bus/vdev/version.map @@ -3,10 +3,15 @@ DPDK_23 { rte_vdev_add_custom_scan; rte_vdev_init; - rte_vdev_register; rte_vdev_remove_custom_scan; rte_vdev_uninit; - rte_vdev_unregister; local: *; }; + +INTERNAL { + global: + + rte_vdev_register; + rte_vdev_unregister; +}; diff --git a/drivers/compress/isal/isal_compress_pmd.c b/drivers/compress/isal/isal_compress_pmd.c index b7ba61c434..cb23e929ed 100644 --- a/drivers/compress/isal/isal_compress_pmd.c +++ b/drivers/compress/isal/isal_compress_pmd.c @@ -3,7 +3,7 @@ */ #include -#include +#include #include #include #include diff --git a/drivers/compress/zlib/zlib_pmd.c b/drivers/compress/zlib/zlib_pmd.c index 0220c6d038..98abd41013 100644 --- a/drivers/compress/zlib/zlib_pmd.c +++ b/drivers/compress/zlib/zlib_pmd.c @@ -2,7 +2,7 @@ * Copyright(c) 2018 Cavium Networks */ -#include +#include #include #include "zlib_pmd_private.h" diff --git a/drivers/crypto/armv8/rte_armv8_pmd.c b/drivers/crypto/armv8/rte_armv8_pmd.c index 32127a874c..5c060e71a3 100644 --- a/drivers/crypto/armv8/rte_armv8_pmd.c +++ b/drivers/crypto/armv8/rte_armv8_pmd.c @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/crypto/bcmfs/bcmfs_device.h b/drivers/crypto/bcmfs/bcmfs_device.h index 4901a6cfd9..610454dd5e 100644 --- a/drivers/crypto/bcmfs/bcmfs_device.h +++ b/drivers/crypto/bcmfs/bcmfs_device.h @@ -9,7 +9,7 @@ #include #include -#include +#include #include "bcmfs_logs.h" #include "bcmfs_qp.h" diff --git a/drivers/crypto/caam_jr/caam_jr.c b/drivers/crypto/caam_jr/caam_jr.c index 8e9cfe73d8..8c0b4909cf 100644 --- a/drivers/crypto/caam_jr/caam_jr.c +++ b/drivers/crypto/caam_jr/caam_jr.c @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/ccp/rte_ccp_pmd.c b/drivers/crypto/ccp/rte_ccp_pmd.c index 4957f11e97..6c3e45e333 100644 --- a/drivers/crypto/ccp/rte_ccp_pmd.c +++ b/drivers/crypto/ccp/rte_ccp_pmd.c @@ -4,7 +4,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/ipsec_mb/ipsec_mb_private.c b/drivers/crypto/ipsec_mb/ipsec_mb_private.c index aab42c360c..2e7347fa79 100644 --- a/drivers/crypto/ipsec_mb/ipsec_mb_private.c +++ b/drivers/crypto/ipsec_mb/ipsec_mb_private.c @@ -2,7 +2,7 @@ * Copyright(c) 2021 Intel Corporation */ -#include +#include #include #include diff --git a/drivers/crypto/ipsec_mb/ipsec_mb_private.h b/drivers/crypto/ipsec_mb/ipsec_mb_private.h index e2c240dfc0..d0d4258ee1 100644 --- a/drivers/crypto/ipsec_mb/ipsec_mb_private.h +++ b/drivers/crypto/ipsec_mb/ipsec_mb_private.h @@ -7,7 +7,7 @@ #include #include -#include +#include #if defined(RTE_LIB_SECURITY) #define IPSEC_MB_DOCSIS_SEC_ENABLED 1 diff --git a/drivers/crypto/ipsec_mb/pmd_kasumi.c b/drivers/crypto/ipsec_mb/pmd_kasumi.c index c9d4f9d0ae..fba10b8cf4 100644 --- a/drivers/crypto/ipsec_mb/pmd_kasumi.c +++ b/drivers/crypto/ipsec_mb/pmd_kasumi.c @@ -2,7 +2,7 @@ * Copyright(c) 2016-2021 Intel Corporation */ -#include +#include #include #include #include diff --git a/drivers/crypto/mvsam/rte_mrvl_pmd.c b/drivers/crypto/mvsam/rte_mrvl_pmd.c index 04efd9aaa8..c35876c8b4 100644 --- a/drivers/crypto/mvsam/rte_mrvl_pmd.c +++ b/drivers/crypto/mvsam/rte_mrvl_pmd.c @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/null/null_crypto_pmd.c b/drivers/crypto/null/null_crypto_pmd.c index 9ecb434fd0..eab74ad45f 100644 --- a/drivers/crypto/null/null_crypto_pmd.c +++ b/drivers/crypto/null/null_crypto_pmd.c @@ -4,7 +4,7 @@ #include #include -#include +#include #include #include "null_crypto_pmd_private.h" diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c index e01dacc98d..ed6d215f1b 100644 --- a/drivers/crypto/openssl/rte_openssl_pmd.c +++ b/drivers/crypto/openssl/rte_openssl_pmd.c @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/crypto/scheduler/scheduler_pmd.c b/drivers/crypto/scheduler/scheduler_pmd.c index dd198080bf..a15c02b4d8 100644 --- a/drivers/crypto/scheduler/scheduler_pmd.c +++ b/drivers/crypto/scheduler/scheduler_pmd.c @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/dma/skeleton/skeleton_dmadev.c b/drivers/dma/skeleton/skeleton_dmadev.c index 82b4661323..09068a9521 100644 --- a/drivers/dma/skeleton/skeleton_dmadev.c +++ b/drivers/dma/skeleton/skeleton_dmadev.c @@ -4,7 +4,7 @@ #include -#include +#include #include #include #include diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c index 5de3e9e5f5..08df6e223a 100644 --- a/drivers/event/dpaa2/dpaa2_eventdev.c +++ b/drivers/event/dpaa2/dpaa2_eventdev.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/event/dpaa2/dpaa2_eventdev_selftest.c b/drivers/event/dpaa2/dpaa2_eventdev_selftest.c index 941fb8fc43..427aff4b11 100644 --- a/drivers/event/dpaa2/dpaa2_eventdev_selftest.c +++ b/drivers/event/dpaa2/dpaa2_eventdev_selftest.c @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/event/octeontx/ssovf_evdev.c b/drivers/event/octeontx/ssovf_evdev.c index 9e14e35d10..fe157c59d5 100644 --- a/drivers/event/octeontx/ssovf_evdev.c +++ b/drivers/event/octeontx/ssovf_evdev.c @@ -16,7 +16,7 @@ #include #include #include -#include +#include #include "ssovf_evdev.h" #include "timvf_evdev.h" diff --git a/drivers/event/octeontx/ssovf_evdev_selftest.c b/drivers/event/octeontx/ssovf_evdev_selftest.c index b55523632a..3dbf31efa9 100644 --- a/drivers/event/octeontx/ssovf_evdev_selftest.c +++ b/drivers/event/octeontx/ssovf_evdev_selftest.c @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include "ssovf_evdev.h" diff --git a/drivers/event/opdl/opdl_evdev.c b/drivers/event/opdl/opdl_evdev.c index 8b6890b220..368e5a9657 100644 --- a/drivers/event/opdl/opdl_evdev.c +++ b/drivers/event/opdl/opdl_evdev.c @@ -5,7 +5,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/event/opdl/opdl_evdev_init.c b/drivers/event/opdl/opdl_evdev_init.c index 15aae47524..be3437fc2f 100644 --- a/drivers/event/opdl/opdl_evdev_init.c +++ b/drivers/event/opdl/opdl_evdev_init.c @@ -5,7 +5,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/event/opdl/opdl_test.c b/drivers/event/opdl/opdl_test.c index 24b92df476..50c12a18b0 100644 --- a/drivers/event/opdl/opdl_test.c +++ b/drivers/event/opdl/opdl_test.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include "opdl_evdev.h" diff --git a/drivers/event/skeleton/skeleton_eventdev.c b/drivers/event/skeleton/skeleton_eventdev.c index bf3b01ebc8..6bd8fec6d4 100644 --- a/drivers/event/skeleton/skeleton_eventdev.c +++ b/drivers/event/skeleton/skeleton_eventdev.c @@ -18,7 +18,7 @@ #include #include #include -#include +#include #include "skeleton_eventdev.h" diff --git a/drivers/event/sw/sw_evdev.c b/drivers/event/sw/sw_evdev.c index f93313b31b..22cba1e74b 100644 --- a/drivers/event/sw/sw_evdev.c +++ b/drivers/event/sw/sw_evdev.c @@ -5,7 +5,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/event/sw/sw_evdev_selftest.c b/drivers/event/sw/sw_evdev_selftest.c index cb97a4d615..59bcdf5734 100644 --- a/drivers/event/sw/sw_evdev_selftest.c +++ b/drivers/event/sw/sw_evdev_selftest.c @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include "sw_evdev.h" diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c index 1396f32c3d..e2771e6765 100644 --- a/drivers/net/af_packet/rte_eth_af_packet.c +++ b/drivers/net/af_packet/rte_eth_af_packet.c @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c b/drivers/net/af_xdp/rte_eth_af_xdp.c index fce649c2a1..fd7be47311 100644 --- a/drivers/net/af_xdp/rte_eth_af_xdp.c +++ b/drivers/net/af_xdp/rte_eth_af_xdp.c @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/bonding/rte_eth_bond_api.c b/drivers/net/bonding/rte_eth_bond_api.c index 4ac191c468..b44dd219cb 100644 --- a/drivers/net/bonding/rte_eth_bond_api.c +++ b/drivers/net/bonding/rte_eth_bond_api.c @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include "rte_eth_bond.h" diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index 73e6972035..cd80a0af46 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/failsafe/failsafe.c b/drivers/net/failsafe/failsafe.c index 05cf533896..5d4d52c341 100644 --- a/drivers/net/failsafe/failsafe.c +++ b/drivers/net/failsafe/failsafe.c @@ -11,7 +11,8 @@ #include #include #include -#include +#include +#include #include "failsafe_private.h" diff --git a/drivers/net/ipn3ke/ipn3ke_ethdev.h b/drivers/net/ipn3ke/ipn3ke_ethdev.h index dbf57f9ba8..4b93d2649e 100644 --- a/drivers/net/ipn3ke/ipn3ke_ethdev.h +++ b/drivers/net/ipn3ke/ipn3ke_ethdev.h @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/net/kni/rte_eth_kni.c b/drivers/net/kni/rte_eth_kni.c index 0532de5315..c0e1f8db40 100644 --- a/drivers/net/kni/rte_eth_kni.c +++ b/drivers/net/kni/rte_eth_kni.c @@ -12,7 +12,7 @@ #include #include #include -#include +#include /* Only single queue supported */ #define KNI_MAX_QUEUE_PER_PORT 1 diff --git a/drivers/net/memif/memif_socket.c b/drivers/net/memif/memif_socket.c index 7886644412..4700ce2e77 100644 --- a/drivers/net/memif/memif_socket.c +++ b/drivers/net/memif/memif_socket.c @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/memif/rte_eth_memif.c b/drivers/net/memif/rte_eth_memif.c index dd951b8296..a574bce49e 100644 --- a/drivers/net/memif/rte_eth_memif.c +++ b/drivers/net/memif/rte_eth_memif.c @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/mvneta/mvneta_ethdev.c b/drivers/net/mvneta/mvneta_ethdev.c index eef016aa0b..6a0dd6091d 100644 --- a/drivers/net/mvneta/mvneta_ethdev.c +++ b/drivers/net/mvneta/mvneta_ethdev.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/net/mvpp2/mrvl_ethdev.c b/drivers/net/mvpp2/mrvl_ethdev.c index 735efb6cfc..310e3e5acf 100644 --- a/drivers/net/mvpp2/mrvl_ethdev.c +++ b/drivers/net/mvpp2/mrvl_ethdev.c @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/net/null/rte_eth_null.c b/drivers/net/null/rte_eth_null.c index bb89c1abc4..a517376d40 100644 --- a/drivers/net/null/rte_eth_null.c +++ b/drivers/net/null/rte_eth_null.c @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c index 3aca53fb98..9ada22e2ff 100644 --- a/drivers/net/octeontx/octeontx_ethdev.c +++ b/drivers/net/octeontx/octeontx_ethdev.c @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/pcap/pcap_ethdev.c b/drivers/net/pcap/pcap_ethdev.c index ec29fd6bc5..7fb4abb20b 100644 --- a/drivers/net/pcap/pcap_ethdev.c +++ b/drivers/net/pcap/pcap_ethdev.c @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include "pcap_osdep.h" diff --git a/drivers/net/pfe/pfe_ethdev.c b/drivers/net/pfe/pfe_ethdev.c index c2991ab1cc..0352a57950 100644 --- a/drivers/net/pfe/pfe_ethdev.c +++ b/drivers/net/pfe/pfe_ethdev.c @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c index cfb81da5fe..37e7ccfda0 100644 --- a/drivers/net/ring/rte_eth_ring.c +++ b/drivers/net/ring/rte_eth_ring.c @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/net/softnic/rte_eth_softnic.c b/drivers/net/softnic/rte_eth_softnic.c index 8c098cad5b..fa89940735 100644 --- a/drivers/net/softnic/rte_eth_softnic.c +++ b/drivers/net/softnic/rte_eth_softnic.c @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c index 9e1032fe72..d047489e94 100644 --- a/drivers/net/tap/rte_eth_tap.c +++ b/drivers/net/tap/rte_eth_tap.c @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/vdev_netvsc/vdev_netvsc.c b/drivers/net/vdev_netvsc/vdev_netvsc.c index 2587195168..65043a04eb 100644 --- a/drivers/net/vdev_netvsc/vdev_netvsc.c +++ b/drivers/net/vdev_netvsc/vdev_netvsc.c @@ -25,7 +25,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c index 7e512d94bf..6c81967c6f 100644 --- a/drivers/net/vhost/rte_eth_vhost.c +++ b/drivers/net/vhost/rte_eth_vhost.c @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/virtio/virtio_user_ethdev.c b/drivers/net/virtio/virtio_user_ethdev.c index a7d7063c2a..3edfd7439e 100644 --- a/drivers/net/virtio/virtio_user_ethdev.c +++ b/drivers/net/virtio/virtio_user_ethdev.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/raw/cnxk_gpio/cnxk_gpio.c b/drivers/raw/cnxk_gpio/cnxk_gpio.c index d759ed82d4..e2907c18b5 100644 --- a/drivers/raw/cnxk_gpio/cnxk_gpio.c +++ b/drivers/raw/cnxk_gpio/cnxk_gpio.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/raw/dpaa2_cmdif/dpaa2_cmdif.c b/drivers/raw/dpaa2_cmdif/dpaa2_cmdif.c index c7bddbc6cc..aeee4ac289 100644 --- a/drivers/raw/dpaa2_cmdif/dpaa2_cmdif.c +++ b/drivers/raw/dpaa2_cmdif/dpaa2_cmdif.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/raw/ifpga/ifpga_rawdev.c b/drivers/raw/ifpga/ifpga_rawdev.c index d6106dd5da..07e2252a07 100644 --- a/drivers/raw/ifpga/ifpga_rawdev.c +++ b/drivers/raw/ifpga/ifpga_rawdev.c @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/raw/skeleton/skeleton_rawdev.c b/drivers/raw/skeleton/skeleton_rawdev.c index 16ecae3d92..19b523a815 100644 --- a/drivers/raw/skeleton/skeleton_rawdev.c +++ b/drivers/raw/skeleton/skeleton_rawdev.c @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/raw/skeleton/skeleton_rawdev_test.c b/drivers/raw/skeleton/skeleton_rawdev_test.c index 693b24c415..fc257c5f44 100644 --- a/drivers/raw/skeleton/skeleton_rawdev_test.c +++ b/drivers/raw/skeleton/skeleton_rawdev_test.c @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include /* Using relative path as skeleton_rawdev is not part of exported headers */ diff --git a/lib/ethdev/ethdev_vdev.h b/lib/ethdev/ethdev_vdev.h index f5f536ce64..364f140f91 100644 --- a/lib/ethdev/ethdev_vdev.h +++ b/lib/ethdev/ethdev_vdev.h @@ -12,7 +12,7 @@ extern "C" { #include #include -#include +#include #include /** diff --git a/lib/eventdev/eventdev_pmd_vdev.h b/lib/eventdev/eventdev_pmd_vdev.h index 77904910a2..cf2333cf41 100644 --- a/lib/eventdev/eventdev_pmd_vdev.h +++ b/lib/eventdev/eventdev_pmd_vdev.h @@ -22,7 +22,7 @@ extern "C" { #include #include #include -#include +#include #include "eventdev_pmd.h" From patchwork Thu Jul 28 15:26:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114389 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8C63CA00C5; Thu, 28 Jul 2022 17:28:47 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7C39242BDE; Thu, 28 Jul 2022 17:28:16 +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 1396E40151 for ; Thu, 28 Jul 2022 17:28:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022092; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=A2rRZD3vW3lZqbMZyrmY88899Zg1jjfwQuh44IWSHi8=; b=IEcZq4UEj/S2QuxZu8g40Cv0rE0DKc/FpFEPd484JA4V4xaqhhyGUJAQYGHIPjJFf1RNWX jPWxiJ/AZ/LwZMiagaWLceYavedS0CuMv7dSg5SXQOitHHYVClvx4EcODvAdSTN54WqnbF vAbVyq+mvScXwTwBCRY/RSLAZIoqpdc= 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-624-byWfaWG3NguLaI22F0pBmg-1; Thu, 28 Jul 2022 11:28:09 -0400 X-MC-Unique: byWfaWG3NguLaI22F0pBmg-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 459BD185A7BA; Thu, 28 Jul 2022 15:28:09 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 570571415118; Thu, 28 Jul 2022 15:28:08 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Stephen Hemminger , Long Li , Ray Kinsella Subject: [RFC v3 18/26] bus/vmbus: make driver-only headers private Date: Thu, 28 Jul 2022 17:26:32 +0200 Message-Id: <20220728152640.547725-19-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 The vmbus bus interface is for drivers only. Mark as internal and move the header in the driver headers list. While at it, cleanup the code: - fix indentation, - remove unneeded reference to bus specific singleton object, - remove unneeded list head structure type, - reorder the definitions and macro manipulating the bus singleton object, - remove inclusion of rte_bus.h and fix the code that relied on implicit inclusion, Signed-off-by: David Marchand --- Changes since RFC v2: - squashed cleanup for this bus code from other patches, - updated release notes, --- doc/guides/rel_notes/release_22_11.rst | 2 +- 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/net/netvsc/hn_ethdev.c | 3 +- drivers/net/netvsc/hn_nvs.c | 2 +- drivers/net/netvsc/hn_rndis.c | 2 +- drivers/net/netvsc/hn_rxtx.c | 2 +- drivers/net/netvsc/hn_vf.c | 2 +- 16 files changed, 140 insertions(+), 120 deletions(-) create mode 100644 drivers/bus/vmbus/bus_vmbus_driver.h diff --git a/doc/guides/rel_notes/release_22_11.rst b/doc/guides/rel_notes/release_22_11.rst index f726a901e6..c55ee19bc2 100644 --- a/doc/guides/rel_notes/release_22_11.rst +++ b/doc/guides/rel_notes/release_22_11.rst @@ -85,7 +85,7 @@ API Changes ======================================================= * drivers: Registering a driver on the ``auxiliary``, ``ifpga``, ``pci``, - ``vdev`` buses has been marked as an internal API. + ``vdev``, ``vmbus`` buses has been marked as an internal API. External users may still register their driver using the associated driver headers (see ``enable_driver_sdk`` meson option). diff --git a/drivers/bus/vmbus/bus_vmbus_driver.h b/drivers/bus/vmbus/bus_vmbus_driver.h new file mode 100644 index 0000000000..3424e791c9 --- /dev/null +++ b/drivers/bus/vmbus/bus_vmbus_driver.h @@ -0,0 +1,106 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright (c) 2018, Microsoft Corporation. + * All Rights Reserved. + */ + +#ifndef BUS_VMBUS_DRIVER_H +#define BUS_VMBUS_DRIVER_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +struct vmbus_channel; +struct vmbus_mon_page; + +/** Maximum number of VMBUS resources. */ +enum hv_uio_map { + HV_TXRX_RING_MAP = 0, + HV_INT_PAGE_MAP, + HV_MON_PAGE_MAP, + HV_RECV_BUF_MAP, + HV_SEND_BUF_MAP +}; +#define VMBUS_MAX_RESOURCE 5 + +/** + * A structure describing a VMBUS device. + */ +struct rte_vmbus_device { + RTE_TAILQ_ENTRY(rte_vmbus_device) next; /**< Next probed VMBUS device */ + const struct rte_vmbus_driver *driver; /**< Associated driver */ + struct rte_device device; /**< Inherit core device */ + rte_uuid_t device_id; /**< VMBUS device id */ + rte_uuid_t class_id; /**< VMBUS device type */ + uint32_t relid; /**< id for primary */ + uint8_t monitor_id; /**< monitor page */ + int uio_num; /**< UIO device number */ + uint32_t *int_page; /**< VMBUS interrupt page */ + struct vmbus_channel *primary; /**< VMBUS primary channel */ + struct vmbus_mon_page *monitor_page; /**< VMBUS monitor page */ + + struct rte_intr_handle *intr_handle; /**< Interrupt handle */ + struct rte_mem_resource resource[VMBUS_MAX_RESOURCE]; +}; + +/** + * Initialization function for the driver called during VMBUS probing. + */ +typedef int (vmbus_probe_t)(struct rte_vmbus_driver *, + struct rte_vmbus_device *); + +/** + * Initialization function for the driver called during hot plugging. + */ +typedef int (vmbus_remove_t)(struct rte_vmbus_device *); + +/** + * A structure describing a VMBUS driver. + */ +struct rte_vmbus_driver { + RTE_TAILQ_ENTRY(rte_vmbus_driver) next; /**< Next in list. */ + struct rte_driver driver; + vmbus_probe_t *probe; /**< Device Probe function. */ + vmbus_remove_t *remove; /**< Device Remove function. */ + + const rte_uuid_t *id_table; /**< ID table. */ +}; + +/** + * Register a VMBUS driver. + * + * @param driver + * A pointer to a rte_vmbus_driver structure describing the driver + * to be registered. + */ +__rte_internal +void rte_vmbus_register(struct rte_vmbus_driver *driver); + +/** + * Unregister a VMBUS driver. + * + * @param driver + * A pointer to a rte_vmbus_driver structure describing the driver + * to be unregistered. + */ +__rte_internal +void rte_vmbus_unregister(struct rte_vmbus_driver *driver); + +/** Helper for VMBUS device registration from driver instance */ +#define RTE_PMD_REGISTER_VMBUS(nm, vmbus_drv) \ + RTE_INIT(vmbusinitfn_ ##nm) \ + { \ + (vmbus_drv).driver.name = RTE_STR(nm); \ + rte_vmbus_register(&vmbus_drv); \ + } \ + RTE_PMD_EXPORT_NAME(nm, __COUNTER__) + +#ifdef __cplusplus +} +#endif + +#endif /* BUS_VMBUS_DRIVER_H */ diff --git a/drivers/bus/vmbus/linux/vmbus_uio.c b/drivers/bus/vmbus/linux/vmbus_uio.c index 5db70f8e0d..26edef342d 100644 --- a/drivers/bus/vmbus/linux/vmbus_uio.c +++ b/drivers/bus/vmbus/linux/vmbus_uio.c @@ -13,7 +13,6 @@ #include #include -#include #include #include #include diff --git a/drivers/bus/vmbus/meson.build b/drivers/bus/vmbus/meson.build index 3892cbf67f..34988d1d84 100644 --- a/drivers/bus/vmbus/meson.build +++ b/drivers/bus/vmbus/meson.build @@ -8,6 +8,7 @@ endif headers = files('rte_bus_vmbus.h','rte_vmbus_reg.h') +driver_sdk_headers = files('bus_vmbus_driver.h') sources = files( 'vmbus_bufring.c', diff --git a/drivers/bus/vmbus/private.h b/drivers/bus/vmbus/private.h index 658303bc27..3d233fa83c 100644 --- a/drivers/bus/vmbus/private.h +++ b/drivers/bus/vmbus/private.h @@ -8,13 +8,31 @@ #include #include + +#include +#include #include #include #include -#include + +/** + * Structure describing the VM bus + */ +struct rte_vmbus_bus { + struct rte_bus bus; /**< Inherit the generic class */ + RTE_TAILQ_HEAD(, rte_vmbus_device) device_list; /**< List of devices */ + RTE_TAILQ_HEAD(, rte_vmbus_driver) driver_list; /**< List of drivers */ +}; extern struct rte_vmbus_bus rte_vmbus_bus; +/* VMBus iterators */ +#define FOREACH_DEVICE_ON_VMBUS(p) \ + RTE_TAILQ_FOREACH(p, &(rte_vmbus_bus.device_list), next) + +#define FOREACH_DRIVER_ON_VMBUS(p) \ + RTE_TAILQ_FOREACH(p, &(rte_vmbus_bus.driver_list), next) + extern int vmbus_logtype_bus; #define VMBUS_LOG(level, fmt, args...) \ rte_log(RTE_LOG_ ## level, vmbus_logtype_bus, "%s(): " fmt "\n", \ diff --git a/drivers/bus/vmbus/rte_bus_vmbus.h b/drivers/bus/vmbus/rte_bus_vmbus.h index a24bad831d..03894a5d46 100644 --- a/drivers/bus/vmbus/rte_bus_vmbus.h +++ b/drivers/bus/vmbus/rte_bus_vmbus.h @@ -27,89 +27,12 @@ extern "C" { #include #include #include -#include #include /* Forward declarations */ struct rte_vmbus_device; struct rte_vmbus_driver; -struct rte_vmbus_bus; struct vmbus_channel; -struct vmbus_mon_page; - -RTE_TAILQ_HEAD(rte_vmbus_device_list, rte_vmbus_device); -RTE_TAILQ_HEAD(rte_vmbus_driver_list, rte_vmbus_driver); - -/* VMBus iterators */ -#define FOREACH_DEVICE_ON_VMBUS(p) \ - RTE_TAILQ_FOREACH(p, &(rte_vmbus_bus.device_list), next) - -#define FOREACH_DRIVER_ON_VMBUS(p) \ - RTE_TAILQ_FOREACH(p, &(rte_vmbus_bus.driver_list), next) - -/** Maximum number of VMBUS resources. */ -enum hv_uio_map { - HV_TXRX_RING_MAP = 0, - HV_INT_PAGE_MAP, - HV_MON_PAGE_MAP, - HV_RECV_BUF_MAP, - HV_SEND_BUF_MAP -}; -#define VMBUS_MAX_RESOURCE 5 - -/** - * A structure describing a VMBUS device. - */ -struct rte_vmbus_device { - RTE_TAILQ_ENTRY(rte_vmbus_device) next; /**< Next probed VMBUS device */ - const struct rte_vmbus_driver *driver; /**< Associated driver */ - struct rte_device device; /**< Inherit core device */ - rte_uuid_t device_id; /**< VMBUS device id */ - rte_uuid_t class_id; /**< VMBUS device type */ - uint32_t relid; /**< id for primary */ - uint8_t monitor_id; /**< monitor page */ - int uio_num; /**< UIO device number */ - uint32_t *int_page; /**< VMBUS interrupt page */ - struct vmbus_channel *primary; /**< VMBUS primary channel */ - struct vmbus_mon_page *monitor_page; /**< VMBUS monitor page */ - - struct rte_intr_handle *intr_handle; /**< Interrupt handle */ - struct rte_mem_resource resource[VMBUS_MAX_RESOURCE]; -}; - -/** - * Initialization function for the driver called during VMBUS probing. - */ -typedef int (vmbus_probe_t)(struct rte_vmbus_driver *, - struct rte_vmbus_device *); - -/** - * Initialization function for the driver called during hot plugging. - */ -typedef int (vmbus_remove_t)(struct rte_vmbus_device *); - -/** - * A structure describing a VMBUS driver. - */ -struct rte_vmbus_driver { - RTE_TAILQ_ENTRY(rte_vmbus_driver) next; /**< Next in list. */ - struct rte_driver driver; - struct rte_vmbus_bus *bus; /**< VM bus reference. */ - vmbus_probe_t *probe; /**< Device Probe function. */ - vmbus_remove_t *remove; /**< Device Remove function. */ - - const rte_uuid_t *id_table; /**< ID table. */ -}; - - -/** - * Structure describing the VM bus - */ -struct rte_vmbus_bus { - struct rte_bus bus; /**< Inherit the generic class */ - struct rte_vmbus_device_list device_list; /**< List of devices */ - struct rte_vmbus_driver_list driver_list; /**< List of drivers */ -}; /** * Scan the content of the VMBUS bus, and the devices in the devices @@ -378,15 +301,6 @@ void rte_vmbus_set_latency(const struct rte_vmbus_device *dev, const struct vmbus_channel *chan, uint32_t latency); -/** - * Register a VMBUS driver. - * - * @param driver - * A pointer to a rte_vmbus_driver structure describing the driver - * to be registered. - */ -void rte_vmbus_register(struct rte_vmbus_driver *driver); - /** * For debug dump contents of ring buffer. * @@ -395,24 +309,6 @@ void rte_vmbus_register(struct rte_vmbus_driver *driver); */ void rte_vmbus_chan_dump(FILE *f, const struct vmbus_channel *chan); -/** - * Unregister a VMBUS driver. - * - * @param driver - * A pointer to a rte_vmbus_driver structure describing the driver - * to be unregistered. - */ -void rte_vmbus_unregister(struct rte_vmbus_driver *driver); - -/** Helper for VMBUS device registration from driver instance */ -#define RTE_PMD_REGISTER_VMBUS(nm, vmbus_drv) \ - RTE_INIT(vmbusinitfn_ ##nm) \ - { \ - (vmbus_drv).driver.name = RTE_STR(nm); \ - rte_vmbus_register(&vmbus_drv); \ - } \ - RTE_PMD_EXPORT_NAME(nm, __COUNTER__) - #ifdef __cplusplus } #endif diff --git a/drivers/bus/vmbus/version.map b/drivers/bus/vmbus/version.map index 84db31b6e9..430781b29b 100644 --- a/drivers/bus/vmbus/version.map +++ b/drivers/bus/vmbus/version.map @@ -16,13 +16,18 @@ DPDK_23 { rte_vmbus_map_device; rte_vmbus_max_channels; rte_vmbus_probe; - rte_vmbus_register; rte_vmbus_scan; rte_vmbus_set_latency; rte_vmbus_sub_channel_index; rte_vmbus_subchan_open; rte_vmbus_unmap_device; - rte_vmbus_unregister; local: *; }; + +INTERNAL { + global: + + rte_vmbus_register; + rte_vmbus_unregister; +}; diff --git a/drivers/bus/vmbus/vmbus_bufring.c b/drivers/bus/vmbus/vmbus_bufring.c index c4aa07b307..c78619dc44 100644 --- a/drivers/bus/vmbus/vmbus_bufring.c +++ b/drivers/bus/vmbus/vmbus_bufring.c @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include diff --git a/drivers/bus/vmbus/vmbus_channel.c b/drivers/bus/vmbus/vmbus_channel.c index 9bd01679c3..5549fd0944 100644 --- a/drivers/bus/vmbus/vmbus_channel.c +++ b/drivers/bus/vmbus/vmbus_channel.c @@ -12,7 +12,6 @@ #include #include #include -#include #include #include #include diff --git a/drivers/bus/vmbus/vmbus_common.c b/drivers/bus/vmbus/vmbus_common.c index 367727367e..03b39c82b7 100644 --- a/drivers/bus/vmbus/vmbus_common.c +++ b/drivers/bus/vmbus/vmbus_common.c @@ -11,7 +11,6 @@ #include #include -#include #include #include #include @@ -235,7 +234,6 @@ rte_vmbus_register(struct rte_vmbus_driver *driver) "Registered driver %s", driver->driver.name); TAILQ_INSERT_TAIL(&rte_vmbus_bus.driver_list, driver, next); - driver->bus = &rte_vmbus_bus; } /* unregister vmbus driver */ @@ -243,7 +241,6 @@ void rte_vmbus_unregister(struct rte_vmbus_driver *driver) { TAILQ_REMOVE(&rte_vmbus_bus.driver_list, driver, next); - driver->bus = NULL; } /* Add a device to VMBUS bus */ diff --git a/drivers/bus/vmbus/vmbus_common_uio.c b/drivers/bus/vmbus/vmbus_common_uio.c index 882a24f869..4d4613513c 100644 --- a/drivers/bus/vmbus/vmbus_common_uio.c +++ b/drivers/bus/vmbus/vmbus_common_uio.c @@ -13,7 +13,6 @@ #include #include #include -#include #include #include "private.h" diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c index 787139c0b2..188d92ffac 100644 --- a/drivers/net/netvsc/hn_ethdev.c +++ b/drivers/net/netvsc/hn_ethdev.c @@ -31,7 +31,8 @@ #include #include #include -#include +#include +#include #include #include "hn_logs.h" diff --git a/drivers/net/netvsc/hn_nvs.c b/drivers/net/netvsc/hn_nvs.c index b90280c9ff..817fb06dfb 100644 --- a/drivers/net/netvsc/hn_nvs.c +++ b/drivers/net/netvsc/hn_nvs.c @@ -29,7 +29,7 @@ #include #include #include -#include +#include #include "hn_logs.h" #include "hn_var.h" diff --git a/drivers/net/netvsc/hn_rndis.c b/drivers/net/netvsc/hn_rndis.c index 1b63b27e0c..20f75a17b0 100644 --- a/drivers/net/netvsc/hn_rndis.c +++ b/drivers/net/netvsc/hn_rndis.c @@ -27,7 +27,7 @@ #include #include #include -#include +#include #include "hn_logs.h" #include "hn_var.h" diff --git a/drivers/net/netvsc/hn_rxtx.c b/drivers/net/netvsc/hn_rxtx.c index 909c07a4ab..61cf374224 100644 --- a/drivers/net/netvsc/hn_rxtx.c +++ b/drivers/net/netvsc/hn_rxtx.c @@ -27,7 +27,7 @@ #include #include #include -#include +#include #include #include "hn_logs.h" diff --git a/drivers/net/netvsc/hn_vf.c b/drivers/net/netvsc/hn_vf.c index cce0a79edb..40981706d5 100644 --- a/drivers/net/netvsc/hn_vf.c +++ b/drivers/net/netvsc/hn_vf.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include #include From patchwork Thu Jul 28 15:26:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114390 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 15601A00C5; Thu, 28 Jul 2022 17:28:53 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7906842BE8; Thu, 28 Jul 2022 17:28:20 +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 74D4F42BE8 for ; Thu, 28 Jul 2022 17:28:18 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022098; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=AcCS9ibySgB3CqkaVg2ayeUsnN9978kBRkFz32OlQNg=; b=Kk7ofbW2ONL6tbECHHNQ1ZeZWJWDrYF6caRr40UcPQU0UBgyZptsarDwrgzxb3hvegqjgG yPdLb3oXfPq3UIUxhoGZryrryWAFM7p8omA71rFyDHzqKU7lRCACYuI85YApoo427vtuYp I/1F/vvv52c9mub0jlsLtD2wSF4k7Dw= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-576-jZp0NN72M82MZgb743kE7g-1; Thu, 28 Jul 2022 11:28:15 -0400 X-MC-Unique: jZp0NN72M82MZgb743kE7g-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 CF97B3C10148; Thu, 28 Jul 2022 15:28:14 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id AB04A1415118; Thu, 28 Jul 2022 15:28:11 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Aman Singh , Yuying Zhang , Sunila Sahu , Fan Zhang , Ashish Gupta , Gaetan Rivet , Anatoly Burakov , Akhil Goyal , Dmitry Kozlyuk , Narcisa Ana Maria Vasile , Dmitry Malloy , Pallavi Kadam , Thomas Monjalon , Ferruh Yigit , Andrew Rybchenko , Reshma Pattan , Stephen Hemminger Subject: [RFC v3 19/26] bus: move IOVA definition from header Date: Thu, 28 Jul 2022 17:26:33 +0200 Message-Id: <20220728152640.547725-20-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 iova enum definition does not need to be defined as part of the bus API. Move it to rte_eal.h. With this step, rte_eal.h does not depend on rte_bus.h and rte_dev.h. Fix existing code that was relying on these implicit inclusions. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- app/test-compress-perf/comp_perf_options.h | 2 ++ app/test-pmd/config.c | 1 + app/test-pmd/testpmd.c | 1 + drivers/compress/zlib/zlib_pmd_ops.c | 1 + drivers/net/failsafe/failsafe_eal.c | 1 + examples/multi_process/hotplug_mp/commands.c | 2 ++ lib/compressdev/rte_compressdev.c | 1 + lib/compressdev/rte_compressdev_pmd.c | 1 + lib/cryptodev/cryptodev_pmd.c | 2 ++ lib/eal/common/eal_thread.h | 1 + lib/eal/common/hotplug_mp.c | 1 + lib/eal/include/rte_bus.h | 18 ++---------------- lib/eal/include/rte_eal.h | 15 ++++++++++++++- lib/eal/include/rte_lcore.h | 2 ++ lib/eal/windows/eal.c | 1 + lib/ethdev/rte_ethdev.c | 1 + lib/pcapng/rte_pcapng.c | 1 + 17 files changed, 35 insertions(+), 17 deletions(-) diff --git a/app/test-compress-perf/comp_perf_options.h b/app/test-compress-perf/comp_perf_options.h index 0b777521c5..57dd146330 100644 --- a/app/test-compress-perf/comp_perf_options.h +++ b/app/test-compress-perf/comp_perf_options.h @@ -5,6 +5,8 @@ #ifndef _COMP_PERF_OPS_ #define _COMP_PERF_OPS_ +#include + #define MAX_LIST 32 #define MIN_COMPRESSED_BUF_SIZE 8 #define EXPANSE_RATIO 1.1 diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index bc73819183..d988429f24 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index ee686393c5..510e0be624 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/compress/zlib/zlib_pmd_ops.c b/drivers/compress/zlib/zlib_pmd_ops.c index 0a73aed949..7d657d81bc 100644 --- a/drivers/compress/zlib/zlib_pmd_ops.c +++ b/drivers/compress/zlib/zlib_pmd_ops.c @@ -4,6 +4,7 @@ #include +#include #include #include diff --git a/drivers/net/failsafe/failsafe_eal.c b/drivers/net/failsafe/failsafe_eal.c index cb4a2abc02..130344dce2 100644 --- a/drivers/net/failsafe/failsafe_eal.c +++ b/drivers/net/failsafe/failsafe_eal.c @@ -3,6 +3,7 @@ * Copyright 2017 Mellanox Technologies, Ltd */ +#include #include #include diff --git a/examples/multi_process/hotplug_mp/commands.c b/examples/multi_process/hotplug_mp/commands.c index 41ea265e45..da8b5e5924 100644 --- a/examples/multi_process/hotplug_mp/commands.c +++ b/examples/multi_process/hotplug_mp/commands.c @@ -8,6 +8,8 @@ #include #include #include + +#include #include /**********************************************************/ diff --git a/lib/compressdev/rte_compressdev.c b/lib/compressdev/rte_compressdev.c index 12469042f7..7f6dedbc52 100644 --- a/lib/compressdev/rte_compressdev.c +++ b/lib/compressdev/rte_compressdev.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include diff --git a/lib/compressdev/rte_compressdev_pmd.c b/lib/compressdev/rte_compressdev_pmd.c index 7f500d76d4..9bfae077db 100644 --- a/lib/compressdev/rte_compressdev_pmd.c +++ b/lib/compressdev/rte_compressdev_pmd.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include "rte_compressdev_internal.h" diff --git a/lib/cryptodev/cryptodev_pmd.c b/lib/cryptodev/cryptodev_pmd.c index 1903ade388..75d0075b86 100644 --- a/lib/cryptodev/cryptodev_pmd.c +++ b/lib/cryptodev/cryptodev_pmd.c @@ -3,6 +3,8 @@ */ #include + +#include #include #include #include diff --git a/lib/eal/common/eal_thread.h b/lib/eal/common/eal_thread.h index ca3378d463..e0240ccc60 100644 --- a/lib/eal/common/eal_thread.h +++ b/lib/eal/common/eal_thread.h @@ -5,6 +5,7 @@ #ifndef EAL_THREAD_H #define EAL_THREAD_H +#include #include /** diff --git a/lib/eal/common/hotplug_mp.c b/lib/eal/common/hotplug_mp.c index bde0de196e..1614a57752 100644 --- a/lib/eal/common/hotplug_mp.c +++ b/lib/eal/common/hotplug_mp.c @@ -3,6 +3,7 @@ */ #include +#include #include #include #include diff --git a/lib/eal/include/rte_bus.h b/lib/eal/include/rte_bus.h index bbbb6efd28..17edaa37c9 100644 --- a/lib/eal/include/rte_bus.h +++ b/lib/eal/include/rte_bus.h @@ -20,27 +20,13 @@ extern "C" { #include -#include #include +#include +#include /** Double linked list of buses */ RTE_TAILQ_HEAD(rte_bus_list, rte_bus); - -/** - * IOVA mapping mode. - * - * IOVA mapping mode is iommu programming mode of a device. - * That device (for example: IOMMU backed DMA device) based - * on rte_iova_mode will generate physical or virtual address. - * - */ -enum rte_iova_mode { - RTE_IOVA_DC = 0, /* Don't care mode */ - RTE_IOVA_PA = (1 << 0), /* DMA using physical address */ - RTE_IOVA_VA = (1 << 1) /* DMA using virtual address */ -}; - /** * Bus specific scan for devices attached on the bus. * For each bus object, the scan would be responsible for finding devices and diff --git a/lib/eal/include/rte_eal.h b/lib/eal/include/rte_eal.h index 5dfc50e987..fd3d7c1da8 100644 --- a/lib/eal/include/rte_eal.h +++ b/lib/eal/include/rte_eal.h @@ -17,7 +17,6 @@ #include #include #include -#include #include #include @@ -458,6 +457,20 @@ static inline int rte_gettid(void) __rte_internal uint64_t rte_eal_get_baseaddr(void); +/** + * IOVA mapping mode. + * + * IOVA mapping mode is iommu programming mode of a device. + * That device (for example: IOMMU backed DMA device) based + * on rte_iova_mode will generate physical or virtual address. + * + */ +enum rte_iova_mode { + RTE_IOVA_DC = 0, /* Don't care mode */ + RTE_IOVA_PA = (1 << 0), /* DMA using physical address */ + RTE_IOVA_VA = (1 << 1) /* DMA using virtual address */ +}; + /** * Get the iova mode * diff --git a/lib/eal/include/rte_lcore.h b/lib/eal/include/rte_lcore.h index b598e1b9ec..4d3978512c 100644 --- a/lib/eal/include/rte_lcore.h +++ b/lib/eal/include/rte_lcore.h @@ -11,6 +11,8 @@ * API for lcore and socket manipulation * */ +#include + #include #include #include diff --git a/lib/eal/windows/eal.c b/lib/eal/windows/eal.c index 122de2a319..79322d2ce9 100644 --- a/lib/eal/windows/eal.c +++ b/lib/eal/windows/eal.c @@ -10,6 +10,7 @@ #include #include +#include #include #include #include diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c index 1979dc0850..ebbe8cca3d 100644 --- a/lib/ethdev/rte_ethdev.c +++ b/lib/ethdev/rte_ethdev.c @@ -11,6 +11,7 @@ #include #include +#include #include #include #include diff --git a/lib/pcapng/rte_pcapng.c b/lib/pcapng/rte_pcapng.c index 06ad712bd1..5b079cd14a 100644 --- a/lib/pcapng/rte_pcapng.c +++ b/lib/pcapng/rte_pcapng.c @@ -11,6 +11,7 @@ #include #include +#include #include #include #include From patchwork Thu Jul 28 15:26:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114391 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1EA9FA00C5; Thu, 28 Jul 2022 17:29:01 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C3B3D42C0B; Thu, 28 Jul 2022 17:28:23 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id B50D142C1B for ; Thu, 28 Jul 2022 17:28:21 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022100; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=K366gv2qhVKiBz4PY18H6wipfsX457HaZdhotESSUQM=; b=RfkiGdLZ2Q431xeeJ6CHK18iI17ZILApcbFv2pLyHpCJUah+2EHCN6u5Qdeii4bFHGWt/G H0/3KCy9efliJ0ufmyGQPXmGMuUy40bDA2IbcNFMu+tOzaQ2yZIEZY1Sbr3fubllhDOGTP hi02EqbAb4c+vu/svPEqsTvcP3s2AKk= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-249-lo5e8H4aPVKH0ImKUIjcWQ-1; Thu, 28 Jul 2022 11:28:19 -0400 X-MC-Unique: lo5e8H4aPVKH0ImKUIjcWQ-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 AA8C429ABA1C; Thu, 28 Jul 2022 15:28:18 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9D9041415121; Thu, 28 Jul 2022 15:28:17 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Aman Singh , Yuying Zhang , Anatoly Burakov , Ray Kinsella Subject: [RFC v3 20/26] bus: introduce accessors Date: Thu, 28 Jul 2022 17:26:34 +0200 Message-Id: <20220728152640.547725-21-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 Add helpers to get a rte_bus object details. This will be used externally. Internal users may still dereference a rte_bus object. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- Changes since RFC v1: - changed approach: only external users are updated, --- app/test-pmd/config.c | 4 +-- app/test-pmd/testpmd.c | 4 +-- app/test/test_devargs.c | 4 +-- examples/multi_process/hotplug_mp/commands.c | 4 +-- lib/eal/common/eal_common_bus.c | 26 ++++++++++++-------- lib/eal/include/rte_bus.h | 14 +++++++++++ lib/eal/version.map | 3 +++ 7 files changed, 41 insertions(+), 18 deletions(-) diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index d988429f24..7bd28ee3e8 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -642,7 +642,7 @@ device_infos_display(const char *identifier) if (identifier && da.bus != next) continue; - snprintf(devstr, sizeof(devstr), "bus=%s", next->name); + snprintf(devstr, sizeof(devstr), "bus=%s", rte_bus_name(next)); RTE_DEV_FOREACH(dev, devstr, &dev_iter) { if (!dev->driver) @@ -653,7 +653,7 @@ device_infos_display(const char *identifier) continue; printf("\n%s Infos for device %s %s\n", info_border, dev->name, info_border); - printf("Bus name: %s", dev->bus->name); + printf("Bus name: %s", rte_bus_name(dev->bus)); printf("\nDriver name: %s", dev->driver->name); printf("\nDevargs: %s", dev->devargs ? dev->devargs->args : ""); diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 510e0be624..c7d1fa2719 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -3507,9 +3507,9 @@ detach_devargs(char *identifier) } } - if (rte_eal_hotplug_remove(da.bus->name, da.name) != 0) { + if (rte_eal_hotplug_remove(rte_bus_name(da.bus), da.name) != 0) { TESTPMD_LOG(ERR, "Failed to detach device %s(%s)\n", - da.name, da.bus->name); + da.name, rte_bus_name(da.bus)); rte_devargs_reset(&da); return; } diff --git a/app/test/test_devargs.c b/app/test/test_devargs.c index 16621285d2..ac5bc34c18 100644 --- a/app/test/test_devargs.c +++ b/app/test/test_devargs.c @@ -98,9 +98,9 @@ test_valid_devargs_cases(const struct devargs_case *list, size_t n) list[i].bus_kv) != 0) goto fail; if (list[i].bus != NULL && - strcmp(da.bus->name, list[i].bus) != 0) { + strcmp(rte_bus_name(da.bus), list[i].bus) != 0) { printf("rte_devargs_parse(%s) bus name (%s) not expected (%s)\n", - list[i].devargs, da.bus->name, list[i].bus); + list[i].devargs, rte_bus_name(da.bus), list[i].bus); goto fail; } if ((list[i].class_kv > 0 || list[i].class != NULL) && diff --git a/examples/multi_process/hotplug_mp/commands.c b/examples/multi_process/hotplug_mp/commands.c index da8b5e5924..88f44e00a0 100644 --- a/examples/multi_process/hotplug_mp/commands.c +++ b/examples/multi_process/hotplug_mp/commands.c @@ -126,7 +126,7 @@ static void cmd_dev_attach_parsed(void *parsed_result, return; } - if (!rte_eal_hotplug_add(da.bus->name, da.name, da.args)) + if (!rte_eal_hotplug_add(rte_bus_name(da.bus), da.name, da.args)) cmdline_printf(cl, "attached device %s\n", da.name); else cmdline_printf(cl, "failed to attached device %s\n", @@ -173,7 +173,7 @@ static void cmd_dev_detach_parsed(void *parsed_result, } printf("detaching...\n"); - if (!rte_eal_hotplug_remove(da.bus->name, da.name)) + if (!rte_eal_hotplug_remove(rte_bus_name(da.bus), da.name)) cmdline_printf(cl, "detached device %s\n", da.name); else diff --git a/lib/eal/common/eal_common_bus.c b/lib/eal/common/eal_common_bus.c index baa5b532af..cbf382f967 100644 --- a/lib/eal/common/eal_common_bus.c +++ b/lib/eal/common/eal_common_bus.c @@ -16,11 +16,17 @@ static struct rte_bus_list rte_bus_list = TAILQ_HEAD_INITIALIZER(rte_bus_list); +const char * +rte_bus_name(const struct rte_bus *bus) +{ + return bus->name; +} + void rte_bus_register(struct rte_bus *bus) { RTE_VERIFY(bus); - RTE_VERIFY(bus->name && strlen(bus->name)); + RTE_VERIFY(rte_bus_name(bus) && strlen(rte_bus_name(bus))); /* A bus should mandatorily have the scan implemented */ RTE_VERIFY(bus->scan); RTE_VERIFY(bus->probe); @@ -29,14 +35,14 @@ rte_bus_register(struct rte_bus *bus) RTE_VERIFY(!bus->plug || bus->unplug); TAILQ_INSERT_TAIL(&rte_bus_list, bus, next); - RTE_LOG(DEBUG, EAL, "Registered [%s] bus.\n", bus->name); + RTE_LOG(DEBUG, EAL, "Registered [%s] bus.\n", rte_bus_name(bus)); } void rte_bus_unregister(struct rte_bus *bus) { TAILQ_REMOVE(&rte_bus_list, bus, next); - RTE_LOG(DEBUG, EAL, "Unregistered [%s] bus.\n", bus->name); + RTE_LOG(DEBUG, EAL, "Unregistered [%s] bus.\n", rte_bus_name(bus)); } /* Scan all the buses for registered devices */ @@ -50,7 +56,7 @@ rte_bus_scan(void) ret = bus->scan(); if (ret) RTE_LOG(ERR, EAL, "Scan for (%s) bus failed.\n", - bus->name); + rte_bus_name(bus)); } return 0; @@ -64,7 +70,7 @@ rte_bus_probe(void) struct rte_bus *bus, *vbus = NULL; TAILQ_FOREACH(bus, &rte_bus_list, next) { - if (!strcmp(bus->name, "vdev")) { + if (!strcmp(rte_bus_name(bus), "vdev")) { vbus = bus; continue; } @@ -72,14 +78,14 @@ rte_bus_probe(void) ret = bus->probe(); if (ret) RTE_LOG(ERR, EAL, "Bus (%s) probe failed.\n", - bus->name); + rte_bus_name(bus)); } if (vbus) { ret = vbus->probe(); if (ret) RTE_LOG(ERR, EAL, "Bus (%s) probe failed.\n", - vbus->name); + rte_bus_name(vbus)); } return 0; @@ -92,7 +98,7 @@ bus_dump_one(FILE *f, struct rte_bus *bus) int ret; /* For now, dump only the bus name */ - ret = fprintf(f, " %s\n", bus->name); + ret = fprintf(f, " %s\n", rte_bus_name(bus)); /* Error in case of inability in writing to stream */ if (ret < 0) @@ -163,7 +169,7 @@ cmp_bus_name(const struct rte_bus *bus, const void *_name) { const char *name = _name; - return strcmp(bus->name, name); + return strcmp(rte_bus_name(bus), name); } struct rte_bus * @@ -213,7 +219,7 @@ rte_bus_get_iommu_class(void) bus_iova_mode = bus->get_iommu_class(); RTE_LOG(DEBUG, EAL, "Bus %s wants IOVA as '%s'\n", - bus->name, + rte_bus_name(bus), bus_iova_mode == RTE_IOVA_DC ? "DC" : (bus_iova_mode == RTE_IOVA_PA ? "PA" : "VA")); if (bus_iova_mode == RTE_IOVA_PA) diff --git a/lib/eal/include/rte_bus.h b/lib/eal/include/rte_bus.h index 17edaa37c9..3848b44db0 100644 --- a/lib/eal/include/rte_bus.h +++ b/lib/eal/include/rte_bus.h @@ -266,6 +266,20 @@ struct rte_bus { }; +/** + * Retrieve a bus name. + * + * @warning + * @b EXPERIMENTAL: this API may change without prior notice + * + * @param bus + * A pointer to a rte_bus structure. + * @return + * A pointer to the bus name string. + */ +__rte_experimental +const char *rte_bus_name(const struct rte_bus *bus); + /** * Register a Bus handler. * diff --git a/lib/eal/version.map b/lib/eal/version.map index 1f293e768b..aa53064db1 100644 --- a/lib/eal/version.map +++ b/lib/eal/version.map @@ -424,6 +424,9 @@ EXPERIMENTAL { rte_thread_self; rte_thread_set_affinity_by_id; rte_thread_set_priority; + + # added in 22.11 + rte_bus_name; }; INTERNAL { From patchwork Thu Jul 28 15:26:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114392 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0CA5EA00C5; Thu, 28 Jul 2022 17:29:08 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DDA6342B85; Thu, 28 Jul 2022 17:28:31 +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 DB57B40689 for ; Thu, 28 Jul 2022 17:28:29 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022109; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=isS9usohrjjqeizALqZZiDncdWirjoJJnZC9y9qIfo4=; b=Z3yCAgBjk8USc+PliOMaoJNVfqrZ77kIll4ibEYO/raFu4G7+HR2rMiYX6BKI+EJDGS5Cq I6fHXwOMKkSGmba7bDIr2ASpsT+OMHBT8/ZlwigtqsY2x+0qt5fGAUIUaZeRwvadX3s4lR 1fLnK8dcoCoNoT97Ac1k5INXM84MUog= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-474-EtWNrwUtPCi5eptls5Qx8g-1; Thu, 28 Jul 2022 11:28:26 -0400 X-MC-Unique: EtWNrwUtPCi5eptls5Qx8g-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 698893C1014E; Thu, 28 Jul 2022 15:28:25 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7CE751415118; Thu, 28 Jul 2022 15:28:21 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Ray Kinsella , Parav Pandit , Xueming Li , Hemant Agrawal , Sachin Saxena , Rosen Xu , Anatoly Burakov , Stephen Hemminger , Long Li , Matan Azrad , Viacheslav Ovsiienko , Bruce Richardson , Kevin Laatz , Chas Williams , "Min Hu (Connor)" , Gaetan Rivet , Maxime Coquelin , Chenbo Xia , Thomas Monjalon , Ferruh Yigit , Andrew Rybchenko , Reshma Pattan Subject: [RFC v3 21/26] bus: hide bus object Date: Thu, 28 Jul 2022 17:26:35 +0200 Message-Id: <20220728152640.547725-22-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 Make rte_bus opaque for non internal users. This will make extending this object possible without breaking the ABI. Introduce a new driver header and move rte_bus definition and helpers. Update drivers and library to use the internal header. Some applications may have been dereferencing rte_bus objects, mark this object's accessors as stable. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- Changes since RFC v2: - updated release notes, - marked accessors as stable, Changes since RFC v1: - update all existing users of the public header to use the internal one, --- app/test/test_devargs.c | 2 +- app/test/test_vdev.c | 2 +- doc/guides/rel_notes/deprecation.rst | 6 - doc/guides/rel_notes/release_22_11.rst | 6 + drivers/bus/auxiliary/auxiliary_common.c | 2 +- drivers/bus/auxiliary/auxiliary_params.c | 2 +- drivers/bus/auxiliary/private.h | 2 +- drivers/bus/dpaa/dpaa_bus.c | 2 +- drivers/bus/fslmc/fslmc_bus.c | 2 +- drivers/bus/fslmc/private.h | 2 +- drivers/bus/ifpga/ifpga_bus.c | 2 +- drivers/bus/pci/linux/pci_vfio.c | 2 +- drivers/bus/pci/pci_common.c | 2 +- drivers/bus/pci/pci_params.c | 2 +- drivers/bus/pci/private.h | 2 +- drivers/bus/vdev/vdev.c | 2 +- drivers/bus/vmbus/private.h | 2 +- drivers/common/mlx5/mlx5_common_pci.c | 2 +- drivers/dma/idxd/idxd_bus.c | 2 +- drivers/net/bonding/rte_eth_bond_args.c | 2 +- drivers/net/failsafe/failsafe.c | 2 +- drivers/net/failsafe/failsafe_eal.c | 2 +- drivers/net/mlx5/linux/mlx5_os.c | 2 +- drivers/net/netvsc/hn_ethdev.c | 2 +- drivers/net/vdev_netvsc/vdev_netvsc.c | 2 +- drivers/net/virtio/virtio_pci.c | 2 +- drivers/raw/ioat/idxd_bus.c | 2 +- lib/eal/common/eal_common_bus.c | 2 +- lib/eal/common/eal_common_dev.c | 2 +- lib/eal/common/eal_common_devargs.c | 2 +- lib/eal/common/hotplug_mp.c | 2 +- lib/eal/include/bus_driver.h | 296 +++++++++++++++++++++++ lib/eal/include/meson.build | 4 + lib/eal/include/rte_bus.h | 278 +-------------------- lib/eal/linux/eal_dev.c | 2 +- lib/eal/version.map | 8 +- lib/ethdev/rte_ethdev.c | 2 +- lib/pcapng/rte_pcapng.c | 2 +- 38 files changed, 343 insertions(+), 319 deletions(-) create mode 100644 lib/eal/include/bus_driver.h diff --git a/app/test/test_devargs.c b/app/test/test_devargs.c index ac5bc34c18..0a4c34a1ad 100644 --- a/app/test/test_devargs.c +++ b/app/test/test_devargs.c @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include "test.h" diff --git a/app/test/test_vdev.c b/app/test/test_vdev.c index 3cc3abe70b..c3a8ad64bb 100644 --- a/app/test/test_vdev.c +++ b/app/test/test_vdev.c @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include "test.h" diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index dba252067c..3512f01539 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -43,12 +43,6 @@ Deprecation Notices * mempool: The mempool API macros ``MEMPOOL_PG_*`` are deprecated and will be removed in DPDK 22.11. -* bus: The ``rte_bus`` object will be made opaque in DPDK 22.11. - The goal is to remove it from the public ABI and make this object extendable. - As a side effect, registering a bus will be marked as an internal API: - external users may still register their bus using a new driver header - (see ``enable_driver_sdk`` meson option). - * drivers: As a follow-up of the work on the ``rte_bus`` object, the ``rte_driver`` and ``rte_device`` objects (and as a domino effect, their bus-specific counterparts) will be made opaque in DPDK 22.11. diff --git a/doc/guides/rel_notes/release_22_11.rst b/doc/guides/rel_notes/release_22_11.rst index c55ee19bc2..46bb35ad09 100644 --- a/doc/guides/rel_notes/release_22_11.rst +++ b/doc/guides/rel_notes/release_22_11.rst @@ -84,6 +84,12 @@ API Changes Also, make sure to start the actual text at the margin. ======================================================= +* bus: Registering a bus has been marked as an internal API. + External users may still register their bus using the ``bus_driver.h`` + driver header (see ``enable_driver_sdk`` meson option). + The ``rte_bus`` object is now opaque and must be manipulated through added + accessors. + * drivers: Registering a driver on the ``auxiliary``, ``ifpga``, ``pci``, ``vdev``, ``vmbus`` buses has been marked as an internal API. External users may still register their driver using the associated driver diff --git a/drivers/bus/auxiliary/auxiliary_common.c b/drivers/bus/auxiliary/auxiliary_common.c index 6cf6c170ec..259ff152c4 100644 --- a/drivers/bus/auxiliary/auxiliary_common.c +++ b/drivers/bus/auxiliary/auxiliary_common.c @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/bus/auxiliary/auxiliary_params.c b/drivers/bus/auxiliary/auxiliary_params.c index 0289777922..a889e392c6 100644 --- a/drivers/bus/auxiliary/auxiliary_params.c +++ b/drivers/bus/auxiliary/auxiliary_params.c @@ -4,7 +4,7 @@ #include -#include +#include #include #include #include diff --git a/drivers/bus/auxiliary/private.h b/drivers/bus/auxiliary/private.h index 3f49f62493..3dee13e1d1 100644 --- a/drivers/bus/auxiliary/private.h +++ b/drivers/bus/auxiliary/private.h @@ -9,7 +9,7 @@ #include #include -#include +#include #include "bus_auxiliary_driver.h" diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c index 1ac6aa314f..682427ba2c 100644 --- a/drivers/bus/dpaa/dpaa_bus.c +++ b/drivers/bus/dpaa/dpaa_bus.c @@ -29,7 +29,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/bus/fslmc/fslmc_bus.c b/drivers/bus/fslmc/fslmc_bus.c index b9b0981329..8503004e3d 100644 --- a/drivers/bus/fslmc/fslmc_bus.c +++ b/drivers/bus/fslmc/fslmc_bus.c @@ -9,7 +9,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/bus/fslmc/private.h b/drivers/bus/fslmc/private.h index 60d68155e1..6f14085d98 100644 --- a/drivers/bus/fslmc/private.h +++ b/drivers/bus/fslmc/private.h @@ -5,7 +5,7 @@ #ifndef BUS_FSLMC_PRIVATE_H #define BUS_FSLMC_PRIVATE_H -#include +#include #include diff --git a/drivers/bus/ifpga/ifpga_bus.c b/drivers/bus/ifpga/ifpga_bus.c index 27e2de7072..bb943b58b5 100644 --- a/drivers/bus/ifpga/ifpga_bus.c +++ b/drivers/bus/ifpga/ifpga_bus.c @@ -14,7 +14,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/bus/pci/linux/pci_vfio.c b/drivers/bus/pci/linux/pci_vfio.c index cd0d0b1670..fab3483d9f 100644 --- a/drivers/bus/pci/linux/pci_vfio.c +++ b/drivers/bus/pci/linux/pci_vfio.c @@ -18,7 +18,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/bus/pci/pci_common.c b/drivers/bus/pci/pci_common.c index 0d61d49287..c26aacd364 100644 --- a/drivers/bus/pci/pci_common.c +++ b/drivers/bus/pci/pci_common.c @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/bus/pci/pci_params.c b/drivers/bus/pci/pci_params.c index 61a868707f..39d702a418 100644 --- a/drivers/bus/pci/pci_params.c +++ b/drivers/bus/pci/pci_params.c @@ -4,7 +4,7 @@ #include -#include +#include #include #include #include diff --git a/drivers/bus/pci/private.h b/drivers/bus/pci/private.h index 4e40a2ed85..fddf49251d 100644 --- a/drivers/bus/pci/private.h +++ b/drivers/bus/pci/private.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c index 7d78cf93bc..809a8bb08f 100644 --- a/drivers/bus/vdev/vdev.c +++ b/drivers/bus/vdev/vdev.c @@ -12,7 +12,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/bus/vmbus/private.h b/drivers/bus/vmbus/private.h index 3d233fa83c..e33424675c 100644 --- a/drivers/bus/vmbus/private.h +++ b/drivers/bus/vmbus/private.h @@ -9,7 +9,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/common/mlx5/mlx5_common_pci.c b/drivers/common/mlx5/mlx5_common_pci.c index e82cb881bf..73178ce0f3 100644 --- a/drivers/common/mlx5/mlx5_common_pci.c +++ b/drivers/common/mlx5/mlx5_common_pci.c @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include "mlx5_common_log.h" diff --git a/drivers/dma/idxd/idxd_bus.c b/drivers/dma/idxd/idxd_bus.c index 13cb967f6d..e30dcfc281 100644 --- a/drivers/dma/idxd/idxd_bus.c +++ b/drivers/dma/idxd/idxd_bus.c @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/net/bonding/rte_eth_bond_args.c b/drivers/net/bonding/rte_eth_bond_args.c index 1a86eb3c00..6553166f5c 100644 --- a/drivers/net/bonding/rte_eth_bond_args.c +++ b/drivers/net/bonding/rte_eth_bond_args.c @@ -4,7 +4,7 @@ #include #include -#include +#include #include #include diff --git a/drivers/net/failsafe/failsafe.c b/drivers/net/failsafe/failsafe.c index 5d4d52c341..32811403b4 100644 --- a/drivers/net/failsafe/failsafe.c +++ b/drivers/net/failsafe/failsafe.c @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include #include "failsafe_private.h" diff --git a/drivers/net/failsafe/failsafe_eal.c b/drivers/net/failsafe/failsafe_eal.c index 130344dce2..d71b512f81 100644 --- a/drivers/net/failsafe/failsafe_eal.c +++ b/drivers/net/failsafe/failsafe_eal.c @@ -3,7 +3,7 @@ * Copyright 2017 Mellanox Technologies, Ltd */ -#include +#include #include #include diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c index efb262e368..4f0a6f4d55 100644 --- a/drivers/net/mlx5/linux/mlx5_os.c +++ b/drivers/net/mlx5/linux/mlx5_os.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c index 188d92ffac..ccc06bdda6 100644 --- a/drivers/net/netvsc/hn_ethdev.c +++ b/drivers/net/netvsc/hn_ethdev.c @@ -31,7 +31,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/net/vdev_netvsc/vdev_netvsc.c b/drivers/net/vdev_netvsc/vdev_netvsc.c index 65043a04eb..dc90569df1 100644 --- a/drivers/net/vdev_netvsc/vdev_netvsc.c +++ b/drivers/net/vdev_netvsc/vdev_netvsc.c @@ -24,7 +24,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c index 632451dcbe..9cf4d760b4 100644 --- a/drivers/net/virtio/virtio_pci.c +++ b/drivers/net/virtio/virtio_pci.c @@ -9,7 +9,7 @@ #endif #include -#include +#include #include "virtio_pci.h" #include "virtio_logs.h" diff --git a/drivers/raw/ioat/idxd_bus.c b/drivers/raw/ioat/idxd_bus.c index 539f51b1b1..f32d811055 100644 --- a/drivers/raw/ioat/idxd_bus.c +++ b/drivers/raw/ioat/idxd_bus.c @@ -10,7 +10,7 @@ #include #include -#include +#include #include #include #include "ioat_private.h" diff --git a/lib/eal/common/eal_common_bus.c b/lib/eal/common/eal_common_bus.c index cbf382f967..be64d31b0f 100644 --- a/lib/eal/common/eal_common_bus.c +++ b/lib/eal/common/eal_common_bus.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include #include diff --git a/lib/eal/common/eal_common_dev.c b/lib/eal/common/eal_common_dev.c index b6f0392f30..62a598957c 100644 --- a/lib/eal/common/eal_common_dev.c +++ b/lib/eal/common/eal_common_dev.c @@ -7,7 +7,7 @@ #include #include -#include +#include #include #include #include diff --git a/lib/eal/common/eal_common_devargs.c b/lib/eal/common/eal_common_devargs.c index d5833af373..03e6e59baf 100644 --- a/lib/eal/common/eal_common_devargs.c +++ b/lib/eal/common/eal_common_devargs.c @@ -10,7 +10,7 @@ #include #include -#include +#include #include #include #include diff --git a/lib/eal/common/hotplug_mp.c b/lib/eal/common/hotplug_mp.c index 1614a57752..5202bd5658 100644 --- a/lib/eal/common/hotplug_mp.c +++ b/lib/eal/common/hotplug_mp.c @@ -3,7 +3,7 @@ */ #include -#include +#include #include #include #include diff --git a/lib/eal/include/bus_driver.h b/lib/eal/include/bus_driver.h new file mode 100644 index 0000000000..d2e615a736 --- /dev/null +++ b/lib/eal/include/bus_driver.h @@ -0,0 +1,296 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright (c) 2022 Red Hat, Inc. + */ + +#ifndef BUS_DRIVER_H +#define BUS_DRIVER_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include +#include +#include + +struct rte_devargs; +struct rte_device; + +/** Double linked list of buses */ +RTE_TAILQ_HEAD(rte_bus_list, rte_bus); + +/** + * Bus specific scan for devices attached on the bus. + * For each bus object, the scan would be responsible for finding devices and + * adding them to its private device list. + * + * A bus should mandatorily implement this method. + * + * @return + * 0 for successful scan + * <0 for unsuccessful scan with error value + */ +typedef int (*rte_bus_scan_t)(void); + +/** + * Implementation specific probe function which is responsible for linking + * devices on that bus with applicable drivers. + * + * This is called while iterating over each registered bus. + * + * @return + * 0 for successful probe + * !0 for any error while probing + */ +typedef int (*rte_bus_probe_t)(void); + +/** + * Device iterator to find a device on a bus. + * + * This function returns an rte_device if one of those held by the bus + * matches the data passed as parameter. + * + * If the comparison function returns zero this function should stop iterating + * over any more devices. To continue a search the device of a previous search + * can be passed via the start parameter. + * + * @param cmp + * Comparison function. + * + * @param data + * Data to compare each device against. + * + * @param start + * starting point for the iteration + * + * @return + * The first device matching the data, NULL if none exists. + */ +typedef struct rte_device * +(*rte_bus_find_device_t)(const struct rte_device *start, rte_dev_cmp_t cmp, + const void *data); + +/** + * Implementation specific probe function which is responsible for linking + * devices on that bus with applicable drivers. + * + * @param dev + * Device pointer that was returned by a previous call to find_device. + * + * @return + * 0 on success. + * !0 on error. + */ +typedef int (*rte_bus_plug_t)(struct rte_device *dev); + +/** + * Implementation specific remove function which is responsible for unlinking + * devices on that bus from assigned driver. + * + * @param dev + * Device pointer that was returned by a previous call to find_device. + * + * @return + * 0 on success. + * !0 on error. + */ +typedef int (*rte_bus_unplug_t)(struct rte_device *dev); + +/** + * Bus specific parsing function. + * Validates the syntax used in the textual representation of a device, + * If the syntax is valid and ``addr`` is not NULL, writes the bus-specific + * device representation to ``addr``. + * + * @param[in] name + * device textual description + * + * @param[out] addr + * device information location address, into which parsed info + * should be written. If NULL, nothing should be written, which + * is not an error. + * + * @return + * 0 if parsing was successful. + * !0 for any error. + */ +typedef int (*rte_bus_parse_t)(const char *name, void *addr); + +/** + * Parse bus part of the device arguments. + * + * The field name of the struct rte_devargs will be set. + * + * @param da + * Pointer to the devargs to parse. + * + * @return + * 0 on successful parsing, otherwise rte_errno is set. + * -EINVAL: on parsing error. + * -ENODEV: if no key matching a device argument is specified. + * -E2BIG: device name is too long. + */ +typedef int (*rte_bus_devargs_parse_t)(struct rte_devargs *da); + +/** + * Device level DMA map function. + * After a successful call, the memory segment will be mapped to the + * given device. + * + * @param dev + * Device pointer. + * @param addr + * Virtual address to map. + * @param iova + * IOVA address to map. + * @param len + * Length of the memory segment being mapped. + * + * @return + * 0 if mapping was successful. + * Negative value and rte_errno is set otherwise. + */ +typedef int (*rte_dev_dma_map_t)(struct rte_device *dev, void *addr, + uint64_t iova, size_t len); + +/** + * Device level DMA unmap function. + * After a successful call, the memory segment will no longer be + * accessible by the given device. + * + * @param dev + * Device pointer. + * @param addr + * Virtual address to unmap. + * @param iova + * IOVA address to unmap. + * @param len + * Length of the memory segment being mapped. + * + * @return + * 0 if un-mapping was successful. + * Negative value and rte_errno is set otherwise. + */ +typedef int (*rte_dev_dma_unmap_t)(struct rte_device *dev, void *addr, + uint64_t iova, size_t len); + +/** + * Implement a specific hot-unplug handler, which is responsible for + * handle the failure when device be hot-unplugged. When the event of + * hot-unplug be detected, it could call this function to handle + * the hot-unplug failure and avoid app crash. + * @param dev + * Pointer of the device structure. + * + * @return + * 0 on success. + * !0 on error. + */ +typedef int (*rte_bus_hot_unplug_handler_t)(struct rte_device *dev); + +/** + * Implement a specific sigbus handler, which is responsible for handling + * the sigbus error which is either original memory error, or specific memory + * error that caused of device be hot-unplugged. When sigbus error be captured, + * it could call this function to handle sigbus error. + * @param failure_addr + * Pointer of the fault address of the sigbus error. + * + * @return + * 0 for success handle the sigbus for hot-unplug. + * 1 for not process it, because it is a generic sigbus error. + * -1 for failed to handle the sigbus for hot-unplug. + */ +typedef int (*rte_bus_sigbus_handler_t)(const void *failure_addr); + +/** + * Bus scan policies + */ +enum rte_bus_scan_mode { + RTE_BUS_SCAN_UNDEFINED, + RTE_BUS_SCAN_ALLOWLIST, + RTE_BUS_SCAN_BLOCKLIST, +}; + +/** + * A structure used to configure bus operations. + */ +struct rte_bus_conf { + enum rte_bus_scan_mode scan_mode; /**< Scan policy. */ +}; + + +/** + * Get common iommu class of the all the devices on the bus. The bus may + * check that those devices are attached to iommu driver. + * If no devices are attached to the bus. The bus may return with don't care + * (_DC) value. + * Otherwise, The bus will return appropriate _pa or _va iova mode. + * + * @return + * enum rte_iova_mode value. + */ +typedef enum rte_iova_mode (*rte_bus_get_iommu_class_t)(void); + +/** + * A structure describing a generic bus. + */ +struct rte_bus { + RTE_TAILQ_ENTRY(rte_bus) next; /**< Next bus object in linked list */ + const char *name; /**< Name of the bus */ + rte_bus_scan_t scan; /**< Scan for devices attached to bus */ + rte_bus_probe_t probe; /**< Probe devices on bus */ + rte_bus_find_device_t find_device; /**< Find a device on the bus */ + rte_bus_plug_t plug; /**< Probe single device for drivers */ + rte_bus_unplug_t unplug; /**< Remove single device from driver */ + rte_bus_parse_t parse; /**< Parse a device name */ + rte_bus_devargs_parse_t devargs_parse; /**< Parse bus devargs */ + rte_dev_dma_map_t dma_map; /**< DMA map for device in the bus */ + rte_dev_dma_unmap_t dma_unmap; /**< DMA unmap for device in the bus */ + struct rte_bus_conf conf; /**< Bus configuration */ + rte_bus_get_iommu_class_t get_iommu_class; /**< Get iommu class */ + rte_dev_iterate_t dev_iterate; /**< Device iterator. */ + rte_bus_hot_unplug_handler_t hot_unplug_handler; + /**< handle hot-unplug failure on the bus */ + rte_bus_sigbus_handler_t sigbus_handler; + /**< handle sigbus error on the bus */ +}; + +/** + * Register a Bus handler. + * + * @param bus + * A pointer to a rte_bus structure describing the bus + * to be registered. + */ +__rte_internal +void rte_bus_register(struct rte_bus *bus); + +/** + * Helper for Bus registration. + * The constructor has higher priority than PMD constructors. + */ +#define RTE_REGISTER_BUS(nm, bus) \ +RTE_INIT_PRIO(businitfn_ ##nm, BUS) \ +{\ + (bus).name = RTE_STR(nm);\ + rte_bus_register(&bus); \ +} + +/** + * Unregister a Bus handler. + * + * @param bus + * A pointer to a rte_bus structure describing the bus + * to be unregistered. + */ +__rte_internal +void rte_bus_unregister(struct rte_bus *bus); + +#ifdef __cplusplus +} +#endif + +#endif /* BUS_DRIVER_H */ diff --git a/lib/eal/include/meson.build b/lib/eal/include/meson.build index fd6e844224..77d8621a51 100644 --- a/lib/eal/include/meson.build +++ b/lib/eal/include/meson.build @@ -55,6 +55,10 @@ headers += files( 'rte_vfio.h', ) +driver_sdk_headers = files( + 'bus_driver.h', +) + # special case install the generic headers, since they go in a subdir generic_headers = files( 'generic/rte_atomic.h', diff --git a/lib/eal/include/rte_bus.h b/lib/eal/include/rte_bus.h index 3848b44db0..dfe756fb11 100644 --- a/lib/eal/include/rte_bus.h +++ b/lib/eal/include/rte_bus.h @@ -20,284 +20,21 @@ extern "C" { #include -#include #include -#include -/** Double linked list of buses */ -RTE_TAILQ_HEAD(rte_bus_list, rte_bus); - -/** - * Bus specific scan for devices attached on the bus. - * For each bus object, the scan would be responsible for finding devices and - * adding them to its private device list. - * - * A bus should mandatorily implement this method. - * - * @return - * 0 for successful scan - * <0 for unsuccessful scan with error value - */ -typedef int (*rte_bus_scan_t)(void); - -/** - * Implementation specific probe function which is responsible for linking - * devices on that bus with applicable drivers. - * - * This is called while iterating over each registered bus. - * - * @return - * 0 for successful probe - * !0 for any error while probing - */ -typedef int (*rte_bus_probe_t)(void); - -/** - * Device iterator to find a device on a bus. - * - * This function returns an rte_device if one of those held by the bus - * matches the data passed as parameter. - * - * If the comparison function returns zero this function should stop iterating - * over any more devices. To continue a search the device of a previous search - * can be passed via the start parameter. - * - * @param cmp - * Comparison function. - * - * @param data - * Data to compare each device against. - * - * @param start - * starting point for the iteration - * - * @return - * The first device matching the data, NULL if none exists. - */ -typedef struct rte_device * -(*rte_bus_find_device_t)(const struct rte_device *start, rte_dev_cmp_t cmp, - const void *data); - -/** - * Implementation specific probe function which is responsible for linking - * devices on that bus with applicable drivers. - * - * @param dev - * Device pointer that was returned by a previous call to find_device. - * - * @return - * 0 on success. - * !0 on error. - */ -typedef int (*rte_bus_plug_t)(struct rte_device *dev); - -/** - * Implementation specific remove function which is responsible for unlinking - * devices on that bus from assigned driver. - * - * @param dev - * Device pointer that was returned by a previous call to find_device. - * - * @return - * 0 on success. - * !0 on error. - */ -typedef int (*rte_bus_unplug_t)(struct rte_device *dev); - -/** - * Bus specific parsing function. - * Validates the syntax used in the textual representation of a device, - * If the syntax is valid and ``addr`` is not NULL, writes the bus-specific - * device representation to ``addr``. - * - * @param[in] name - * device textual description - * - * @param[out] addr - * device information location address, into which parsed info - * should be written. If NULL, nothing should be written, which - * is not an error. - * - * @return - * 0 if parsing was successful. - * !0 for any error. - */ -typedef int (*rte_bus_parse_t)(const char *name, void *addr); - -/** - * Parse bus part of the device arguments. - * - * The field name of the struct rte_devargs will be set. - * - * @param da - * Pointer to the devargs to parse. - * - * @return - * 0 on successful parsing, otherwise rte_errno is set. - * -EINVAL: on parsing error. - * -ENODEV: if no key matching a device argument is specified. - * -E2BIG: device name is too long. - */ -typedef int (*rte_bus_devargs_parse_t)(struct rte_devargs *da); - -/** - * Device level DMA map function. - * After a successful call, the memory segment will be mapped to the - * given device. - * - * @param dev - * Device pointer. - * @param addr - * Virtual address to map. - * @param iova - * IOVA address to map. - * @param len - * Length of the memory segment being mapped. - * - * @return - * 0 if mapping was successful. - * Negative value and rte_errno is set otherwise. - */ -typedef int (*rte_dev_dma_map_t)(struct rte_device *dev, void *addr, - uint64_t iova, size_t len); - -/** - * Device level DMA unmap function. - * After a successful call, the memory segment will no longer be - * accessible by the given device. - * - * @param dev - * Device pointer. - * @param addr - * Virtual address to unmap. - * @param iova - * IOVA address to unmap. - * @param len - * Length of the memory segment being mapped. - * - * @return - * 0 if un-mapping was successful. - * Negative value and rte_errno is set otherwise. - */ -typedef int (*rte_dev_dma_unmap_t)(struct rte_device *dev, void *addr, - uint64_t iova, size_t len); - -/** - * Implement a specific hot-unplug handler, which is responsible for - * handle the failure when device be hot-unplugged. When the event of - * hot-unplug be detected, it could call this function to handle - * the hot-unplug failure and avoid app crash. - * @param dev - * Pointer of the device structure. - * - * @return - * 0 on success. - * !0 on error. - */ -typedef int (*rte_bus_hot_unplug_handler_t)(struct rte_device *dev); - -/** - * Implement a specific sigbus handler, which is responsible for handling - * the sigbus error which is either original memory error, or specific memory - * error that caused of device be hot-unplugged. When sigbus error be captured, - * it could call this function to handle sigbus error. - * @param failure_addr - * Pointer of the fault address of the sigbus error. - * - * @return - * 0 for success handle the sigbus for hot-unplug. - * 1 for not process it, because it is a generic sigbus error. - * -1 for failed to handle the sigbus for hot-unplug. - */ -typedef int (*rte_bus_sigbus_handler_t)(const void *failure_addr); - -/** - * Bus scan policies - */ -enum rte_bus_scan_mode { - RTE_BUS_SCAN_UNDEFINED, - RTE_BUS_SCAN_ALLOWLIST, - RTE_BUS_SCAN_BLOCKLIST, -}; - -/** - * A structure used to configure bus operations. - */ -struct rte_bus_conf { - enum rte_bus_scan_mode scan_mode; /**< Scan policy. */ -}; - - -/** - * Get common iommu class of the all the devices on the bus. The bus may - * check that those devices are attached to iommu driver. - * If no devices are attached to the bus. The bus may return with don't care - * (_DC) value. - * Otherwise, The bus will return appropriate _pa or _va iova mode. - * - * @return - * enum rte_iova_mode value. - */ -typedef enum rte_iova_mode (*rte_bus_get_iommu_class_t)(void); - - -/** - * A structure describing a generic bus. - */ -struct rte_bus { - RTE_TAILQ_ENTRY(rte_bus) next; /**< Next bus object in linked list */ - const char *name; /**< Name of the bus */ - rte_bus_scan_t scan; /**< Scan for devices attached to bus */ - rte_bus_probe_t probe; /**< Probe devices on bus */ - rte_bus_find_device_t find_device; /**< Find a device on the bus */ - rte_bus_plug_t plug; /**< Probe single device for drivers */ - rte_bus_unplug_t unplug; /**< Remove single device from driver */ - rte_bus_parse_t parse; /**< Parse a device name */ - rte_bus_devargs_parse_t devargs_parse; /**< Parse bus devargs */ - rte_dev_dma_map_t dma_map; /**< DMA map for device in the bus */ - rte_dev_dma_unmap_t dma_unmap; /**< DMA unmap for device in the bus */ - struct rte_bus_conf conf; /**< Bus configuration */ - rte_bus_get_iommu_class_t get_iommu_class; /**< Get iommu class */ - rte_dev_iterate_t dev_iterate; /**< Device iterator. */ - rte_bus_hot_unplug_handler_t hot_unplug_handler; - /**< handle hot-unplug failure on the bus */ - rte_bus_sigbus_handler_t sigbus_handler; - /**< handle sigbus error on the bus */ - -}; +struct rte_bus; +struct rte_device; /** * Retrieve a bus name. * - * @warning - * @b EXPERIMENTAL: this API may change without prior notice - * * @param bus * A pointer to a rte_bus structure. * @return * A pointer to the bus name string. */ -__rte_experimental const char *rte_bus_name(const struct rte_bus *bus); -/** - * Register a Bus handler. - * - * @param bus - * A pointer to a rte_bus structure describing the bus - * to be registered. - */ -void rte_bus_register(struct rte_bus *bus); - -/** - * Unregister a Bus handler. - * - * @param bus - * A pointer to a rte_bus structure describing the bus - * to be unregistered. - */ -void rte_bus_unregister(struct rte_bus *bus); - /** * Scan all the buses. * @@ -387,17 +124,6 @@ struct rte_bus *rte_bus_find_by_name(const char *busname); */ enum rte_iova_mode rte_bus_get_iommu_class(void); -/** - * Helper for Bus registration. - * The constructor has higher priority than PMD constructors. - */ -#define RTE_REGISTER_BUS(nm, bus) \ -RTE_INIT_PRIO(businitfn_ ##nm, BUS) \ -{\ - (bus).name = RTE_STR(nm);\ - rte_bus_register(&bus); \ -} - #ifdef __cplusplus } #endif diff --git a/lib/eal/linux/eal_dev.c b/lib/eal/linux/eal_dev.c index 02ae1cde29..098a2c3076 100644 --- a/lib/eal/linux/eal_dev.c +++ b/lib/eal/linux/eal_dev.c @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include #include diff --git a/lib/eal/version.map b/lib/eal/version.map index aa53064db1..6ec15f1147 100644 --- a/lib/eal/version.map +++ b/lib/eal/version.map @@ -12,10 +12,9 @@ DPDK_23 { rte_bus_find_by_device; rte_bus_find_by_name; rte_bus_get_iommu_class; + rte_bus_name; rte_bus_probe; - rte_bus_register; rte_bus_scan; - rte_bus_unregister; rte_calloc; rte_calloc_socket; rte_cpu_get_flag_enabled; @@ -424,14 +423,13 @@ EXPERIMENTAL { rte_thread_self; rte_thread_set_affinity_by_id; rte_thread_set_priority; - - # added in 22.11 - rte_bus_name; }; INTERNAL { global: + rte_bus_register; + rte_bus_unregister; rte_eal_get_baseaddr; rte_firmware_read; rte_intr_allow_others; diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c index ebbe8cca3d..9eba97f2d2 100644 --- a/lib/ethdev/rte_ethdev.c +++ b/lib/ethdev/rte_ethdev.c @@ -11,7 +11,7 @@ #include #include -#include +#include #include #include #include diff --git a/lib/pcapng/rte_pcapng.c b/lib/pcapng/rte_pcapng.c index 5b079cd14a..72aabd4dd0 100644 --- a/lib/pcapng/rte_pcapng.c +++ b/lib/pcapng/rte_pcapng.c @@ -11,7 +11,7 @@ #include #include -#include +#include #include #include #include From patchwork Thu Jul 28 15:26:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114393 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 13D9BA00C5; Thu, 28 Jul 2022 17:29:16 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4F19242BE6; Thu, 28 Jul 2022 17:28:35 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 5A48D40689 for ; Thu, 28 Jul 2022 17:28:34 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022113; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eGLsi4hxiyHSGlsqHYXmUdUO+SeY2VqFGZTJQG0QOII=; b=BewwMswEOhJVmJ81G8/5gkkRZflWwiC+KiqoW3YVV+gCxQMMKo2lirHk512yZ+342jhWDH MBH3D4btd50EQnTV3iNE2lzwV+CjTv5KgMgrwzl1ITIIuVIUIowZDSI5N8f/wAQvbKcPL/ PnuxOMi/s3nEd9oPIXi4zUwKnfRgIOE= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-139-Kf9E1q5XMlSRqcoIOyuiCg-1; Thu, 28 Jul 2022 11:28:30 -0400 X-MC-Unique: Kf9E1q5XMlSRqcoIOyuiCg-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 C40343826A4F; Thu, 28 Jul 2022 15:28:29 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 700F01415118; Thu, 28 Jul 2022 15:28:28 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Aman Singh , Yuying Zhang , Ray Kinsella , Thomas Monjalon , Ferruh Yigit , Andrew Rybchenko Subject: [RFC v3 22/26] dev: introduce driver accessors Date: Thu, 28 Jul 2022 17:26:36 +0200 Message-Id: <20220728152640.547725-23-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 Prepare for making the driver object opaque by adding accessors. Update existing "external" users. Internal users may still dereference a rte_driver object. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- app/test-pmd/config.c | 2 +- lib/eal/common/eal_common_dev.c | 6 ++++++ lib/eal/include/rte_dev.h | 15 +++++++++++++++ lib/eal/version.map | 3 +++ lib/ethdev/rte_ethdev.h | 2 +- 5 files changed, 26 insertions(+), 2 deletions(-) diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 7bd28ee3e8..6510f29c76 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -654,7 +654,7 @@ device_infos_display(const char *identifier) printf("\n%s Infos for device %s %s\n", info_border, dev->name, info_border); printf("Bus name: %s", rte_bus_name(dev->bus)); - printf("\nDriver name: %s", dev->driver->name); + printf("\nDriver name: %s", rte_driver_name(dev->driver)); printf("\nDevargs: %s", dev->devargs ? dev->devargs->args : ""); printf("\nConnect to socket: %d", dev->numa_node); diff --git a/lib/eal/common/eal_common_dev.c b/lib/eal/common/eal_common_dev.c index 62a598957c..16c5aef1d8 100644 --- a/lib/eal/common/eal_common_dev.c +++ b/lib/eal/common/eal_common_dev.c @@ -19,6 +19,12 @@ #include "eal_private.h" #include "hotplug_mp.h" +const char * +rte_driver_name(const struct rte_driver *driver) +{ + return driver->name; +} + /** * The device event callback description. * diff --git a/lib/eal/include/rte_dev.h b/lib/eal/include/rte_dev.h index 24f9122558..fedf67fba1 100644 --- a/lib/eal/include/rte_dev.h +++ b/lib/eal/include/rte_dev.h @@ -62,6 +62,21 @@ struct rte_driver { const char *alias; /**< Driver alias. */ }; +/** + * Retrieve a driver name. + * + * @warning + * @b EXPERIMENTAL: this API may change without prior notice + * + * @param driver + * A pointer to a driver structure. + * @return + * A pointer to the driver name string. + */ +__rte_experimental +const char * +rte_driver_name(const struct rte_driver *driver); + /* * Internal identifier length * Sufficiently large to allow for UUID or PCI address diff --git a/lib/eal/version.map b/lib/eal/version.map index 6ec15f1147..d10fd89458 100644 --- a/lib/eal/version.map +++ b/lib/eal/version.map @@ -423,6 +423,9 @@ EXPERIMENTAL { rte_thread_self; rte_thread_set_affinity_by_id; rte_thread_set_priority; + + # added in 22.11 + rte_driver_name; }; INTERNAL { diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h index de9e970d4d..e9574f646f 100644 --- a/lib/ethdev/rte_ethdev.h +++ b/lib/ethdev/rte_ethdev.h @@ -3380,7 +3380,7 @@ int rte_eth_macaddrs_get(uint16_t port_id, struct rte_ether_addr *ma, * exists for the device and the rte_eth_dev 'dev' has been populated * successfully with a call to it: * - * driver_name = dev->device->driver->name + * driver_name = rte_driver_name(dev->device->driver) * nb_rx_queues = dev->data->nb_rx_queues * nb_tx_queues = dev->data->nb_tx_queues * dev_flags = &dev->data->dev_flags From patchwork Thu Jul 28 15:26:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114394 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A73E6A00C5; Thu, 28 Jul 2022 17:29:21 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8F82940A84; Thu, 28 Jul 2022 17:28:54 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 007B042BBE for ; Thu, 28 Jul 2022 17:28:52 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022132; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1OQp8jRuN3VPj5XZLx0SKzT+t0WIb7Lp4Dyqm45iOOQ=; b=ZEbKu4ujPzmDs3sbZn7wHeKEStfemCaiFxz26EErPhRVhT5wrAG+0TPr0dcfXiERBvTa/j yes3hb0qWIZ7bXGhpzo6ONdZTvFNoCMyqHVeXCfd6eP3fgQopGa+EJmYQTxaP8AFtkLhP0 JcRR9oybtlHusVJnYTA59wv8v21ZZ64= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-267-RwdjFY3JPoegsrsP0Pq7yw-1; Thu, 28 Jul 2022 11:28:47 -0400 X-MC-Unique: RwdjFY3JPoegsrsP0Pq7yw-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 9BD353C10148; Thu, 28 Jul 2022 15:28:44 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 106241415118; Thu, 28 Jul 2022 15:28:32 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Nicolas Chautru , Parav Pandit , Xueming Li , Hemant Agrawal , Sachin Saxena , Stephen Hemminger , Long Li , Fan Zhang , Sunila Sahu , Ashish Gupta , Ajit Khaparde , Raveendra Padasalagi , Vikas Gupta , Chandubabu Namburu , Ankur Dwivedi , Anoob Joseph , Tejasree Kondoj , Gagandeep Singh , Bruce Richardson , Kevin Laatz , Timothy McDaniel , Jerin Jacob , Elena Agostini , Ciara Loftus , Qi Zhang , Shepard Siegel , Ed Czeck , John Miller , Steven Webster , Matt Peters , Rasesh Mody , Shahed Shaikh , Somnath Kotur , Rahul Lakkireddy , Simei Su , Wenjun Wu , Marcin Wojtas , Michal Krawczyk , Shai Brandes , Evgeny Schemeilin , Igor Chauskin , John Daley , Hyong Youb Kim , Gaetan Rivet , Xiao Wang , Yuying Zhang , Beilei Xing , Jingjing Wu , Qiming Yang , Matan Azrad , Viacheslav Ovsiienko , Chaoyong He , Niklas Soderlund , Harman Kalra , Devendra Singh Rawat , Andrew Rybchenko , Maciej Czekaj , Maxime Coquelin , Chenbo Xia , Jochen Behrens , Jakub Palider , Tomasz Duszynski , Ori Kam , Akhil Goyal , Chengwen Feng , Ray Kinsella , Thomas Monjalon , Ferruh Yigit , Abhinandan Gujjar , Jay Jayatheerthan , Olivier Matz , Reshma Pattan Subject: [RFC v3 23/26] dev: hide driver object Date: Thu, 28 Jul 2022 17:26:37 +0200 Message-Id: <20220728152640.547725-24-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 Make rte_driver opaque for non internal users. This will make extending this object possible without breaking the ABI. Introduce a new driver header and move rte_driver definition. Update drivers and library to use the internal header. Some applications may have been dereferencing rte_driver objects, mark this object's accessors as stable. Signed-off-by: David Marchand Acked-by: Bruce Richardson Acked-by: Jay Jayatheerthan Acked-by: Ajit Khaparde --- Changes since RFC v2: - updated release notes, - marked accessors as stable, --- doc/guides/rel_notes/release_22_11.rst | 2 ++ drivers/baseband/acc100/rte_acc100_pmd.c | 2 +- .../fpga_5gnr_fec/rte_fpga_5gnr_fec.c | 2 +- drivers/baseband/fpga_lte_fec/fpga_lte_fec.c | 2 +- drivers/bus/auxiliary/auxiliary_params.c | 2 +- drivers/bus/auxiliary/bus_auxiliary_driver.h | 2 +- drivers/bus/dpaa/bus_dpaa_driver.h | 2 +- drivers/bus/fslmc/bus_fslmc_driver.h | 2 +- drivers/bus/fslmc/fslmc_vfio.c | 2 +- drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c | 2 +- drivers/bus/fslmc/portal/dpaa2_hw_dpci.c | 2 +- drivers/bus/fslmc/portal/dpaa2_hw_dpio.c | 2 +- drivers/bus/fslmc/portal/dpaa2_hw_dprc.c | 2 +- drivers/bus/pci/bus_pci_driver.h | 2 +- drivers/bus/pci/pci_params.c | 2 +- drivers/bus/vdev/bus_vdev_driver.h | 2 +- drivers/bus/vdev/vdev.c | 2 +- drivers/bus/vdev/vdev_params.c | 2 +- drivers/bus/vmbus/bus_vmbus_driver.h | 2 +- drivers/common/qat/dev/qat_dev_gen4.c | 2 +- drivers/common/qat/qat_qp.c | 2 +- drivers/compress/zlib/zlib_pmd_ops.c | 2 +- drivers/crypto/bcmfs/bcmfs_qp.c | 2 +- drivers/crypto/bcmfs/bcmfs_sym_pmd.c | 2 +- drivers/crypto/ccp/rte_ccp_pmd.c | 2 +- drivers/crypto/cnxk/cn10k_cryptodev.c | 2 +- drivers/crypto/cnxk/cn9k_cryptodev.c | 2 +- drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 2 +- drivers/crypto/dpaa_sec/dpaa_sec.c | 2 +- drivers/crypto/scheduler/scheduler_pmd_ops.c | 2 +- drivers/dma/idxd/idxd_bus.c | 1 + drivers/event/dlb2/dlb2.c | 2 +- drivers/event/dlb2/pf/dlb2_pf.c | 2 +- drivers/event/dpaa/dpaa_eventdev.c | 2 +- drivers/event/dpaa2/dpaa2_eventdev.c | 2 +- drivers/event/dpaa2/dpaa2_hw_dpcon.c | 2 +- drivers/event/octeontx/ssovf_evdev.c | 2 +- drivers/event/skeleton/skeleton_eventdev.c | 2 +- drivers/gpu/cuda/cuda.c | 2 +- drivers/mempool/dpaa2/dpaa2_hw_mempool.c | 2 +- drivers/net/af_xdp/rte_eth_af_xdp.c | 2 +- drivers/net/ark/ark_global.h | 2 +- drivers/net/avp/avp_ethdev.c | 2 +- drivers/net/axgbe/axgbe_common.h | 2 +- drivers/net/bnx2x/bnx2x_ethdev.c | 2 +- drivers/net/bnxt/bnxt_ethdev.c | 2 +- drivers/net/bnxt/rte_pmd_bnxt.c | 2 +- drivers/net/cxgbe/base/t4_hw.c | 2 +- drivers/net/cxgbe/cxgbe_ethdev.c | 2 +- drivers/net/cxgbe/cxgbe_main.c | 2 +- drivers/net/cxgbe/sge.c | 2 +- drivers/net/dpaa2/base/dpaa2_hw_dpni.c | 2 +- drivers/net/dpaa2/dpaa2_ethdev.c | 2 +- drivers/net/dpaa2/dpaa2_recycle.c | 2 +- drivers/net/dpaa2/dpaa2_rxtx.c | 2 +- drivers/net/dpaa2/dpaa2_sparser.c | 2 +- drivers/net/e1000/em_ethdev.c | 2 +- drivers/net/e1000/igb_ethdev.c | 2 +- drivers/net/e1000/igb_flow.c | 2 +- drivers/net/ena/ena_ethdev.h | 2 +- drivers/net/enic/enic_ethdev.c | 2 +- drivers/net/enic/enic_vf_representor.c | 2 +- drivers/net/failsafe/failsafe_private.h | 2 +- drivers/net/fm10k/fm10k_ethdev.c | 2 +- drivers/net/i40e/i40e_ethdev.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/ixgbe/ixgbe_ethdev.c | 2 +- drivers/net/ixgbe/ixgbe_flow.c | 2 +- drivers/net/mlx4/mlx4.c | 2 +- drivers/net/netvsc/hn_ethdev.c | 2 +- drivers/net/netvsc/hn_nvs.c | 2 +- drivers/net/netvsc/hn_rndis.c | 2 +- drivers/net/netvsc/hn_rxtx.c | 2 +- drivers/net/nfp/nfp_common.c | 2 +- drivers/net/nfp/nfp_ethdev.c | 2 +- drivers/net/octeontx/octeontx_ethdev.c | 2 +- drivers/net/qede/qede_ethdev.h | 2 +- drivers/net/sfc/sfc_ethdev.c | 2 +- drivers/net/sfc/sfc_sw_stats.c | 2 +- drivers/net/sfc/sfc_sw_stats.h | 2 +- drivers/net/thunderx/nicvf_ethdev.c | 2 +- drivers/net/vdev_netvsc/vdev_netvsc.c | 2 +- drivers/net/virtio/virtio_ethdev.c | 2 +- drivers/net/virtio/virtio_pci_ethdev.c | 2 +- drivers/net/vmxnet3/vmxnet3_ethdev.c | 2 +- drivers/raw/cnxk_bphy/cnxk_bphy.c | 2 +- drivers/raw/skeleton/skeleton_rawdev.c | 2 +- drivers/raw/skeleton/skeleton_rawdev_test.c | 2 +- drivers/regex/mlx5/mlx5_regex_control.c | 2 +- lib/compressdev/rte_compressdev.c | 2 +- lib/compressdev/rte_compressdev_pmd.c | 2 +- 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_pmd.h | 2 +- lib/eal/common/eal_common_dev.c | 2 +- lib/eal/include/dev_driver.h | 28 +++++++++++++++++++ lib/eal/include/meson.build | 1 + lib/eal/include/rte_dev.h | 15 ++-------- lib/eal/version.map | 4 +-- lib/ethdev/ethdev_driver.h | 1 + lib/eventdev/eventdev_pmd.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 | 2 +- lib/pcapng/rte_pcapng.c | 2 +- lib/rawdev/rte_rawdev.c | 2 +- lib/rawdev/rte_rawdev_pmd.h | 2 +- lib/security/rte_security.c | 2 +- 115 files changed, 144 insertions(+), 122 deletions(-) create mode 100644 lib/eal/include/dev_driver.h diff --git a/doc/guides/rel_notes/release_22_11.rst b/doc/guides/rel_notes/release_22_11.rst index 46bb35ad09..ff1a2d6543 100644 --- a/doc/guides/rel_notes/release_22_11.rst +++ b/doc/guides/rel_notes/release_22_11.rst @@ -94,6 +94,8 @@ API Changes ``vdev``, ``vmbus`` buses has been marked as an internal API. External users may still register their driver using the associated driver headers (see ``enable_driver_sdk`` meson option). + The ``rte_driver`` object is now opaque and must be manipulated through added + accessors. * raw/ifgpa: The function ``rte_pmd_ifpga_get_pci_bus`` has been removed. diff --git a/drivers/baseband/acc100/rte_acc100_pmd.c b/drivers/baseband/acc100/rte_acc100_pmd.c index 801e8920df..e2d9409185 100644 --- a/drivers/baseband/acc100/rte_acc100_pmd.c +++ b/drivers/baseband/acc100/rte_acc100_pmd.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c b/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c index c1d877c87f..51dd090c1b 100644 --- a/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c +++ b/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c b/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c index f16814e241..036579e3ec 100644 --- a/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c +++ b/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/bus/auxiliary/auxiliary_params.c b/drivers/bus/auxiliary/auxiliary_params.c index a889e392c6..e4c7ee0c3b 100644 --- a/drivers/bus/auxiliary/auxiliary_params.c +++ b/drivers/bus/auxiliary/auxiliary_params.c @@ -5,7 +5,7 @@ #include #include -#include +#include #include #include diff --git a/drivers/bus/auxiliary/bus_auxiliary_driver.h b/drivers/bus/auxiliary/bus_auxiliary_driver.h index 1c2d2c04af..58fb7c7f69 100644 --- a/drivers/bus/auxiliary/bus_auxiliary_driver.h +++ b/drivers/bus/auxiliary/bus_auxiliary_driver.h @@ -25,7 +25,7 @@ extern "C" { #include #include #include -#include +#include #include #define RTE_BUS_AUXILIARY_NAME "auxiliary" diff --git a/drivers/bus/dpaa/bus_dpaa_driver.h b/drivers/bus/dpaa/bus_dpaa_driver.h index cf66fc0c53..26a83b2cdf 100644 --- a/drivers/bus/dpaa/bus_dpaa_driver.h +++ b/drivers/bus/dpaa/bus_dpaa_driver.h @@ -7,7 +7,7 @@ #define BUS_DPAA_DRIVER_H #include -#include +#include #include #include diff --git a/drivers/bus/fslmc/bus_fslmc_driver.h b/drivers/bus/fslmc/bus_fslmc_driver.h index 798ddebf3a..7ac5fe6ff1 100644 --- a/drivers/bus/fslmc/bus_fslmc_driver.h +++ b/drivers/bus/fslmc/bus_fslmc_driver.h @@ -29,7 +29,7 @@ extern "C" { #include #include #include -#include +#include #include #include #include diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c index 8604e43947..5966776a85 100644 --- a/drivers/bus/fslmc/fslmc_vfio.c +++ b/drivers/bus/fslmc/fslmc_vfio.c @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include #include "private.h" diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c index cfe4280f87..d7f6e45b7d 100644 --- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c @@ -18,7 +18,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c index b7d81b518c..07256ed7ec 100644 --- a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c index 071b0d297d..4aec7b2cd8 100644 --- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c @@ -30,7 +30,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dprc.c b/drivers/bus/fslmc/portal/dpaa2_hw_dprc.c index 223e34bcba..65e2d799c3 100644 --- a/drivers/bus/fslmc/portal/dpaa2_hw_dprc.c +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dprc.c @@ -10,7 +10,7 @@ #include #include -#include +#include #include "private.h" #include diff --git a/drivers/bus/pci/bus_pci_driver.h b/drivers/bus/pci/bus_pci_driver.h index b5c7dee617..0f2f9b5101 100644 --- a/drivers/bus/pci/bus_pci_driver.h +++ b/drivers/bus/pci/bus_pci_driver.h @@ -11,7 +11,7 @@ extern "C" { #endif #include -#include +#include #include /** Pathname of PCI devices directory. */ diff --git a/drivers/bus/pci/pci_params.c b/drivers/bus/pci/pci_params.c index 39d702a418..d24cc201b8 100644 --- a/drivers/bus/pci/pci_params.c +++ b/drivers/bus/pci/pci_params.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/bus/vdev/bus_vdev_driver.h b/drivers/bus/vdev/bus_vdev_driver.h index 36748cdfae..bc7e30d7c6 100644 --- a/drivers/bus/vdev/bus_vdev_driver.h +++ b/drivers/bus/vdev/bus_vdev_driver.h @@ -11,7 +11,7 @@ extern "C" { #include #include -#include +#include #include struct rte_vdev_device { diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c index 809a8bb08f..b176b658fc 100644 --- a/drivers/bus/vdev/vdev.c +++ b/drivers/bus/vdev/vdev.c @@ -11,7 +11,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/bus/vdev/vdev_params.c b/drivers/bus/vdev/vdev_params.c index 2c72614776..2d10a1e8ad 100644 --- a/drivers/bus/vdev/vdev_params.c +++ b/drivers/bus/vdev/vdev_params.c @@ -4,7 +4,7 @@ #include -#include +#include #include #include diff --git a/drivers/bus/vmbus/bus_vmbus_driver.h b/drivers/bus/vmbus/bus_vmbus_driver.h index 3424e791c9..e2475a642d 100644 --- a/drivers/bus/vmbus/bus_vmbus_driver.h +++ b/drivers/bus/vmbus/bus_vmbus_driver.h @@ -12,7 +12,7 @@ extern "C" { #include #include -#include +#include struct vmbus_channel; struct vmbus_mon_page; diff --git a/drivers/common/qat/dev/qat_dev_gen4.c b/drivers/common/qat/dev/qat_dev_gen4.c index 7ffde5f4c8..85d6ddfcf4 100644 --- a/drivers/common/qat/dev/qat_dev_gen4.c +++ b/drivers/common/qat/dev/qat_dev_gen4.c @@ -2,7 +2,7 @@ * Copyright(c) 2021 Intel Corporation */ -#include +#include #include #include "qat_device.h" diff --git a/drivers/common/qat/qat_qp.c b/drivers/common/qat/qat_qp.c index 4a1be35b47..e58e4ceec0 100644 --- a/drivers/common/qat/qat_qp.c +++ b/drivers/common/qat/qat_qp.c @@ -4,7 +4,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/compress/zlib/zlib_pmd_ops.c b/drivers/compress/zlib/zlib_pmd_ops.c index 7d657d81bc..445a3baa67 100644 --- a/drivers/compress/zlib/zlib_pmd_ops.c +++ b/drivers/compress/zlib/zlib_pmd_ops.c @@ -4,7 +4,7 @@ #include -#include +#include #include #include diff --git a/drivers/crypto/bcmfs/bcmfs_qp.c b/drivers/crypto/bcmfs/bcmfs_qp.c index 61d457f4e0..d1ede5e990 100644 --- a/drivers/crypto/bcmfs/bcmfs_qp.c +++ b/drivers/crypto/bcmfs/bcmfs_qp.c @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/bcmfs/bcmfs_sym_pmd.c b/drivers/crypto/bcmfs/bcmfs_sym_pmd.c index bc7fb67218..78272d616c 100644 --- a/drivers/crypto/bcmfs/bcmfs_sym_pmd.c +++ b/drivers/crypto/bcmfs/bcmfs_sym_pmd.c @@ -4,7 +4,7 @@ */ #include -#include +#include #include #include #include diff --git a/drivers/crypto/ccp/rte_ccp_pmd.c b/drivers/crypto/ccp/rte_ccp_pmd.c index 6c3e45e333..013f3be1e6 100644 --- a/drivers/crypto/ccp/rte_ccp_pmd.c +++ b/drivers/crypto/ccp/rte_ccp_pmd.c @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include "ccp_crypto.h" diff --git a/drivers/crypto/cnxk/cn10k_cryptodev.c b/drivers/crypto/cnxk/cn10k_cryptodev.c index 3fd9f3c426..db11ac7444 100644 --- a/drivers/crypto/cnxk/cn10k_cryptodev.c +++ b/drivers/crypto/cnxk/cn10k_cryptodev.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include "cn10k_cryptodev.h" diff --git a/drivers/crypto/cnxk/cn9k_cryptodev.c b/drivers/crypto/cnxk/cn9k_cryptodev.c index bd425f95ff..4cfc1f2150 100644 --- a/drivers/crypto/cnxk/cn9k_cryptodev.c +++ b/drivers/crypto/cnxk/cn9k_cryptodev.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include "cn9k_cryptodev.h" diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c index 0cce861899..3b13578de0 100644 --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c index 7e554cb2b1..c6bd785262 100644 --- a/drivers/crypto/dpaa_sec/dpaa_sec.c +++ b/drivers/crypto/dpaa_sec/dpaa_sec.c @@ -19,7 +19,7 @@ #include #endif #include -#include +#include #include #include #include diff --git a/drivers/crypto/scheduler/scheduler_pmd_ops.c b/drivers/crypto/scheduler/scheduler_pmd_ops.c index f3a1bd626c..971f82897c 100644 --- a/drivers/crypto/scheduler/scheduler_pmd_ops.c +++ b/drivers/crypto/scheduler/scheduler_pmd_ops.c @@ -5,7 +5,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/dma/idxd/idxd_bus.c b/drivers/dma/idxd/idxd_bus.c index e30dcfc281..9b7b16c6e3 100644 --- a/drivers/dma/idxd/idxd_bus.c +++ b/drivers/dma/idxd/idxd_bus.c @@ -9,6 +9,7 @@ #include #include +#include #include #include #include diff --git a/drivers/event/dlb2/dlb2.c b/drivers/event/dlb2/dlb2.c index 5a443acff8..759578378f 100644 --- a/drivers/event/dlb2/dlb2.c +++ b/drivers/event/dlb2/dlb2.c @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/event/dlb2/pf/dlb2_pf.c b/drivers/event/dlb2/pf/dlb2_pf.c index 9f8c6cd8b8..71ac141b66 100644 --- a/drivers/event/dlb2/pf/dlb2_pf.c +++ b/drivers/event/dlb2/pf/dlb2_pf.c @@ -15,7 +15,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/event/dpaa/dpaa_eventdev.c b/drivers/event/dpaa/dpaa_eventdev.c index aa403f9e06..8e470584ea 100644 --- a/drivers/event/dpaa/dpaa_eventdev.c +++ b/drivers/event/dpaa/dpaa_eventdev.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c index 08df6e223a..1001297cda 100644 --- a/drivers/event/dpaa2/dpaa2_eventdev.c +++ b/drivers/event/dpaa2/dpaa2_eventdev.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/event/dpaa2/dpaa2_hw_dpcon.c b/drivers/event/dpaa2/dpaa2_hw_dpcon.c index 3882a9cf1d..a68d3ac154 100644 --- a/drivers/event/dpaa2/dpaa2_hw_dpcon.c +++ b/drivers/event/dpaa2/dpaa2_hw_dpcon.c @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/event/octeontx/ssovf_evdev.c b/drivers/event/octeontx/ssovf_evdev.c index fe157c59d5..99fa326ad5 100644 --- a/drivers/event/octeontx/ssovf_evdev.c +++ b/drivers/event/octeontx/ssovf_evdev.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/event/skeleton/skeleton_eventdev.c b/drivers/event/skeleton/skeleton_eventdev.c index 6bd8fec6d4..8513b9a013 100644 --- a/drivers/event/skeleton/skeleton_eventdev.c +++ b/drivers/event/skeleton/skeleton_eventdev.c @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/gpu/cuda/cuda.c b/drivers/gpu/cuda/cuda.c index 2be7b8d2df..a552aabeb8 100644 --- a/drivers/gpu/cuda/cuda.c +++ b/drivers/gpu/cuda/cuda.c @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include diff --git a/drivers/mempool/dpaa2/dpaa2_hw_mempool.c b/drivers/mempool/dpaa2/dpaa2_hw_mempool.c index 56c629c681..84371d5d1a 100644 --- a/drivers/mempool/dpaa2/dpaa2_hw_mempool.c +++ b/drivers/mempool/dpaa2/dpaa2_hw_mempool.c @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include "rte_dpaa2_mempool.h" #include "fslmc_vfio.h" diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c b/drivers/net/af_xdp/rte_eth_af_xdp.c index fd7be47311..9957de2314 100644 --- a/drivers/net/af_xdp/rte_eth_af_xdp.c +++ b/drivers/net/af_xdp/rte_eth_af_xdp.c @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/ark/ark_global.h b/drivers/net/ark/ark_global.h index 748db590c1..71d0b53e03 100644 --- a/drivers/net/ark/ark_global.h +++ b/drivers/net/ark/ark_global.h @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include "ark_pktdir.h" diff --git a/drivers/net/avp/avp_ethdev.c b/drivers/net/avp/avp_ethdev.c index 7c0cb666fb..b2a08f5635 100644 --- a/drivers/net/avp/avp_ethdev.c +++ b/drivers/net/avp/avp_ethdev.c @@ -22,7 +22,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/axgbe/axgbe_common.h b/drivers/net/axgbe/axgbe_common.h index b9ebf64fb8..a5d11c5832 100644 --- a/drivers/net/axgbe/axgbe_common.h +++ b/drivers/net/axgbe/axgbe_common.h @@ -33,7 +33,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c index f36ad30e17..4448cf2de2 100644 --- a/drivers/net/bnx2x/bnx2x_ethdev.c +++ b/drivers/net/bnx2x/bnx2x_ethdev.c @@ -9,7 +9,7 @@ #include "bnx2x_rxtx.h" #include -#include +#include #include #include diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index e275d3a53f..1460dce2ab 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/net/bnxt/rte_pmd_bnxt.c b/drivers/net/bnxt/rte_pmd_bnxt.c index 77ecbef04c..fd1506ddd4 100644 --- a/drivers/net/bnxt/rte_pmd_bnxt.c +++ b/drivers/net/bnxt/rte_pmd_bnxt.c @@ -7,7 +7,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/net/cxgbe/base/t4_hw.c b/drivers/net/cxgbe/base/t4_hw.c index 384080e6d3..bed755f5d9 100644 --- a/drivers/net/cxgbe/base/t4_hw.c +++ b/drivers/net/cxgbe/base/t4_hw.c @@ -18,7 +18,7 @@ #include #include #include -#include +#include #include #include "common.h" diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c index fd71a50a58..45bbeaef0c 100644 --- a/drivers/net/cxgbe/cxgbe_ethdev.c +++ b/drivers/net/cxgbe/cxgbe_ethdev.c @@ -31,7 +31,7 @@ #include #include #include -#include +#include #include "cxgbe.h" #include "cxgbe_pfvf.h" diff --git a/drivers/net/cxgbe/cxgbe_main.c b/drivers/net/cxgbe/cxgbe_main.c index 3c02c98b3d..f8dd833032 100644 --- a/drivers/net/cxgbe/cxgbe_main.c +++ b/drivers/net/cxgbe/cxgbe_main.c @@ -31,7 +31,7 @@ #include #include #include -#include +#include #include #include "base/common.h" diff --git a/drivers/net/cxgbe/sge.c b/drivers/net/cxgbe/sge.c index 5d91355c9a..5b13cb5c94 100644 --- a/drivers/net/cxgbe/sge.c +++ b/drivers/net/cxgbe/sge.c @@ -30,7 +30,7 @@ #include #include #include -#include +#include #include "base/common.h" #include "base/t4_regs.h" diff --git a/drivers/net/dpaa2/base/dpaa2_hw_dpni.c b/drivers/net/dpaa2/base/dpaa2_hw_dpni.c index 9509f6e8a3..4d33b51fea 100644 --- a/drivers/net/dpaa2/base/dpaa2_hw_dpni.c +++ b/drivers/net/dpaa2/base/dpaa2_hw_dpni.c @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index f876f4790c..37a8b43114 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include #include "rte_dpaa2_mempool.h" diff --git a/drivers/net/dpaa2/dpaa2_recycle.c b/drivers/net/dpaa2/dpaa2_recycle.c index 932570c6e0..fbfdf360d1 100644 --- a/drivers/net/dpaa2/dpaa2_recycle.c +++ b/drivers/net/dpaa2/dpaa2_recycle.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/net/dpaa2/dpaa2_rxtx.c b/drivers/net/dpaa2/dpaa2_rxtx.c index 7b9c528d13..9436a95ac8 100644 --- a/drivers/net/dpaa2/dpaa2_rxtx.c +++ b/drivers/net/dpaa2/dpaa2_rxtx.c @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/net/dpaa2/dpaa2_sparser.c b/drivers/net/dpaa2/dpaa2_sparser.c index ba0d500f74..63463c4fbf 100644 --- a/drivers/net/dpaa2/dpaa2_sparser.c +++ b/drivers/net/dpaa2/dpaa2_sparser.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c index 409de50083..8ee9be12ad 100644 --- a/drivers/net/e1000/em_ethdev.c +++ b/drivers/net/e1000/em_ethdev.c @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include "e1000_logs.h" #include "base/e1000_api.h" diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c index 43979992d3..d6bcc5bf58 100644 --- a/drivers/net/e1000/igb_ethdev.c +++ b/drivers/net/e1000/igb_ethdev.c @@ -22,7 +22,7 @@ #include #include #include -#include +#include #include "e1000_logs.h" #include "base/e1000_api.h" diff --git a/drivers/net/e1000/igb_flow.c b/drivers/net/e1000/igb_flow.c index e46697b6a1..b775310651 100644 --- a/drivers/net/e1000/igb_flow.c +++ b/drivers/net/e1000/igb_flow.c @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/net/ena/ena_ethdev.h b/drivers/net/ena/ena_ethdev.h index 4709675af8..4d27fba585 100644 --- a/drivers/net/ena/ena_ethdev.h +++ b/drivers/net/ena/ena_ethdev.h @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include #include "ena_com.h" diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c index 998436e5e8..cdf0915591 100644 --- a/drivers/net/enic/enic_ethdev.c +++ b/drivers/net/enic/enic_ethdev.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/net/enic/enic_vf_representor.c b/drivers/net/enic/enic_vf_representor.c index 7312c411bd..46f85964e9 100644 --- a/drivers/net/enic/enic_vf_representor.c +++ b/drivers/net/enic/enic_vf_representor.c @@ -7,7 +7,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/net/failsafe/failsafe_private.h b/drivers/net/failsafe/failsafe_private.h index a80f5e2caf..53a451c1b1 100644 --- a/drivers/net/failsafe/failsafe_private.h +++ b/drivers/net/failsafe/failsafe_private.h @@ -11,7 +11,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c index 8bbd8b445d..7adb20bff9 100644 --- a/drivers/net/fm10k/fm10k_ethdev.c +++ b/drivers/net/fm10k/fm10k_ethdev.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 7bdc453ec1..67111ac251 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c index 506fcff6e3..ef2ab06475 100644 --- a/drivers/net/iavf/iavf_ethdev.c +++ b/drivers/net/iavf/iavf_ethdev.c @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include "iavf.h" #include "iavf_rxtx.h" diff --git a/drivers/net/iavf/iavf_vchnl.c b/drivers/net/iavf/iavf_vchnl.c index 21bd1e2193..15f695682d 100644 --- a/drivers/net/iavf/iavf_vchnl.c +++ b/drivers/net/iavf/iavf_vchnl.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include "iavf.h" #include "iavf_rxtx.h" diff --git a/drivers/net/ice/ice_dcf.c b/drivers/net/ice/ice_dcf.c index 885d58c0f4..1c3d22ae0f 100644 --- a/drivers/net/ice/ice_dcf.c +++ b/drivers/net/ice/ice_dcf.c @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include "ice_dcf.h" #include "ice_rxtx.h" diff --git a/drivers/net/ice/ice_dcf_ethdev.c b/drivers/net/ice/ice_dcf_ethdev.c index 0da267db1f..dee712af98 100644 --- a/drivers/net/ice/ice_dcf_ethdev.c +++ b/drivers/net/ice/ice_dcf_ethdev.c @@ -18,7 +18,7 @@ #include #include #include -#include +#include #include diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c index 552e41692c..04c9ce78a2 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c @@ -30,7 +30,7 @@ #include #include #include -#include +#include #include #ifdef RTE_LIB_SECURITY #include diff --git a/drivers/net/ixgbe/ixgbe_flow.c b/drivers/net/ixgbe/ixgbe_flow.c index 368342872a..67373a7b78 100644 --- a/drivers/net/ixgbe/ixgbe_flow.c +++ b/drivers/net/ixgbe/ixgbe_flow.c @@ -27,7 +27,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c index 910b76a92c..7e7e1824ef 100644 --- a/drivers/net/mlx4/mlx4.c +++ b/drivers/net/mlx4/mlx4.c @@ -31,7 +31,7 @@ #endif #include -#include +#include #include #include #include diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c index ccc06bdda6..d0bbc0a4c0 100644 --- a/drivers/net/netvsc/hn_ethdev.c +++ b/drivers/net/netvsc/hn_ethdev.c @@ -30,7 +30,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/netvsc/hn_nvs.c b/drivers/net/netvsc/hn_nvs.c index 817fb06dfb..7db82af9f3 100644 --- a/drivers/net/netvsc/hn_nvs.c +++ b/drivers/net/netvsc/hn_nvs.c @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include #include "hn_logs.h" diff --git a/drivers/net/netvsc/hn_rndis.c b/drivers/net/netvsc/hn_rndis.c index 20f75a17b0..e6f1f28768 100644 --- a/drivers/net/netvsc/hn_rndis.c +++ b/drivers/net/netvsc/hn_rndis.c @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #include "hn_logs.h" diff --git a/drivers/net/netvsc/hn_rxtx.c b/drivers/net/netvsc/hn_rxtx.c index 61cf374224..bc6f60c64a 100644 --- a/drivers/net/netvsc/hn_rxtx.c +++ b/drivers/net/netvsc/hn_rxtx.c @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/nfp/nfp_common.c b/drivers/net/nfp/nfp_common.c index 0e55f0c792..eaafe11fb9 100644 --- a/drivers/net/nfp/nfp_common.c +++ b/drivers/net/nfp/nfp_common.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 5cdd34e588..47359501bc 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -16,7 +16,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c index 9ada22e2ff..0eee191566 100644 --- a/drivers/net/octeontx/octeontx_ethdev.c +++ b/drivers/net/octeontx/octeontx_ethdev.c @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/qede/qede_ethdev.h b/drivers/net/qede/qede_ethdev.h index a38b701183..b781bcdcfd 100644 --- a/drivers/net/qede/qede_ethdev.h +++ b/drivers/net/qede/qede_ethdev.h @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include /* ecore includes */ diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c index 506c62a726..2ec743ebce 100644 --- a/drivers/net/sfc/sfc_ethdev.c +++ b/drivers/net/sfc/sfc_ethdev.c @@ -7,7 +7,7 @@ * for Solarflare) and Solarflare Communications, Inc. */ -#include +#include #include #include #include diff --git a/drivers/net/sfc/sfc_sw_stats.c b/drivers/net/sfc/sfc_sw_stats.c index 81f5aa3cc4..3ae5023b6f 100644 --- a/drivers/net/sfc/sfc_sw_stats.c +++ b/drivers/net/sfc/sfc_sw_stats.c @@ -2,7 +2,7 @@ * * Copyright(c) 2021 Xilinx, Inc. */ -#include +#include #include #include "sfc.h" diff --git a/drivers/net/sfc/sfc_sw_stats.h b/drivers/net/sfc/sfc_sw_stats.h index 1abded8018..d9738e5214 100644 --- a/drivers/net/sfc/sfc_sw_stats.h +++ b/drivers/net/sfc/sfc_sw_stats.h @@ -5,7 +5,7 @@ #ifndef _SFC_SW_STATS_H #define _SFC_SW_STATS_H -#include +#include #include "sfc.h" diff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c index 28183ec740..9f57cb1a20 100644 --- a/drivers/net/thunderx/nicvf_ethdev.c +++ b/drivers/net/thunderx/nicvf_ethdev.c @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/vdev_netvsc/vdev_netvsc.c b/drivers/net/vdev_netvsc/vdev_netvsc.c index dc90569df1..c3e045d892 100644 --- a/drivers/net/vdev_netvsc/vdev_netvsc.c +++ b/drivers/net/vdev_netvsc/vdev_netvsc.c @@ -27,7 +27,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c index d180162abd..edf3becd32 100644 --- a/drivers/net/virtio/virtio_ethdev.c +++ b/drivers/net/virtio/virtio_ethdev.c @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/net/virtio/virtio_pci_ethdev.c b/drivers/net/virtio/virtio_pci_ethdev.c index 2b9e35cef5..abc63b0935 100644 --- a/drivers/net/virtio/virtio_pci_ethdev.c +++ b/drivers/net/virtio/virtio_pci_ethdev.c @@ -16,7 +16,7 @@ #include #include -#include +#include #include #include "virtio.h" diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c index 101b1cb500..fd946dec5c 100644 --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c @@ -30,7 +30,7 @@ #include #include #include -#include +#include #include "base/vmxnet3_defs.h" diff --git a/drivers/raw/cnxk_bphy/cnxk_bphy.c b/drivers/raw/cnxk_bphy/cnxk_bphy.c index db029cbf34..909fb8faab 100644 --- a/drivers/raw/cnxk_bphy/cnxk_bphy.c +++ b/drivers/raw/cnxk_bphy/cnxk_bphy.c @@ -3,7 +3,7 @@ */ #include #include -#include +#include #include #include #include diff --git a/drivers/raw/skeleton/skeleton_rawdev.c b/drivers/raw/skeleton/skeleton_rawdev.c index 19b523a815..a06b724866 100644 --- a/drivers/raw/skeleton/skeleton_rawdev.c +++ b/drivers/raw/skeleton/skeleton_rawdev.c @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/raw/skeleton/skeleton_rawdev_test.c b/drivers/raw/skeleton/skeleton_rawdev_test.c index fc257c5f44..8ef7a6b127 100644 --- a/drivers/raw/skeleton/skeleton_rawdev_test.c +++ b/drivers/raw/skeleton/skeleton_rawdev_test.c @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/regex/mlx5/mlx5_regex_control.c b/drivers/regex/mlx5/mlx5_regex_control.c index 6ab62a12fc..92cf5f495e 100644 --- a/drivers/regex/mlx5/mlx5_regex_control.c +++ b/drivers/regex/mlx5/mlx5_regex_control.c @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include #include diff --git a/lib/compressdev/rte_compressdev.c b/lib/compressdev/rte_compressdev.c index 7f6dedbc52..639a0d66ca 100644 --- a/lib/compressdev/rte_compressdev.c +++ b/lib/compressdev/rte_compressdev.c @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include diff --git a/lib/compressdev/rte_compressdev_pmd.c b/lib/compressdev/rte_compressdev_pmd.c index 9bfae077db..41f1415bea 100644 --- a/lib/compressdev/rte_compressdev_pmd.c +++ b/lib/compressdev/rte_compressdev_pmd.c @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include "rte_compressdev_internal.h" diff --git a/lib/compressdev/rte_compressdev_pmd.h b/lib/compressdev/rte_compressdev_pmd.h index 9fabc399c5..72e52f876f 100644 --- a/lib/compressdev/rte_compressdev_pmd.h +++ b/lib/compressdev/rte_compressdev_pmd.h @@ -19,6 +19,7 @@ extern "C" { #include +#include #include "rte_compressdev.h" #include "rte_compressdev_internal.h" diff --git a/lib/cryptodev/cryptodev_pmd.c b/lib/cryptodev/cryptodev_pmd.c index 75d0075b86..f07b92dfd7 100644 --- a/lib/cryptodev/cryptodev_pmd.c +++ b/lib/cryptodev/cryptodev_pmd.c @@ -4,7 +4,7 @@ #include -#include +#include #include #include #include diff --git a/lib/cryptodev/cryptodev_pmd.h b/lib/cryptodev/cryptodev_pmd.h index 3dcc3cb7ed..96d7e225b0 100644 --- a/lib/cryptodev/cryptodev_pmd.h +++ b/lib/cryptodev/cryptodev_pmd.h @@ -19,6 +19,7 @@ extern "C" { #include +#include #include #include #include diff --git a/lib/cryptodev/rte_cryptodev.c b/lib/cryptodev/rte_cryptodev.c index 42f3221052..1dad092317 100644 --- a/lib/cryptodev/rte_cryptodev.c +++ b/lib/cryptodev/rte_cryptodev.c @@ -13,7 +13,7 @@ #include #include -#include +#include #include #include #include diff --git a/lib/dmadev/rte_dmadev_pmd.h b/lib/dmadev/rte_dmadev_pmd.h index 82ab7a8cc7..acd7f71cd1 100644 --- a/lib/dmadev/rte_dmadev_pmd.h +++ b/lib/dmadev/rte_dmadev_pmd.h @@ -14,7 +14,7 @@ * by any application. */ -#include +#include #include "rte_dmadev.h" diff --git a/lib/eal/common/eal_common_dev.c b/lib/eal/common/eal_common_dev.c index 16c5aef1d8..98f3c78795 100644 --- a/lib/eal/common/eal_common_dev.c +++ b/lib/eal/common/eal_common_dev.c @@ -9,7 +9,7 @@ #include #include -#include +#include #include #include #include diff --git a/lib/eal/include/dev_driver.h b/lib/eal/include/dev_driver.h new file mode 100644 index 0000000000..015188abd5 --- /dev/null +++ b/lib/eal/include/dev_driver.h @@ -0,0 +1,28 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright (c) 2022 Red Hat, Inc. + */ + +#ifndef DEV_DRIVER_H +#define DEV_DRIVER_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +/** + * A structure describing a device driver. + */ +struct rte_driver { + RTE_TAILQ_ENTRY(rte_driver) next; /**< Next in list. */ + const char *name; /**< Driver name. */ + const char *alias; /**< Driver alias. */ +}; + +#ifdef __cplusplus +} +#endif + +#endif /* DEV_DRIVER_H */ diff --git a/lib/eal/include/meson.build b/lib/eal/include/meson.build index 77d8621a51..cfcd40aaed 100644 --- a/lib/eal/include/meson.build +++ b/lib/eal/include/meson.build @@ -57,6 +57,7 @@ headers += files( driver_sdk_headers = files( 'bus_driver.h', + 'dev_driver.h', ) # special case install the generic headers, since they go in a subdir diff --git a/lib/eal/include/rte_dev.h b/lib/eal/include/rte_dev.h index fedf67fba1..38057cc0ef 100644 --- a/lib/eal/include/rte_dev.h +++ b/lib/eal/include/rte_dev.h @@ -23,6 +23,8 @@ extern "C" { #include #include +struct rte_driver; + /** * The device event type. */ @@ -53,27 +55,14 @@ struct rte_mem_resource { void *addr; /**< Virtual address, NULL when not mapped. */ }; -/** - * A structure describing a device driver. - */ -struct rte_driver { - RTE_TAILQ_ENTRY(rte_driver) next; /**< Next in list. */ - const char *name; /**< Driver name. */ - const char *alias; /**< Driver alias. */ -}; - /** * Retrieve a driver name. * - * @warning - * @b EXPERIMENTAL: this API may change without prior notice - * * @param driver * A pointer to a driver structure. * @return * A pointer to the driver name string. */ -__rte_experimental const char * rte_driver_name(const struct rte_driver *driver); diff --git a/lib/eal/version.map b/lib/eal/version.map index d10fd89458..8b53a1d258 100644 --- a/lib/eal/version.map +++ b/lib/eal/version.map @@ -37,6 +37,7 @@ DPDK_23 { rte_devargs_parsef; rte_devargs_remove; rte_devargs_type_count; + rte_driver_name; rte_dump_physmem_layout; rte_dump_stack; rte_dump_tailq; @@ -423,9 +424,6 @@ EXPERIMENTAL { rte_thread_self; rte_thread_set_affinity_by_id; rte_thread_set_priority; - - # added in 22.11 - rte_driver_name; }; INTERNAL { diff --git a/lib/ethdev/ethdev_driver.h b/lib/ethdev/ethdev_driver.h index 5101868ea7..47a55a419e 100644 --- a/lib/ethdev/ethdev_driver.h +++ b/lib/ethdev/ethdev_driver.h @@ -19,6 +19,7 @@ extern "C" { * */ +#include #include /** diff --git a/lib/eventdev/eventdev_pmd.h b/lib/eventdev/eventdev_pmd.h index 69402668d8..def6cd0876 100644 --- a/lib/eventdev/eventdev_pmd.h +++ b/lib/eventdev/eventdev_pmd.h @@ -22,7 +22,7 @@ extern "C" { #include #include #include -#include +#include #include #include #include diff --git a/lib/eventdev/rte_event_crypto_adapter.c b/lib/eventdev/rte_event_crypto_adapter.c index 7c695176f4..5bc10312fc 100644 --- a/lib/eventdev/rte_event_crypto_adapter.c +++ b/lib/eventdev/rte_event_crypto_adapter.c @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/lib/eventdev/rte_event_eth_rx_adapter.c b/lib/eventdev/rte_event_eth_rx_adapter.c index bf8741d2ea..4f4efdae9f 100644 --- a/lib/eventdev/rte_event_eth_rx_adapter.c +++ b/lib/eventdev/rte_event_eth_rx_adapter.c @@ -9,7 +9,7 @@ #include #include -#include +#include #include #include #include diff --git a/lib/eventdev/rte_eventdev.c b/lib/eventdev/rte_eventdev.c index 1dc4f966be..54abee2b3f 100644 --- a/lib/eventdev/rte_eventdev.c +++ b/lib/eventdev/rte_eventdev.c @@ -12,7 +12,7 @@ #include #include -#include +#include #include #include #include diff --git a/lib/gpudev/gpudev_driver.h b/lib/gpudev/gpudev_driver.h index 0e55b00bfe..23972b3dbd 100644 --- a/lib/gpudev/gpudev_driver.h +++ b/lib/gpudev/gpudev_driver.h @@ -14,7 +14,7 @@ #include #include -#include +#include #include "rte_gpudev.h" diff --git a/lib/mempool/rte_mempool_ops.c b/lib/mempool/rte_mempool_ops.c index d60235a7e3..058ad147a5 100644 --- a/lib/mempool/rte_mempool_ops.c +++ b/lib/mempool/rte_mempool_ops.c @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include "rte_mempool_trace.h" diff --git a/lib/pcapng/rte_pcapng.c b/lib/pcapng/rte_pcapng.c index 72aabd4dd0..af2b814251 100644 --- a/lib/pcapng/rte_pcapng.c +++ b/lib/pcapng/rte_pcapng.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/lib/rawdev/rte_rawdev.c b/lib/rawdev/rte_rawdev.c index 2f0a4f132e..bc51258143 100644 --- a/lib/rawdev/rte_rawdev.c +++ b/lib/rawdev/rte_rawdev.c @@ -12,7 +12,7 @@ #include #include -#include +#include #include #include #include diff --git a/lib/rawdev/rte_rawdev_pmd.h b/lib/rawdev/rte_rawdev_pmd.h index 3b7be57d3e..a51944c8ff 100644 --- a/lib/rawdev/rte_rawdev_pmd.h +++ b/lib/rawdev/rte_rawdev_pmd.h @@ -19,7 +19,7 @@ extern "C" { #include -#include +#include #include #include #include diff --git a/lib/security/rte_security.c b/lib/security/rte_security.c index 046b6496d2..d036ed33f6 100644 --- a/lib/security/rte_security.c +++ b/lib/security/rte_security.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include "rte_security.h" #include "rte_security_driver.h" From patchwork Thu Jul 28 15:26:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114395 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7586BA00C5; Thu, 28 Jul 2022 17:29:30 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C89DE42BF2; Thu, 28 Jul 2022 17:28:57 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 326E142C21 for ; Thu, 28 Jul 2022 17:28:56 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022135; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2Cj576KQLb3aTfM4FsnkzM4A39T7kWpwB10FPHDLwy8=; b=QL3PZb6gj53lna7N71MvvVitGKtQ9UfZ8BEuIPfCVjZfTkfuSzlwR++NRPqCwP4QutIoAf ewx3+OYcgj9zCe/hGGfNXNxYyYdxEMT+nQtUvIhFUAg35QLtTucYXoe2bTE06BeTf9+4hB Fuf2XFckTT0TJZ4MzkQAcF5fCsbtXfs= 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-27-eXfKMsxwMbuPbFRJV6ZqEQ-1; Thu, 28 Jul 2022 11:28:50 -0400 X-MC-Unique: eXfKMsxwMbuPbFRJV6ZqEQ-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 0E81F8037AC; Thu, 28 Jul 2022 15:28:50 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 185FD1415118; Thu, 28 Jul 2022 15:28:47 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Maryam Tahhan , Reshma Pattan , Aman Singh , Yuying Zhang , Maxime Coquelin , Chenbo Xia , Ray Kinsella , Thomas Monjalon , Ferruh Yigit , Andrew Rybchenko Subject: [RFC v3 24/26] dev: introduce device accessors Date: Thu, 28 Jul 2022 17:26:38 +0200 Message-Id: <20220728152640.547725-25-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 Prepare for making the device object opaque by adding accessors. Update existing "external" users. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- Changes since RFC v2: - added rte_dev_devargs, - updated testpmd, --- app/proc-info/main.c | 6 +-- app/test-pmd/config.c | 18 +++---- app/test-pmd/testpmd.c | 6 +-- examples/ethtool/lib/rte_ethtool.c | 2 +- examples/l3fwd/l3fwd_em.c | 4 +- examples/l3fwd/l3fwd_fib.c | 8 +-- examples/l3fwd/l3fwd_lpm.c | 4 +- examples/vdpa/main.c | 16 +++--- lib/eal/common/eal_common_dev.c | 30 ++++++++++++ lib/eal/include/rte_dev.h | 78 ++++++++++++++++++++++++++++++ lib/eal/version.map | 7 +++ lib/ethdev/rte_ethdev.h | 2 +- 12 files changed, 148 insertions(+), 33 deletions(-) diff --git a/app/proc-info/main.c b/app/proc-info/main.c index 1bfba5f60d..d52ac8a038 100644 --- a/app/proc-info/main.c +++ b/app/proc-info/main.c @@ -755,7 +755,7 @@ show_port(void) } printf("\t -- driver %s device %s socket %d\n", - dev_info.driver_name, dev_info.device->name, + dev_info.driver_name, rte_dev_name(dev_info.device), rte_eth_dev_socket_id(i)); ret = rte_eth_dev_owner_get(i, &owner); @@ -1254,7 +1254,7 @@ show_crypto(void) rte_cryptodev_name_get(i), dev_info.driver_name, dev_info.driver_id, - dev_info.device->numa_node, + rte_dev_numa_node(dev_info.device), rte_cryptodev_queue_pair_count(i)); display_crypto_feature_info(dev_info.feature_flags); @@ -1466,7 +1466,7 @@ dump_regs(char *file_prefix) else printf("Device (%s) regs dumped successfully, " "driver:%s version:0X%08X\n", - dev_info.device->name, + rte_dev_name(dev_info.device), dev_info.driver_name, reg_info.version); fclose(fp_regs); diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 6510f29c76..de74690f06 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -645,19 +645,19 @@ device_infos_display(const char *identifier) snprintf(devstr, sizeof(devstr), "bus=%s", rte_bus_name(next)); RTE_DEV_FOREACH(dev, devstr, &dev_iter) { - if (!dev->driver) + if (rte_dev_driver(dev) == NULL) continue; /* Check for matching device if identifier is present */ if (identifier && - strncmp(da.name, dev->name, strlen(dev->name))) + strncmp(da.name, rte_dev_name(dev), strlen(rte_dev_name(dev)))) continue; printf("\n%s Infos for device %s %s\n", - info_border, dev->name, info_border); - printf("Bus name: %s", rte_bus_name(dev->bus)); - printf("\nDriver name: %s", rte_driver_name(dev->driver)); + info_border, rte_dev_name(dev), info_border); + printf("Bus name: %s", rte_bus_name(rte_dev_bus(dev))); + printf("\nDriver name: %s", rte_driver_name(rte_dev_driver(dev))); printf("\nDevargs: %s", - dev->devargs ? dev->devargs->args : ""); - printf("\nConnect to socket: %d", dev->numa_node); + rte_dev_devargs(dev) ? rte_dev_devargs(dev)->args : ""); + printf("\nConnect to socket: %d", rte_dev_numa_node(dev)); printf("\n"); /* List ports with matching device name */ @@ -802,8 +802,8 @@ port_infos_display(portid_t port_id) else printf("\nFirmware-version: %s", "not available"); - if (dev_info.device->devargs && dev_info.device->devargs->args) - printf("\nDevargs: %s", dev_info.device->devargs->args); + if (rte_dev_devargs(dev_info.device) && rte_dev_devargs(dev_info.device)->args) + printf("\nDevargs: %s", rte_dev_devargs(dev_info.device)->args); printf("\nConnect to socket: %u", port->socket_id); if (port_numa[port_id] != NUMA_NO_CONFIG) { diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index c7d1fa2719..a399193e53 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -1057,7 +1057,7 @@ dma_unmap_cb(struct rte_mempool *mp __rte_unused, void *opaque __rte_unused, TESTPMD_LOG(DEBUG, "unable to DMA unmap addr 0x%p " "for device %s\n", - memhdr->addr, dev_info.device->name); + memhdr->addr, rte_dev_name(dev_info.device)); } } ret = rte_extmem_unregister(memhdr->addr, memhdr->len); @@ -1098,7 +1098,7 @@ dma_map_cb(struct rte_mempool *mp __rte_unused, void *opaque __rte_unused, TESTPMD_LOG(DEBUG, "unable to DMA map addr 0x%p " "for device %s\n", - memhdr->addr, dev_info.device->name); + memhdr->addr, rte_dev_name(dev_info.device)); } } } @@ -3441,7 +3441,7 @@ detach_device(struct rte_device *dev) } if (rte_dev_remove(dev) < 0) { - TESTPMD_LOG(ERR, "Failed to detach device %s\n", dev->name); + TESTPMD_LOG(ERR, "Failed to detach device %s\n", rte_dev_name(dev)); return; } remove_invalid_ports(); diff --git a/examples/ethtool/lib/rte_ethtool.c b/examples/ethtool/lib/rte_ethtool.c index 88dc917b73..33acc5e3cc 100644 --- a/examples/ethtool/lib/rte_ethtool.c +++ b/examples/ethtool/lib/rte_ethtool.c @@ -49,7 +49,7 @@ rte_ethtool_get_drvinfo(uint16_t port_id, struct ethtool_drvinfo *drvinfo) strlcpy(drvinfo->driver, dev_info.driver_name, sizeof(drvinfo->driver)); strlcpy(drvinfo->version, rte_version(), sizeof(drvinfo->version)); - strlcpy(drvinfo->bus_info, dev_info.device->name, + strlcpy(drvinfo->bus_info, rte_dev_name(dev_info.device), sizeof(drvinfo->bus_info)); memset(®_info, 0, sizeof(reg_info)); diff --git a/examples/l3fwd/l3fwd_em.c b/examples/l3fwd/l3fwd_em.c index 10be24c61d..0531282a1f 100644 --- a/examples/l3fwd/l3fwd_em.c +++ b/examples/l3fwd/l3fwd_em.c @@ -403,7 +403,7 @@ populate_ipv4_flow_into_table(const struct rte_hash *h) em_route_base_v4[i].v4_key.port_dst, em_route_base_v4[i].v4_key.port_src, em_route_base_v4[i].v4_key.proto, - em_route_base_v4[i].if_out, dev_info.device->name); + em_route_base_v4[i].if_out, rte_dev_name(dev_info.device)); } printf("Hash: Adding 0x%" PRIx64 " keys\n", (uint64_t)route_num_v4); @@ -455,7 +455,7 @@ populate_ipv6_flow_into_table(const struct rte_hash *h) em_route_base_v6[i].v6_key.port_dst, em_route_base_v6[i].v6_key.port_src, em_route_base_v6[i].v6_key.proto, - em_route_base_v6[i].if_out, dev_info.device->name); + em_route_base_v6[i].if_out, rte_dev_name(dev_info.device)); } printf("Hash: Adding 0x%" PRIx64 "keys\n", (uint64_t)route_num_v6); diff --git a/examples/l3fwd/l3fwd_fib.c b/examples/l3fwd/l3fwd_fib.c index e02e4b3f5a..b82e0c0354 100644 --- a/examples/l3fwd/l3fwd_fib.c +++ b/examples/l3fwd/l3fwd_fib.c @@ -640,11 +640,11 @@ setup_fib(const int socketid) printf("FIB: Adding route %s / %d (%d) [%s]\n", abuf, route_base_v4[i].depth, route_base_v4[i].if_out, - dev_info.device->name); + rte_dev_name(dev_info.device)); } else { printf("FIB: IPv4 route added to port %d [%s]\n", route_base_v4[i].if_out, - dev_info.device->name); + rte_dev_name(dev_info.device)); } } /* >8 End of setup fib. */ @@ -695,11 +695,11 @@ setup_fib(const int socketid) printf("FIB: Adding route %s / %d (%d) [%s]\n", abuf, route_base_v6[i].depth, route_base_v6[i].if_out, - dev_info.device->name); + rte_dev_name(dev_info.device)); } else { printf("FIB: IPv6 route added to port %d [%s]\n", route_base_v6[i].if_out, - dev_info.device->name); + rte_dev_name(dev_info.device)); } } } diff --git a/examples/l3fwd/l3fwd_lpm.c b/examples/l3fwd/l3fwd_lpm.c index d1b850dd5b..22d7f61a42 100644 --- a/examples/l3fwd/l3fwd_lpm.c +++ b/examples/l3fwd/l3fwd_lpm.c @@ -598,7 +598,7 @@ setup_lpm(const int socketid) printf("LPM: Adding route %s / %d (%d) [%s]\n", inet_ntop(AF_INET, &in, abuf, sizeof(abuf)), route_base_v4[i].depth, - route_base_v4[i].if_out, dev_info.device->name); + route_base_v4[i].if_out, rte_dev_name(dev_info.device)); } /* create the LPM6 table */ @@ -642,7 +642,7 @@ setup_lpm(const int socketid) inet_ntop(AF_INET6, route_base_v6[i].ip_8, abuf, sizeof(abuf)), route_base_v6[i].depth, - route_base_v6[i].if_out, dev_info.device->name); + route_base_v6[i].if_out, rte_dev_name(dev_info.device)); } } diff --git a/examples/vdpa/main.c b/examples/vdpa/main.c index 7e11ef4e26..ee240dd15a 100644 --- a/examples/vdpa/main.c +++ b/examples/vdpa/main.c @@ -119,7 +119,7 @@ new_device(int vid) "Failed to get generic device for port %d\n", i); continue; } - printf("\nnew port %s, device : %s\n", ifname, dev->name); + printf("\nnew port %s, device : %s\n", ifname, rte_dev_name(dev)); vports[i].vid = vid; break; } @@ -149,7 +149,7 @@ destroy_device(int vid) continue; } - printf("\ndestroy port %s, device: %s\n", ifname, dev->name); + printf("\ndestroy port %s, device: %s\n", ifname, rte_dev_name(dev)); break; } } @@ -353,23 +353,23 @@ static void cmd_list_vdpa_devices_parsed( cmdline_printf(cl, "device name\tqueue num\tsupported features\n"); RTE_DEV_FOREACH(dev, "class=vdpa", &dev_iter) { - vdev = rte_vdpa_find_device_by_name(dev->name); + vdev = rte_vdpa_find_device_by_name(rte_dev_name(dev)); if (!vdev) continue; if (rte_vdpa_get_queue_num(vdev, &queue_num) < 0) { RTE_LOG(ERR, VDPA, "failed to get vdpa queue number " - "for device %s.\n", dev->name); + "for device %s.\n", rte_dev_name(dev)); continue; } if (rte_vdpa_get_features(vdev, &features) < 0) { RTE_LOG(ERR, VDPA, "failed to get vdpa features " - "for device %s.\n", dev->name); + "for device %s.\n", rte_dev_name(dev)); continue; } cmdline_printf(cl, "%s\t\t%" PRIu32 "\t\t0x%" PRIx64 "\n", - dev->name, queue_num, features); + rte_dev_name(dev), queue_num, features); } } @@ -606,10 +606,10 @@ main(int argc, char *argv[]) cmdline_stdin_exit(cl); } else { RTE_DEV_FOREACH(dev, "class=vdpa", &dev_iter) { - vdev = rte_vdpa_find_device_by_name(dev->name); + vdev = rte_vdpa_find_device_by_name(rte_dev_name(dev)); if (vdev == NULL) { rte_panic("Failed to find vDPA dev for %s\n", - dev->name); + rte_dev_name(dev)); } vports[devcnt].dev = vdev; snprintf(vports[devcnt].ifname, MAX_PATH_LEN, "%s%d", diff --git a/lib/eal/common/eal_common_dev.c b/lib/eal/common/eal_common_dev.c index 98f3c78795..7b12d6e531 100644 --- a/lib/eal/common/eal_common_dev.c +++ b/lib/eal/common/eal_common_dev.c @@ -25,6 +25,36 @@ rte_driver_name(const struct rte_driver *driver) return driver->name; } +const struct rte_bus * +rte_dev_bus(const struct rte_device *dev) +{ + return dev->bus; +} + +const struct rte_devargs * +rte_dev_devargs(const struct rte_device *dev) +{ + return dev->devargs; +} + +const struct rte_driver * +rte_dev_driver(const struct rte_device *dev) +{ + return dev->driver; +} + +const char * +rte_dev_name(const struct rte_device *dev) +{ + return dev->name; +} + +int +rte_dev_numa_node(const struct rte_device *dev) +{ + return dev->numa_node; +} + /** * The device event callback description. * diff --git a/lib/eal/include/rte_dev.h b/lib/eal/include/rte_dev.h index 38057cc0ef..5f671a05f7 100644 --- a/lib/eal/include/rte_dev.h +++ b/lib/eal/include/rte_dev.h @@ -23,6 +23,9 @@ extern "C" { #include #include +struct rte_bus; +struct rte_devargs; +struct rte_device; struct rte_driver; /** @@ -66,6 +69,81 @@ struct rte_mem_resource { const char * rte_driver_name(const struct rte_driver *driver); +/** + * Retrieve a device bus. + * + * @warning + * @b EXPERIMENTAL: this API may change without prior notice + * + * @param dev + * A pointer to a device structure. + * @return + * A pointer to this device bus. + */ +__rte_experimental +const struct rte_bus * +rte_dev_bus(const struct rte_device *dev); + +/** + * Retrieve a device arguments. + * + * @warning + * @b EXPERIMENTAL: this API may change without prior notice + * + * @param dev + * A pointer to a device structure. + * @return + * A pointer to this device devargs. + */ +__rte_experimental +const struct rte_devargs * +rte_dev_devargs(const struct rte_device *dev); + +/** + * Retrieve a device driver. + * + * @warning + * @b EXPERIMENTAL: this API may change without prior notice + * + * @param dev + * A pointer to a device structure. + * @return + * A pointer to this device driver. + */ +__rte_experimental +const struct rte_driver * +rte_dev_driver(const struct rte_device *dev); + +/** + * Retrieve a device name. + * + * @warning + * @b EXPERIMENTAL: this API may change without prior notice + * + * @param dev + * A pointer to a device structure. + * @return + * A pointer to this device name. + */ +__rte_experimental +const char * +rte_dev_name(const struct rte_device *dev); + +/** + * Retrieve a device numa node. + * + * @warning + * @b EXPERIMENTAL: this API may change without prior notice + * + * @param dev + * A pointer to a device structure. + * @return + * A pointer to this device numa node. + */ +__rte_experimental +int +rte_dev_numa_node(const struct rte_device *dev); + /* * Internal identifier length * Sufficiently large to allow for UUID or PCI address diff --git a/lib/eal/version.map b/lib/eal/version.map index 8b53a1d258..719789b8d1 100644 --- a/lib/eal/version.map +++ b/lib/eal/version.map @@ -424,6 +424,13 @@ EXPERIMENTAL { rte_thread_self; rte_thread_set_affinity_by_id; rte_thread_set_priority; + + # added in 22.11 + rte_dev_bus; + rte_dev_devargs; + rte_dev_driver; + rte_dev_name; + rte_dev_numa_node; }; INTERNAL { diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h index e9574f646f..2197525315 100644 --- a/lib/ethdev/rte_ethdev.h +++ b/lib/ethdev/rte_ethdev.h @@ -3380,7 +3380,7 @@ int rte_eth_macaddrs_get(uint16_t port_id, struct rte_ether_addr *ma, * exists for the device and the rte_eth_dev 'dev' has been populated * successfully with a call to it: * - * driver_name = rte_driver_name(dev->device->driver) + * driver_name = rte_driver_name(rte_dev_driver(dev->device)); * nb_rx_queues = dev->data->nb_rx_queues * nb_tx_queues = dev->data->nb_tx_queues * dev_flags = &dev->data->dev_flags From patchwork Thu Jul 28 15:26:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114396 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9A0A7A00C5; Thu, 28 Jul 2022 17:29:36 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AC47D42C25; Thu, 28 Jul 2022 17:28:59 +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 89BBE42BEB for ; Thu, 28 Jul 2022 17:28:58 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022138; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wwiWLIlIVpKZCU5FAI9ovzPmJIQwdFpy73PhuRXOIHU=; b=evJ/z/qwoskMjY96rZspBP4LxSXCChjWRKv68BfXmbwgwXxu4l4DOZTlq6gltIGVC/cHGp uwjVDkBwjqCNtgVVpSV0G5rTal/16+iLqOZD/wKQxIDsgjJ8HS2AXw+a05EY/IEQw5ffAn 6hQe89WL+WHa8UyEKdPrJmkfBfkTC/4= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-620-Dmdhtv4AMSq9a8WLRohviw-1; Thu, 28 Jul 2022 11:28:54 -0400 X-MC-Unique: Dmdhtv4AMSq9a8WLRohviw-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 6F1F93C1014D; Thu, 28 Jul 2022 15:28:54 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 81FC11415121; Thu, 28 Jul 2022 15:28:53 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Aman Singh , Yuying Zhang , Ray Kinsella Subject: [RFC v3 25/26] dev: provide Bus specific information Date: Thu, 28 Jul 2022 17:26:39 +0200 Message-Id: <20220728152640.547725-26-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 For diagnostic, it may be useful to provide a description of the device with Bus specific information like, for PCI, the vendor and device ID. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- app/test-pmd/config.c | 2 ++ drivers/bus/pci/bsd/pci.c | 8 ++++---- drivers/bus/pci/bus_pci_driver.h | 1 + drivers/bus/pci/linux/pci.c | 24 ++++++++++++------------ drivers/bus/pci/pci_common.c | 17 +++++++++++++++-- drivers/bus/pci/private.h | 10 ++++++++-- drivers/bus/pci/windows/pci.c | 6 +++--- lib/eal/common/eal_common_dev.c | 6 ++++++ lib/eal/include/rte_dev.h | 16 ++++++++++++++++ lib/eal/version.map | 1 + 10 files changed, 68 insertions(+), 23 deletions(-) diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index de74690f06..d3e1714af5 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -654,6 +654,8 @@ device_infos_display(const char *identifier) printf("\n%s Infos for device %s %s\n", info_border, rte_dev_name(dev), info_border); printf("Bus name: %s", rte_bus_name(rte_dev_bus(dev))); + printf("\nBus information: %s", + rte_dev_bus_info(dev) ? rte_dev_bus_info(dev) : ""); printf("\nDriver name: %s", rte_driver_name(rte_dev_driver(dev))); printf("\nDevargs: %s", rte_dev_devargs(dev) ? rte_dev_devargs(dev)->args : ""); diff --git a/drivers/bus/pci/bsd/pci.c b/drivers/bus/pci/bsd/pci.c index bc560a2a56..844d145fed 100644 --- a/drivers/bus/pci/bsd/pci.c +++ b/drivers/bus/pci/bsd/pci.c @@ -248,7 +248,7 @@ pci_scan_one(int dev_pci_fd, struct pci_conf *conf) /* FreeBSD has no NUMA support (yet) */ dev->device.numa_node = 0; - pci_name_set(dev); + pci_common_set(dev); /* FreeBSD has only one pass through driver */ dev->kdrv = RTE_PCI_KDRV_NIC_UIO; @@ -299,11 +299,11 @@ pci_scan_one(int dev_pci_fd, struct pci_conf *conf) } else { /* already registered */ dev2->kdrv = dev->kdrv; dev2->max_vfs = dev->max_vfs; - pci_name_set(dev2); + pci_common_set(dev2); memmove(dev2->mem_resource, dev->mem_resource, sizeof(dev->mem_resource)); - free(dev); + pci_free(dev); } return 0; } @@ -313,7 +313,7 @@ pci_scan_one(int dev_pci_fd, struct pci_conf *conf) return 0; skipdev: - free(dev); + pci_free(dev); return 0; } diff --git a/drivers/bus/pci/bus_pci_driver.h b/drivers/bus/pci/bus_pci_driver.h index 0f2f9b5101..be32263a82 100644 --- a/drivers/bus/pci/bus_pci_driver.h +++ b/drivers/bus/pci/bus_pci_driver.h @@ -43,6 +43,7 @@ struct rte_pci_device { uint16_t max_vfs; /**< sriov enable if not zero */ enum rte_pci_kernel_driver kdrv; /**< Kernel driver passthrough */ char name[PCI_PRI_STR_SIZE+1]; /**< PCI location (ASCII) */ + char *bus_info; /**< PCI bus specific info */ struct rte_intr_handle *vfio_req_intr_handle; /**< Handler of VFIO request interrupt */ }; diff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c index fa5d5e131d..c8703d52f3 100644 --- a/drivers/bus/pci/linux/pci.c +++ b/drivers/bus/pci/linux/pci.c @@ -226,7 +226,7 @@ pci_scan_one(const char *dirname, const struct rte_pci_addr *addr) /* get vendor id */ snprintf(filename, sizeof(filename), "%s/vendor", dirname); if (eal_parse_sysfs_value(filename, &tmp) < 0) { - free(dev); + pci_free(dev); return -1; } dev->id.vendor_id = (uint16_t)tmp; @@ -234,7 +234,7 @@ pci_scan_one(const char *dirname, const struct rte_pci_addr *addr) /* get device id */ snprintf(filename, sizeof(filename), "%s/device", dirname); if (eal_parse_sysfs_value(filename, &tmp) < 0) { - free(dev); + pci_free(dev); return -1; } dev->id.device_id = (uint16_t)tmp; @@ -243,7 +243,7 @@ pci_scan_one(const char *dirname, const struct rte_pci_addr *addr) snprintf(filename, sizeof(filename), "%s/subsystem_vendor", dirname); if (eal_parse_sysfs_value(filename, &tmp) < 0) { - free(dev); + pci_free(dev); return -1; } dev->id.subsystem_vendor_id = (uint16_t)tmp; @@ -252,7 +252,7 @@ pci_scan_one(const char *dirname, const struct rte_pci_addr *addr) snprintf(filename, sizeof(filename), "%s/subsystem_device", dirname); if (eal_parse_sysfs_value(filename, &tmp) < 0) { - free(dev); + pci_free(dev); return -1; } dev->id.subsystem_device_id = (uint16_t)tmp; @@ -261,7 +261,7 @@ pci_scan_one(const char *dirname, const struct rte_pci_addr *addr) snprintf(filename, sizeof(filename), "%s/class", dirname); if (eal_parse_sysfs_value(filename, &tmp) < 0) { - free(dev); + pci_free(dev); return -1; } /* the least 24 bits are valid: class, subclass, program interface */ @@ -295,13 +295,13 @@ pci_scan_one(const char *dirname, const struct rte_pci_addr *addr) dev->device.numa_node = 0; } - pci_name_set(dev); + pci_common_set(dev); /* parse resources */ snprintf(filename, sizeof(filename), "%s/resource", dirname); if (pci_parse_sysfs_resource(filename, dev) < 0) { RTE_LOG(ERR, EAL, "%s(): cannot parse resource\n", __func__); - free(dev); + pci_free(dev); return -1; } @@ -310,7 +310,7 @@ pci_scan_one(const char *dirname, const struct rte_pci_addr *addr) ret = pci_get_kernel_driver_by_path(filename, driver, sizeof(driver)); if (ret < 0) { RTE_LOG(ERR, EAL, "Fail to get kernel driver\n"); - free(dev); + pci_free(dev); return -1; } @@ -324,7 +324,7 @@ pci_scan_one(const char *dirname, const struct rte_pci_addr *addr) else dev->kdrv = RTE_PCI_KDRV_UNKNOWN; } else { - free(dev); + pci_free(dev); return 0; } /* device is valid, add in list (sorted) */ @@ -346,7 +346,7 @@ pci_scan_one(const char *dirname, const struct rte_pci_addr *addr) dev2->kdrv = dev->kdrv; dev2->max_vfs = dev->max_vfs; dev2->id = dev->id; - pci_name_set(dev2); + pci_common_set(dev2); memmove(dev2->mem_resource, dev->mem_resource, sizeof(dev->mem_resource)); @@ -376,10 +376,10 @@ pci_scan_one(const char *dirname, const struct rte_pci_addr *addr) else if (dev2->device.devargs != dev->device.devargs) { rte_devargs_remove(dev2->device.devargs); - pci_name_set(dev2); + pci_common_set(dev2); } } - free(dev); + pci_free(dev); } return 0; } diff --git a/drivers/bus/pci/pci_common.c b/drivers/bus/pci/pci_common.c index c26aacd364..0f344d46aa 100644 --- a/drivers/bus/pci/pci_common.c +++ b/drivers/bus/pci/pci_common.c @@ -59,7 +59,7 @@ pci_devargs_lookup(const struct rte_pci_addr *pci_addr) } void -pci_name_set(struct rte_pci_device *dev) +pci_common_set(struct rte_pci_device *dev) { struct rte_devargs *devargs; @@ -80,6 +80,19 @@ pci_name_set(struct rte_pci_device *dev) else /* Otherwise, it uses the internal, canonical form. */ dev->device.name = dev->name; + + if (asprintf(&dev->bus_info, "vendor_id=%"PRIx16", device_id=%"PRIx16, + dev->id.vendor_id, dev->id.device_id) != -1) + dev->device.bus_info = dev->bus_info; +} + +void +pci_free(struct rte_pci_device *dev) +{ + if (dev == NULL) + return; + free(dev->bus_info); + free(dev); } /* map a particular resource from a file */ @@ -604,7 +617,7 @@ pci_unplug(struct rte_device *dev) if (ret == 0) { rte_pci_remove_device(pdev); rte_devargs_remove(dev->devargs); - free(pdev); + pci_free(pdev); } return ret; } diff --git a/drivers/bus/pci/private.h b/drivers/bus/pci/private.h index fddf49251d..c8161a1074 100644 --- a/drivers/bus/pci/private.h +++ b/drivers/bus/pci/private.h @@ -44,10 +44,16 @@ struct rte_pci_device; int rte_pci_scan(void); /** - * Find the name of a PCI device. + * Set common internal information for a PCI device. */ void -pci_name_set(struct rte_pci_device *dev); +pci_common_set(struct rte_pci_device *dev); + +/** + * Free a PCI device. + */ +void +pci_free(struct rte_pci_device *dev); /** * Validate whether a device with given PCI address should be ignored or not. diff --git a/drivers/bus/pci/windows/pci.c b/drivers/bus/pci/windows/pci.c index f013b743b3..3f7a8b9432 100644 --- a/drivers/bus/pci/windows/pci.c +++ b/drivers/bus/pci/windows/pci.c @@ -382,7 +382,7 @@ pci_scan_one(HDEVINFO dev_info, PSP_DEVINFO_DATA device_info_data) dev->id = pci_id; dev->max_vfs = 0; /* TODO: get max_vfs */ - pci_name_set(dev); + pci_common_set(dev); set_kernel_driver_type(device_info_data, dev); @@ -410,7 +410,7 @@ pci_scan_one(HDEVINFO dev_info, PSP_DEVINFO_DATA device_info_data) dev2->max_vfs = dev->max_vfs; memmove(dev2->mem_resource, dev->mem_resource, sizeof(dev->mem_resource)); - free(dev); + pci_free(dev); } return 0; } @@ -419,7 +419,7 @@ pci_scan_one(HDEVINFO dev_info, PSP_DEVINFO_DATA device_info_data) return 0; end: - free(dev); + pci_free(dev); return ret; } diff --git a/lib/eal/common/eal_common_dev.c b/lib/eal/common/eal_common_dev.c index 7b12d6e531..a190bd37af 100644 --- a/lib/eal/common/eal_common_dev.c +++ b/lib/eal/common/eal_common_dev.c @@ -31,6 +31,12 @@ rte_dev_bus(const struct rte_device *dev) return dev->bus; } +const char * +rte_dev_bus_info(const struct rte_device *dev) +{ + return dev->bus_info; +} + const struct rte_devargs * rte_dev_devargs(const struct rte_device *dev) { diff --git a/lib/eal/include/rte_dev.h b/lib/eal/include/rte_dev.h index 5f671a05f7..be8bbe79ee 100644 --- a/lib/eal/include/rte_dev.h +++ b/lib/eal/include/rte_dev.h @@ -84,6 +84,21 @@ __rte_experimental const struct rte_bus * rte_dev_bus(const struct rte_device *dev); +/** + * Retrieve bus specific information for a device. + * + * @warning + * @b EXPERIMENTAL: this API may change without prior notice + * + * @param dev + * A pointer to a device structure. + * @return + * A string describing this device or NULL if none is available. + */ +__rte_experimental +const char * +rte_dev_bus_info(const struct rte_device *dev); + /** * Retrieve a device arguments. * @@ -156,6 +171,7 @@ rte_dev_numa_node(const struct rte_device *dev); struct rte_device { RTE_TAILQ_ENTRY(rte_device) next; /**< Next device */ const char *name; /**< Device name */ + const char *bus_info; /**< Device bus specific information */ const struct rte_driver *driver; /**< Driver assigned after probing */ const struct rte_bus *bus; /**< Bus handle assigned on scan */ int numa_node; /**< NUMA node connection */ diff --git a/lib/eal/version.map b/lib/eal/version.map index 719789b8d1..0cf321605e 100644 --- a/lib/eal/version.map +++ b/lib/eal/version.map @@ -427,6 +427,7 @@ EXPERIMENTAL { # added in 22.11 rte_dev_bus; + rte_dev_bus_info; rte_dev_devargs; rte_dev_driver; rte_dev_name; From patchwork Thu Jul 28 15:26:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 114397 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4D590A00C5; Thu, 28 Jul 2022 17:29:42 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 97C7342C21; Thu, 28 Jul 2022 17:29:00 +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 7792E42C22 for ; Thu, 28 Jul 2022 17:28:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659022139; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GvbWjszEHULw0YrEv+5qfuq9Bzyb/uU3eponRsXV/bQ=; b=LZncrW2Ig3PKp0T8YKhbHCrZixGJehzIEtASMDP0paYVClAQJs5+h2apiSEMVVkN+KLbXe bjLgdG8iFrEcFreiriFE7FK0djvGDKN17do/xO12wjr6BKbhslfqANCJ9fJild2hspzrMa dHlhFsOmAX6tanX7Hm6+B/loKzlghW0= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-184-OTKy--1zNtSPoIBXYYqM6g-1; Thu, 28 Jul 2022 11:28:57 -0400 X-MC-Unique: OTKy--1zNtSPoIBXYYqM6g-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 861053C10141; Thu, 28 Jul 2022 15:28:57 +0000 (UTC) Received: from fchome.redhat.com (unknown [10.40.195.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 996E51415121; Thu, 28 Jul 2022 15:28:56 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: Ray Kinsella , Maxime Coquelin , Chenbo Xia Subject: [RFC v3 26/26] dev: hide device object Date: Thu, 28 Jul 2022 17:26:40 +0200 Message-Id: <20220728152640.547725-27-david.marchand@redhat.com> In-Reply-To: <20220728152640.547725-1-david.marchand@redhat.com> References: <20220628144643.1213026-1-david.marchand@redhat.com> <20220728152640.547725-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 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 Make rte_device opaque for non internal users. This will make extending this object possible without breaking the ABI. Some applications may have been dereferencing rte_device objects, mark this object's accessors as stable. Signed-off-by: David Marchand Acked-by: Bruce Richardson --- Changes since RFC v2: - updated release notes, - marked accessors as stable, --- doc/guides/rel_notes/deprecation.rst | 7 ----- doc/guides/rel_notes/release_22_11.rst | 4 +-- lib/eal/common/eal_private.h | 2 +- lib/eal/include/dev_driver.h | 13 +++++++++ lib/eal/include/rte_dev.h | 37 -------------------------- lib/eal/version.map | 14 +++++----- lib/vhost/vdpa.c | 1 + 7 files changed, 23 insertions(+), 55 deletions(-) diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 3512f01539..429ef298c5 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -43,13 +43,6 @@ Deprecation Notices * mempool: The mempool API macros ``MEMPOOL_PG_*`` are deprecated and will be removed in DPDK 22.11. -* drivers: As a follow-up of the work on the ``rte_bus`` object, - the ``rte_driver`` and ``rte_device`` objects (and as a domino effect, - their bus-specific counterparts) will be made opaque in DPDK 22.11. - Registering a driver on a bus will be marked as an internal API: - external users may still register their drivers using the bus-specific - driver header (see ``enable_driver_sdk`` meson option). - * bus: The ``dev->device.numa_node`` field is set by each bus driver for every device it manages to indicate on which NUMA node this device lies. When this information is unknown, the assigned value is not consistent diff --git a/doc/guides/rel_notes/release_22_11.rst b/doc/guides/rel_notes/release_22_11.rst index ff1a2d6543..cff2667f39 100644 --- a/doc/guides/rel_notes/release_22_11.rst +++ b/doc/guides/rel_notes/release_22_11.rst @@ -94,8 +94,8 @@ API Changes ``vdev``, ``vmbus`` buses has been marked as an internal API. External users may still register their driver using the associated driver headers (see ``enable_driver_sdk`` meson option). - The ``rte_driver`` object is now opaque and must be manipulated through added - accessors. + The ``rte_driver`` and ``rte_device`` objects are now opaque and must be + manipulated through added accessors. * raw/ifgpa: The function ``rte_pmd_ifpga_get_pci_bus`` has been removed. diff --git a/lib/eal/common/eal_private.h b/lib/eal/common/eal_private.h index 44d14241f0..3ca9ce2ffc 100644 --- a/lib/eal/common/eal_private.h +++ b/lib/eal/common/eal_private.h @@ -10,7 +10,7 @@ #include #include -#include +#include #include #include diff --git a/lib/eal/include/dev_driver.h b/lib/eal/include/dev_driver.h index 015188abd5..5efa8c437e 100644 --- a/lib/eal/include/dev_driver.h +++ b/lib/eal/include/dev_driver.h @@ -21,6 +21,19 @@ struct rte_driver { const char *alias; /**< Driver alias. */ }; +/** + * A structure describing a generic device. + */ +struct rte_device { + RTE_TAILQ_ENTRY(rte_device) next; /**< Next device */ + const char *name; /**< Device name */ + const char *bus_info; /**< Device bus specific information */ + const struct rte_driver *driver; /**< Driver assigned after probing */ + const struct rte_bus *bus; /**< Bus handle assigned on scan */ + int numa_node; /**< NUMA node connection */ + struct rte_devargs *devargs; /**< Arguments for latest probing */ +}; + #ifdef __cplusplus } #endif diff --git a/lib/eal/include/rte_dev.h b/lib/eal/include/rte_dev.h index be8bbe79ee..b58cbd2236 100644 --- a/lib/eal/include/rte_dev.h +++ b/lib/eal/include/rte_dev.h @@ -72,90 +72,66 @@ rte_driver_name(const struct rte_driver *driver); /** * Retrieve a device bus. * - * @warning - * @b EXPERIMENTAL: this API may change without prior notice - * * @param dev * A pointer to a device structure. * @return * A pointer to this device bus. */ -__rte_experimental const struct rte_bus * rte_dev_bus(const struct rte_device *dev); /** * Retrieve bus specific information for a device. * - * @warning - * @b EXPERIMENTAL: this API may change without prior notice - * * @param dev * A pointer to a device structure. * @return * A string describing this device or NULL if none is available. */ -__rte_experimental const char * rte_dev_bus_info(const struct rte_device *dev); /** * Retrieve a device arguments. * - * @warning - * @b EXPERIMENTAL: this API may change without prior notice - * * @param dev * A pointer to a device structure. * @return * A pointer to this device devargs. */ -__rte_experimental const struct rte_devargs * rte_dev_devargs(const struct rte_device *dev); /** * Retrieve a device driver. * - * @warning - * @b EXPERIMENTAL: this API may change without prior notice - * * @param dev * A pointer to a device structure. * @return * A pointer to this device driver. */ -__rte_experimental const struct rte_driver * rte_dev_driver(const struct rte_device *dev); /** * Retrieve a device name. * - * @warning - * @b EXPERIMENTAL: this API may change without prior notice - * * @param dev * A pointer to a device structure. * @return * A pointer to this device name. */ -__rte_experimental const char * rte_dev_name(const struct rte_device *dev); /** * Retrieve a device numa node. * - * @warning - * @b EXPERIMENTAL: this API may change without prior notice - * * @param dev * A pointer to a device structure. * @return * A pointer to this device numa node. */ -__rte_experimental int rte_dev_numa_node(const struct rte_device *dev); @@ -165,19 +141,6 @@ rte_dev_numa_node(const struct rte_device *dev); */ #define RTE_DEV_NAME_MAX_LEN 64 -/** - * A structure describing a generic device. - */ -struct rte_device { - RTE_TAILQ_ENTRY(rte_device) next; /**< Next device */ - const char *name; /**< Device name */ - const char *bus_info; /**< Device bus specific information */ - const struct rte_driver *driver; /**< Driver assigned after probing */ - const struct rte_bus *bus; /**< Bus handle assigned on scan */ - int numa_node; /**< NUMA node connection */ - struct rte_devargs *devargs; /**< Arguments for latest probing */ -}; - /** * Query status of a device. * diff --git a/lib/eal/version.map b/lib/eal/version.map index 0cf321605e..3c14cf2724 100644 --- a/lib/eal/version.map +++ b/lib/eal/version.map @@ -26,7 +26,13 @@ DPDK_23 { rte_delay_us_block; rte_delay_us_callback_register; rte_delay_us_sleep; + rte_dev_bus; + rte_dev_bus_info; + rte_dev_devargs; + rte_dev_driver; rte_dev_is_probed; + rte_dev_name; + rte_dev_numa_node; rte_dev_probe; rte_dev_remove; rte_devargs_add; @@ -424,14 +430,6 @@ EXPERIMENTAL { rte_thread_self; rte_thread_set_affinity_by_id; rte_thread_set_priority; - - # added in 22.11 - rte_dev_bus; - rte_dev_bus_info; - rte_dev_devargs; - rte_dev_driver; - rte_dev_name; - rte_dev_numa_node; }; INTERNAL { diff --git a/lib/vhost/vdpa.c b/lib/vhost/vdpa.c index bdebcbe565..aaf3f267e9 100644 --- a/lib/vhost/vdpa.c +++ b/lib/vhost/vdpa.c @@ -10,6 +10,7 @@ #include +#include #include #include #include