Lines Matching refs:lo
57 int lo;
74 lo = 0;
78 /* Binary search between lo and hi for 'target'
81 /* INVARIANT: ranges before 'lo' and at-or-after 'hi'
83 * VARIANT: hi-lo is the number of possible
86 while (hi - lo > 1) {
87 int mid = (lo + hi) / 2;
94 lo = mid;
99 /* 'lo' might be the last that started before target, but 'hi' isn't */
100 if (hi > lo) {
104 while (lo >= 0 &&
105 BB_OFFSET(p[lo]) + BB_LEN(p[lo]) > s) {
106 if (BB_OFFSET(p[lo]) < target) {
110 if (rv != -1 && BB_ACK(p[lo]))
114 *first_bad = BB_OFFSET(p[lo]);
115 *bad_sectors = BB_LEN(p[lo]);
117 lo--;
167 int lo, hi;
188 lo = 0;
191 while (hi - lo > 1) {
192 int mid = (lo + hi) / 2;
196 lo = mid;
200 if (hi > lo && BB_OFFSET(p[lo]) > s)
201 hi = lo;
203 if (hi > lo) {
207 sector_t a = BB_OFFSET(p[lo]);
208 sector_t e = a + BB_LEN(p[lo]);
209 int ack = BB_ACK(p[lo]);
222 p[lo] = BB_MAKE(a, e-a, ack);
226 * make p[lo] maximal
228 if (BB_LEN(p[lo]) != BB_MAX_LEN)
229 p[lo] = BB_MAKE(a, BB_MAX_LEN, ack);
261 lo = hi;
266 /* we might be able to combine lo and hi */
267 /* Note: 's' is at the end of 'lo' */
269 int lolen = BB_LEN(p[lo]);
275 int ack = BB_ACK(p[lo]) && BB_ACK(p[hi]);
277 p[lo] = BB_MAKE(BB_OFFSET(p[lo]), newlen, ack);
334 int lo, hi;
354 lo = 0;
357 while (hi - lo > 1) {
358 int mid = (lo + hi) / 2;
362 lo = mid;
366 if (hi > lo) {
367 /* p[lo] is the last range that could overlap the
371 if ((BB_OFFSET(p[lo]) + BB_LEN(p[lo]) > target) &&
372 (BB_OFFSET(p[lo]) < target)) {
374 int ack = BB_ACK(p[lo]);
375 sector_t a = BB_OFFSET(p[lo]);
376 sector_t end = a + BB_LEN(p[lo]);
384 memmove(p+lo+1, p+lo, (bb->count - lo) * 8);
386 p[lo] = BB_MAKE(a, s-a, ack);
387 lo++;
389 p[lo] = BB_MAKE(target, end - target, ack);
391 hi = lo;
392 lo--;
394 while (lo >= 0 &&
395 (BB_OFFSET(p[lo]) + BB_LEN(p[lo]) > s) &&
396 (BB_OFFSET(p[lo]) < target)) {
398 if (BB_OFFSET(p[lo]) < s) {
400 int ack = BB_ACK(p[lo]);
401 sector_t start = BB_OFFSET(p[lo]);
403 p[lo] = BB_MAKE(start, s - start, ack);
407 lo--;
409 /* 'lo' is strictly before, 'hi' is strictly after,
412 if (hi - lo > 1) {
413 memmove(p+lo+1, p+hi, (bb->count - hi) * 8);
414 bb->count -= (hi - lo - 1);