File: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/bitops/sched.h

Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.

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