On Wed, Feb 01, 2006 at 06:02:36PM +0900, Akinobu Mita wrote: > This patch introduces the C-language equivalent of the function: > int sched_find_first_bit(const unsigned long *b); Akinobu, would you prefer this is a slightly cleaner way? (Not compile tested) static inline int sched_find_first_bit(const unsigned long *b) { if (unlikely(b[0])) return __ffs(b[0]); if (unlikely(b[1])) return __ffs(b[1]) + BITS_PER_LONG; #if BITS_PER_LONG == 32 if (unlikely(b[2])) return __ffs(b[2]) + 64; if (b[3]) return __ffs(b[3]) + 96; #endif return __ffs(b[128/BITS_PER_LONG]) + 128; } If BITS_PER_LONG isn't defined, the link step will fail and point at a some unknown .o as the offender. But it's the responsibility of the header file to make sure it's including the BITS_PER_LONG definition, not the code that calls sched_find_first_bit(). hth, grant