Hi Pavan, > > Add macros to align given value to the multiple of the supplied > integer. > > Signed-off-by: Pavan Nikhilesh <pbhagavat...@caviumnetworks.com> > --- > > Common code needed for OcteonTx event timer device. > > lib/librte_eal/common/include/rte_common.h | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/lib/librte_eal/common/include/rte_common.h > b/lib/librte_eal/common/include/rte_common.h > index c7803e41c..2052b5300 100644 > --- a/lib/librte_eal/common/include/rte_common.h > +++ b/lib/librte_eal/common/include/rte_common.h > @@ -190,6 +190,22 @@ static void __attribute__((constructor(prio), used)) > func(void) > */ > #define RTE_ALIGN(val, align) RTE_ALIGN_CEIL(val, align) > > +/** > + * Macro to align a value to the multiple of given value. The resultant > + * value will be of the same type as the first parameter and will be no lower > + * than the first parameter. > + */ > +#define RTE_ALIGN_MUL_CEIL(v, mul) \ > + (((v + (typeof(v)) mul - 1) / ((typeof(v)) mul)) * (typeof(v))mul)
I think you need to add braces around mul: (((v + (typeof(v))(mul) - 1) / ((typeof(v))(mul))) * (typeof(v))(mul)) Same above. Konstantin > + > +/** > + * Macro to align a value to the multiple of given value. The resultant > + * value will be of the same type as the first parameter and will be no > higher > + * than the first parameter. > + */ > +#define RTE_ALIGN_MUL_FLOOR(v, mul) \ > + ((v / ((typeof(v)) mul)) * (typeof(v))mul) > + > /** > * Checks if a pointer is aligned to a given power-of-two value > * > -- > 2.16.2