On Jun 11, 2008, at 9:03 AM, Haavard Skinnemoen wrote:

> Kumar Gala <[EMAIL PROTECTED]> wrote:
>>
>> On Jun 11, 2008, at 5:54 AM, Haavard Skinnemoen wrote:
>>
>>> Kumar Gala <[EMAIL PROTECTED]> wrote:
>>>> +/*
>>>> + * fls: find last (most-significant) bit set.
>>>> + * Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32.
>>>> + */
>>>> +static __inline__ int fls(unsigned int x)
>>>> +{
>>>> +  return __ilog2(x) + 1;
>>>> +}
>>>
>>> __ilog2(0) returns -1?
>>
>> it does.
>
> In general, or just on powerpc? If it's the latter, could you add a
> comment so that people won't blindly copy it into their architecture's
> bitops.h?

I'm guessing on PPC (thus the __ilog2 rather than ilog2()).

 From the kernel headers:

/*
  * non-constant log of base 2 calculators
  * - the arch may override these in asm/bitops.h if they can be  
implemented
  *   more efficiently than using fls() and fls64()
  * - the arch is not required to handle n==0 if implementing the  
fallback
  */
#ifndef CONFIG_ARCH_HAS_ILOG2_U32
static inline __attribute__((const))
int __ilog2_u32(u32 n)
{
         return fls(n) - 1;
}
#endif

I'll add a comment.

- k

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
U-Boot-Users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/u-boot-users

Reply via email to