From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bruce Richardson Subject: Re: [PATCH v5 01/12] bus: add bus iterator to find a bus Date: Mon, 26 Jun 2017 16:30:55 +0100 Message-ID: <20170626153055.GA101992@bricha3-MOBL3.ger.corp.intel.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: dev@dpdk.org, Jan Blunck To: Gaetan Rivet Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 8DB8D968 for ; Mon, 26 Jun 2017 17:31:04 +0200 (CEST) Content-Disposition: inline In-Reply-To: List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Mon, Jun 26, 2017 at 02:21:59AM +0200, Gaetan Rivet wrote: > From: Jan Blunck > > This helper allows to iterate over all registered buses and find one > matching data used as parameter. > > Signed-off-by: Jan Blunck > Signed-off-by: Gaetan Rivet > --- > lib/librte_eal/bsdapp/eal/rte_eal_version.map | 1 + > lib/librte_eal/common/eal_common_bus.c | 20 ++++++++++++ > lib/librte_eal/common/include/rte_bus.h | 43 +++++++++++++++++++++++++ > lib/librte_eal/linuxapp/eal/rte_eal_version.map | 1 + > 4 files changed, 65 insertions(+) > Two minor suggestions below. Otherwise: Acked-by: Bruce Richardson > diff --git a/lib/librte_eal/bsdapp/eal/rte_eal_version.map b/lib/librte_eal/bsdapp/eal/rte_eal_version.map > index 2e48a73..ed09ab2 100644 > --- a/lib/librte_eal/bsdapp/eal/rte_eal_version.map > +++ b/lib/librte_eal/bsdapp/eal/rte_eal_version.map > @@ -162,6 +162,7 @@ DPDK_17.02 { > DPDK_17.05 { > global: > > + rte_bus_find; > rte_cpu_is_supported; > rte_log_dump; > rte_log_register; > diff --git a/lib/librte_eal/common/eal_common_bus.c b/lib/librte_eal/common/eal_common_bus.c > index 8f9baf8..4619eb2 100644 > --- a/lib/librte_eal/common/eal_common_bus.c > +++ b/lib/librte_eal/common/eal_common_bus.c > @@ -145,3 +145,23 @@ rte_bus_dump(FILE *f) > } > } > } > + > +struct rte_bus * > +rte_bus_find(rte_bus_cmp_t cmp, > + const void *data, > + const struct rte_bus *start) > +{ > + struct rte_bus *bus = NULL; > + int started = start == NULL; Please put brackets around the "start == NULL" to improve readability. My first reading of this I assumed it was doing multiple assignment of both start and started to NULL. To make it extra clear, prefix the comparison with "!!". > + > + TAILQ_FOREACH(bus, &rte_bus_list, next) { > + if (!started) { > + if (bus == start) > + started = 1; > + continue; > + } > + if (cmp(bus, data) == 0) > + break; > + } > + return bus; > +} I also think the name "started" is confusing, and might be better as the slighly longer "start_found".