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