* Copyright 2002, Yoshinori Sato
*/
-#include <linux/kernel.h>
#include <linux/config.h>
#include <linux/compiler.h>
#include <asm/byteorder.h> /* swab32 */
#define find_first_zero_bit(addr, size) \
find_next_zero_bit((addr), (size), 0)
+#define ffs(x) generic_ffs(x)
+
static __inline__ unsigned long __ffs(unsigned long word)
{
unsigned long result;
return result;
}
-#define ffs(x) generic_ffs(x)
-#define fls(x) generic_fls(x)
-
-static __inline__ int find_next_zero_bit (void * addr, int size, int offset)
+static __inline__ int find_next_zero_bit (const unsigned long * addr, int size, int offset)
{
unsigned long *p = (unsigned long *)(((unsigned long)addr + (offset >> 3)) & ~3);
unsigned long result = offset & ~31UL;
tmp = *p;
found_first:
- tmp |= ~0UL >> size;
+ tmp |= ~0UL << size;
found_middle:
return result + ffz(tmp);
}
return result + __ffs(tmp);
}
+#define find_first_bit(addr, size) find_next_bit(addr, size, 0)
+
/*
* Every architecture must define this function. It's the fastest
* way of searching a 140-bit bitmap where the first 100 bits are
#endif /* __KERNEL__ */
+#define fls(x) generic_fls(x)
+#define fls64(x) generic_fls64(x)
+
#endif /* _H8300_BITOPS_H */