root/include/asm-generic/bitops/sched.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. sched_find_first_bit

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef _ASM_GENERIC_BITOPS_SCHED_H_
   3 #define _ASM_GENERIC_BITOPS_SCHED_H_
   4 
   5 #include <linux/compiler.h>     /* unlikely() */
   6 #include <asm/types.h>
   7 
   8 /*
   9  * Every architecture must define this function. It's the fastest
  10  * way of searching a 100-bit bitmap.  It's guaranteed that at least
  11  * one of the 100 bits is cleared.
  12  */
  13 static inline int sched_find_first_bit(const unsigned long *b)
  14 {
  15 #if BITS_PER_LONG == 64
  16         if (b[0])
  17                 return __ffs(b[0]);
  18         return __ffs(b[1]) + 64;
  19 #elif BITS_PER_LONG == 32
  20         if (b[0])
  21                 return __ffs(b[0]);
  22         if (b[1])
  23                 return __ffs(b[1]) + 32;
  24         if (b[2])
  25                 return __ffs(b[2]) + 64;
  26         return __ffs(b[3]) + 96;
  27 #else
  28 #error BITS_PER_LONG not defined
  29 #endif
  30 }
  31 
  32 #endif /* _ASM_GENERIC_BITOPS_SCHED_H_ */

/* [<][>][^][v][top][bottom][index][help] */