| #ifndef _ASM_GENERIC_BITOPS___FLS_H_ |
| #define _ASM_GENERIC_BITOPS___FLS_H_ |
| * __fls - find last (most-significant) set bit in a long word |
| * @word: the word to search |
| * Undefined if no set bit exists, so code should check against 0 first. |
| static __always_inline unsigned long __fls(unsigned long word) |
| int num = BITS_PER_LONG - 1; |
| if (!(word & (~0ul << 32))) { |
| if (!(word & (~0ul << (BITS_PER_LONG-16)))) { |
| if (!(word & (~0ul << (BITS_PER_LONG-8)))) { |
| if (!(word & (~0ul << (BITS_PER_LONG-4)))) { |
| if (!(word & (~0ul << (BITS_PER_LONG-2)))) { |
| if (!(word & (~0ul << (BITS_PER_LONG-1)))) |
| #endif /* _ASM_GENERIC_BITOPS___FLS_H_ */ |