[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCH v6 6/7] arch/arm64: Implement bitops for arm64
Hi Santiago Thanks for your review -- Cheers, Justin (Jia He) > -----Original Message----- > From: Santiago Pagani <Santiago.Pagani@xxxxxxxxx> > Sent: Tuesday, October 22, 2019 4:40 PM > To: Justin He (Arm Technology China) <Justin.He@xxxxxxx>; minios- > devel@xxxxxxxxxxxxxxxxxxxx > Cc: Simon Kuenzer <simon.kuenzer@xxxxxxxxx>; Sharan Santhanam > <Sharan.Santhanam@xxxxxxxxx>; Felipe Huici <Felipe.Huici@xxxxxxxxx>; > Julien Grall <Julien.Grall@xxxxxxx>; Kaly Xin (Arm Technology China) > <Kaly.Xin@xxxxxxx> > Subject: Re: [UNIKRAFT PATCH v6 6/7] arch/arm64: Implement bitops for > arm64 > > Reviewed-by: Santiago Pagani <santiago.pagani@xxxxxxxxx> > > On 22.10.19, 09:43, "Jia He" <justin.he@xxxxxxx> wrote: > > Without this patch, compiler will report warning as follows: > In file included from plat/common/arm/time.c:41:0: > include/uk/bitops.h: In function 'uk_get_count_order': > include/uk/bitops.h:89:10: warning: implicit declaration of function > 'ukarch_fls'; did you mean 'ukarch_ffsl'? > [-Wimplicit-function-declaration] > order = ukarch_fls(count); > ^~~~~~~~~~ > ukarch_ffsl > include/uk/bitops.h: In function 'uk_find_last_bit': > include/uk/bitops.h:154:18: warning: implicit declaration of function > 'ukarch_flsl'; did you mean 'ukarch_ffsl'? > [-Wimplicit-function-declaration] > return (bit + ukarch_flsl(mask)); > ^~~~~~~~~~~ > ukarch_ffsl > > Signed-off-by: Jia He <justin.he@xxxxxxx> > --- > V6: change the returned bit postion from [1...32] to [0...31] > > arch/arm/arm64/include/uk/asm/atomic.h | 36 > ++++++++++++++++++++++++++ > 1 file changed, 36 insertions(+) > > diff --git a/arch/arm/arm64/include/uk/asm/atomic.h > b/arch/arm/arm64/include/uk/asm/atomic.h > index 7ee6667..431ac84 100644 > --- a/arch/arm/arm64/include/uk/asm/atomic.h > +++ b/arch/arm/arm64/include/uk/asm/atomic.h > @@ -37,6 +37,31 @@ > #error Do not include this header directly > #endif > > +/** > + * ukarch_ffs - find first (lowest) set bit in word. > + * @word: The word to search > + * > + * Returns one plus the index of the least significant 1-bit of x, or > + * if x is zero, returns zero. > + * ffs(1)=0, ffs(0x8000000)=31 > + */ > +static inline unsigned int ukarch_ffs(unsigned int x) > +{ > + return __builtin_ffs(x) - 1; > +} > + > +/** > + * ukarch_fls - find last (highest) set bit in word. > + * @word: The word to search > + * > + * Undefined if no bit exists, so code should check against 0 first. > + * fls(1)=0, fls(0x8000000)=31 > + */ > +static inline unsigned int ukarch_fls(unsigned int x) > +{ > + return sizeof(x) * 8 - __builtin_clz(x) - 1; > +} > + > /** > * ukarch_ffsl - find first (lowest) set bit in word. > * @word: The word to search > @@ -68,3 +93,14 @@ static inline unsigned long ukarch_ffsl(unsigned > long word) > > return 63 - clz; > } > + > +/** > + * ukarch_flsl - find last (highest) set bit in word. > + * @word: The word to search > + * > + * Undefined if no bit exists, so code should check against 0 first. > + */ > +static inline unsigned long ukarch_flsl(unsigned long x) > +{ > + return sizeof(x) * 8 - __builtin_clzl(x) - 1; > +} > -- > 2.17.1 > > _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |