Re: [PATCH 1/3] bitops: Add __ffs64 bitop

From: Valdis . Kletnieks
Date: Mon Apr 27 2009 - 11:15:47 EST


On Thu, 23 Apr 2009 10:16:54 BST, Steven Whitehouse said:
> Finds the first set bit in a 64 bit word. This is required in order
> to fix a bug in GFS2, but I think it should be a generic function
> in case of future users.

Seems like a sane idea..

> +static inline unsigned long __ffs64(u64 word)
> +{
> +#if BITS_PER_LONG == 32
> + if (((u32)word) == 0UL)
> + return __ffs((u32)(word >> 32)) + 32;
> +#elif BITS_PER_LONG != 64
> +#error BITS_PER_LONG not 32 or 64
> +#endif
> + return __ffs((unsigned long)word);
> +}
> +

Does this have endian-ness issues (is that (u32)word the "high" or "low"
part)? Or is this intended only for looking at bitmaps and the like, and we
don't really care?

Attachment: pgp00000.pgp
Description: PGP signature