Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | #include <linux/module.h> |
2 | #include <linux/bitops.h> | |
3 | ||
4 | /* Find string of zero bits in a bitmap */ | |
5 | unsigned long | |
6 | find_next_zero_string(unsigned long *bitmap, long start, long nbits, int len) | |
7 | { | |
8 | unsigned long n, end, i; | |
9 | ||
10 | again: | |
11 | n = find_next_zero_bit(bitmap, nbits, start); | |
12 | if (n == -1) | |
13 | return -1; | |
14 | ||
15 | /* could test bitsliced, but it's hardly worth it */ | |
16 | end = n+len; | |
17 | if (end >= nbits) | |
18 | return -1; | |
19 | for (i = n+1; i < end; i++) { | |
20 | if (test_bit(i, bitmap)) { | |
21 | start = i+1; | |
22 | goto again; | |
23 | } | |
24 | } | |
25 | return n; | |
26 | } | |
27 | ||
28 | EXPORT_SYMBOL(find_next_zero_string); |