| #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); |