diff options
Diffstat (limited to 'lib/ffz.h')
-rw-r--r-- | lib/ffz.h | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/lib/ffz.h b/lib/ffz.h deleted file mode 100644 index e2c1b8e9..00000000 --- a/lib/ffz.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef FIO_FFZ_H -#define FIO_FFZ_H - -#include <inttypes.h> - -static inline int ffs64(uint64_t word) -{ - int r = 0; - - if ((word & 0xffffffff) == 0) { - r += 32; - word >>= 32; - } - if (!(word & 0xffff)) { - word >>= 16; - r += 16; - } - if (!(word & 0xff)) { - word >>= 8; - r += 8; - } - if (!(word & 0xf)) { - word >>= 4; - r += 4; - } - if (!(word & 3)) { - word >>= 2; - r += 2; - } - if (!(word & 1)) { - word >>= 1; - r += 1; - } - - return r; -} - -#ifndef ARCH_HAVE_FFZ - -static inline int ffz(unsigned long bitmask) -{ - return ffs64(~bitmask); -} - -#else -#define ffz(bitmask) arch_ffz(bitmask) -#endif - -static inline int ffz64(uint64_t bitmask) -{ - return ffs64(~bitmask); -} - -#endif |