builtin-fls.h 364 B

12345678910111213141516
  1. #ifndef _ASM_GENERIC_BITOPS_BUILTIN_FLS_H_
  2. #define _ASM_GENERIC_BITOPS_BUILTIN_FLS_H_
  3. /**
  4. * fls - find last (most-significant) bit set
  5. * @x: the word to search
  6. *
  7. * This is defined the same way as ffs.
  8. * Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32.
  9. */
  10. static __always_inline int fls(int x)
  11. {
  12. return x ? sizeof(x) * 8 - __builtin_clz(x) : 0;
  13. }
  14. #endif