From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerin Jacob Subject: Re: [PATCH 01/10] eal: add API to align variable to previous power of 2 Date: Sat, 17 Feb 2018 10:19:29 +0530 Message-ID: <20180217044927.GA2941@jerin> References: <20180216213700.3415-1-pbhagavatula@caviumnetworks.com> <20180216213700.3415-2-pbhagavatula@caviumnetworks.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: santosh.shukla@caviumnetworks.com, erik.g.carrillo@intel.com, dev@dpdk.org To: Pavan Nikhilesh Return-path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0053.outbound.protection.outlook.com [104.47.34.53]) by dpdk.org (Postfix) with ESMTP id 608191B2BC for ; Sat, 17 Feb 2018 05:49:49 +0100 (CET) Content-Disposition: inline In-Reply-To: <20180216213700.3415-2-pbhagavatula@caviumnetworks.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" -----Original Message----- > Date: Sat, 17 Feb 2018 03:06:51 +0530 > From: Pavan Nikhilesh > To: jerin.jacob@caviumnetworks.com, santosh.shukla@caviumnetworks.com, > erik.g.carrillo@intel.com > Cc: dev@dpdk.org, Pavan Nikhilesh > Subject: [dpdk-dev] [PATCH 01/10] eal: add API to align variable to > previous power of 2 > X-Mailer: git-send-email 2.16.1 > > Add 32b and 64b API's to align the given variable to the previous power > of 2. I suggest to send common code changes in separate patch series with unit test case and mention the dependency in cover letter. > > Signed-off-by: Pavan Nikhilesh > --- > lib/librte_eal/common/include/rte_common.h | 36 ++++++++++++++++++++++++++++++ > 1 file changed, 36 insertions(+) > > diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h > index c7803e41c..126914f07 100644 > --- a/lib/librte_eal/common/include/rte_common.h > +++ b/lib/librte_eal/common/include/rte_common.h > @@ -259,6 +259,24 @@ rte_align32pow2(uint32_t x) > return x + 1; > } > > +/** > + * Aligns input parameter to the previous power of 2 > + * > + * @param x > + * The integer value to algin > + * > + * @return > + * Input parameter aligned to the previous power of 2 > + */ > +static inline uint32_t > +rte_align32lowpow2(uint32_t x) > +{ > + x = rte_align32pow2(x); > + x--; > + > + return x - (x >> 1); > +} > + > /** > * Aligns 64b input parameter to the next power of 2 > * > @@ -282,6 +300,24 @@ rte_align64pow2(uint64_t v) > return v + 1; > } > > +/** > + * Aligns 64b input parameter to the previous power of 2 > + * > + * @param v > + * The 64b value to align > + * > + * @return > + * Input parameter aligned to the previous power of 2 > + */ > +static inline uint64_t > +rte_align64lowpow2(uint64_t v) > +{ > + v = rte_align64pow2(v); > + v--; > + > + return v - (v >> 1); > +} > + > /*********** Macros for calculating min and max **********/ > > /** > -- > 2.16.1 >