diff options
Diffstat (limited to 'include/asm-generic/bitops/builtin-__fls.h')
| -rw-r--r-- | include/asm-generic/bitops/builtin-__fls.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/asm-generic/bitops/builtin-__fls.h b/include/asm-generic/bitops/builtin-__fls.h new file mode 100644 index 000000000000..0248f386635f --- /dev/null +++ b/include/asm-generic/bitops/builtin-__fls.h | |||
| @@ -0,0 +1,15 @@ | |||
| 1 | #ifndef _ASM_GENERIC_BITOPS_BUILTIN___FLS_H_ | ||
| 2 | #define _ASM_GENERIC_BITOPS_BUILTIN___FLS_H_ | ||
| 3 | |||
| 4 | /** | ||
| 5 | * __fls - find last (most-significant) set bit in a long word | ||
| 6 | * @word: the word to search | ||
| 7 | * | ||
| 8 | * Undefined if no set bit exists, so code should check against 0 first. | ||
| 9 | */ | ||
| 10 | static __always_inline unsigned long __fls(unsigned long word) | ||
| 11 | { | ||
| 12 | return (sizeof(word) * 8) - 1 - __builtin_clzl(word); | ||
| 13 | } | ||
| 14 | |||
| 15 | #endif | ||
