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