Lines Matching refs:lo

57 	int lo;
73 lo = 0;
77 /* Binary search between lo and hi for 'target'
80 /* INVARIANT: ranges before 'lo' and at-or-after 'hi'
82 * VARIANT: hi-lo is the number of possible
85 while (hi - lo > 1) {
86 int mid = (lo + hi) / 2;
93 lo = mid;
98 /* 'lo' might be the last that started before target, but 'hi' isn't */
99 if (hi > lo) {
103 while (lo >= 0 &&
104 BB_OFFSET(p[lo]) + BB_LEN(p[lo]) > s) {
105 if (BB_OFFSET(p[lo]) < target) {
109 if (rv != -1 && BB_ACK(p[lo]))
113 *first_bad = BB_OFFSET(p[lo]);
114 *bad_sectors = BB_LEN(p[lo]);
116 lo--;
166 int lo, hi;
187 lo = 0;
190 while (hi - lo > 1) {
191 int mid = (lo + hi) / 2;
195 lo = mid;
199 if (hi > lo && BB_OFFSET(p[lo]) > s)
200 hi = lo;
202 if (hi > lo) {
206 sector_t a = BB_OFFSET(p[lo]);
207 sector_t e = a + BB_LEN(p[lo]);
208 int ack = BB_ACK(p[lo]);
221 p[lo] = BB_MAKE(a, e-a, ack);
225 * make p[lo] maximal
227 if (BB_LEN(p[lo]) != BB_MAX_LEN)
228 p[lo] = BB_MAKE(a, BB_MAX_LEN, ack);
260 lo = hi;
265 /* we might be able to combine lo and hi */
266 /* Note: 's' is at the end of 'lo' */
268 int lolen = BB_LEN(p[lo]);
274 int ack = BB_ACK(p[lo]) && BB_ACK(p[hi]);
276 p[lo] = BB_MAKE(BB_OFFSET(p[lo]), newlen, ack);
333 int lo, hi;
352 lo = 0;
355 while (hi - lo > 1) {
356 int mid = (lo + hi) / 2;
360 lo = mid;
364 if (hi > lo) {
365 /* p[lo] is the last range that could overlap the
369 if ((BB_OFFSET(p[lo]) + BB_LEN(p[lo]) > target) &&
370 (BB_OFFSET(p[lo]) < target)) {
372 int ack = BB_ACK(p[lo]);
373 sector_t a = BB_OFFSET(p[lo]);
374 sector_t end = a + BB_LEN(p[lo]);
382 memmove(p+lo+1, p+lo, (bb->count - lo) * 8);
384 p[lo] = BB_MAKE(a, s-a, ack);
385 lo++;
387 p[lo] = BB_MAKE(target, end - target, ack);
389 hi = lo;
390 lo--;
392 while (lo >= 0 &&
393 (BB_OFFSET(p[lo]) + BB_LEN(p[lo]) > s) &&
394 (BB_OFFSET(p[lo]) < target)) {
396 if (BB_OFFSET(p[lo]) < s) {
398 int ack = BB_ACK(p[lo]);
399 sector_t start = BB_OFFSET(p[lo]);
401 p[lo] = BB_MAKE(start, s - start, ack);
405 lo--;
407 /* 'lo' is strictly before, 'hi' is strictly after,
410 if (hi - lo > 1) {
411 memmove(p+lo+1, p+hi, (bb->count - hi) * 8);
412 bb->count -= (hi - lo - 1);