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