#ifndef FIO_FFZ_H
#define FIO_FFZ_H
-static inline int __ffs(int word)
+static inline int __ffs(unsigned long word)
{
int r = 0;
+#if BITS_PER_LONG == 64
+ if ((word & 0xffffffff) == 0) {
+ r += 32;
+ word >>= 32;
+ }
+#endif
if (!(word & 0xffff)) {
word >>= 16;
r += 16;
return r;
}
-static inline int ffz(unsigned int bitmask)
+static inline int ffz(unsigned long bitmask)
{
return __ffs(~bitmask);
}