| @@ -12,12 +12,23 @@ static l2_bitmap_entry first_unset_bit(l2_bitmap_entry n) { | |||
| return ~n & (n + 1); | |||
| } | |||
| #if defined(__GLIBC__) && ( \ | |||
| #if 0 && defined(__GLIBC__) && ( \ | |||
| (__GLIBC__>= 2 && __GLIBC_MINOR__ >= 27) || \ | |||
| _GNU_SOURCE) | |||
| #define first_set ffsll | |||
| #else | |||
| static int first_set(l2_bitmap_entry n) { | |||
| if (n == 0) { | |||
| return 0; | |||
| } | |||
| int num = 1; | |||
| while ((n & 1) == 0) { | |||
| n >>= 1; | |||
| num += 1; | |||
| } | |||
| return num; | |||
| } | |||
| #endif | |||