Revision 1b095244
b/include/qemu/hbitmap.h | ||
---|---|---|
128 | 128 |
* hbitmap_iter_init: |
129 | 129 |
* @hbi: HBitmapIter to initialize. |
130 | 130 |
* @hb: HBitmap to iterate on. |
131 |
* @first: First bit to visit (0-based). |
|
131 |
* @first: First bit to visit (0-based, must be strictly less than the |
|
132 |
* size of the bitmap). |
|
132 | 133 |
* |
133 | 134 |
* Set up @hbi to iterate on the HBitmap @hb. hbitmap_iter_next will return |
134 | 135 |
* the lowest-numbered bit that is set in @hb, starting at @first. |
b/tests/test-hbitmap.c | ||
---|---|---|
86 | 86 |
data->bits = g_new0(unsigned long, n); |
87 | 87 |
data->size = size; |
88 | 88 |
data->granularity = granularity; |
89 |
hbitmap_test_check(data, 0); |
|
89 |
if (size) { |
|
90 |
hbitmap_test_check(data, 0); |
|
91 |
} |
|
90 | 92 |
} |
91 | 93 |
|
92 | 94 |
static void hbitmap_test_teardown(TestHBitmapData *data, |
... | ... | |
198 | 200 |
hbitmap_test_check(data, L3 / 2); |
199 | 201 |
} |
200 | 202 |
|
201 |
static void test_hbitmap_iter_past(TestHBitmapData *data, |
|
202 |
const void *unused) |
|
203 |
{ |
|
204 |
hbitmap_test_init(data, L3, 0); |
|
205 |
hbitmap_test_set(data, 0, L3); |
|
206 |
hbitmap_test_check(data, L3); |
|
207 |
} |
|
208 |
|
|
209 | 203 |
static void test_hbitmap_set_all(TestHBitmapData *data, |
210 | 204 |
const void *unused) |
211 | 205 |
{ |
... | ... | |
388 | 382 |
hbitmap_test_add("/hbitmap/size/0", test_hbitmap_zero); |
389 | 383 |
hbitmap_test_add("/hbitmap/size/unaligned", test_hbitmap_unaligned); |
390 | 384 |
hbitmap_test_add("/hbitmap/iter/empty", test_hbitmap_iter_empty); |
391 |
hbitmap_test_add("/hbitmap/iter/past", test_hbitmap_iter_past); |
|
392 | 385 |
hbitmap_test_add("/hbitmap/iter/partial", test_hbitmap_iter_partial); |
393 | 386 |
hbitmap_test_add("/hbitmap/iter/granularity", test_hbitmap_iter_granularity); |
394 | 387 |
hbitmap_test_add("/hbitmap/get/all", test_hbitmap_get_all); |
b/util/hbitmap.c | ||
---|---|---|
147 | 147 |
|
148 | 148 |
hbi->hb = hb; |
149 | 149 |
pos = first >> hb->granularity; |
150 |
assert(pos < hb->size); |
|
150 | 151 |
hbi->pos = pos >> BITS_PER_LEVEL; |
151 | 152 |
hbi->granularity = hb->granularity; |
152 | 153 |
|
Also available in: Unified diff