Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  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.