constant inline static unsigned long __fls(unsigned long word)
{
asm("bsr %1,%0"
#if defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 304)
: "=r" (word)
return word == 0 ? 0 : 32 - __builtin_clz(word);
: "rm" (word));
#else
return word;
unsigned int v = 1;
if (word == 0)
return 0;
while (word >>= 1)
v++;
return v;
#endif
}
constant inline static int cache_bucket(int num_pages)
-