#include <linux/module.h> | |
#include <linux/bitops.h> | |
/* Find string of zero bits in a bitmap */ | |
unsigned long | |
find_next_zero_string(unsigned long *bitmap, long start, long nbits, int len) | |
{ | |
unsigned long n, end, i; | |
again: | |
n = find_next_zero_bit(bitmap, nbits, start); | |
if (n == -1) | |
return -1; | |
/* could test bitsliced, but it's hardly worth it */ | |
end = n+len; | |
if (end >= nbits) | |
return -1; | |
for (i = n+1; i < end; i++) { | |
if (test_bit(i, bitmap)) { | |
start = i+1; | |
goto again; | |
} | |
} | |
return n; | |
} | |
EXPORT_SYMBOL(find_next_zero_string); |