Lines Matching refs:start
210 __bitset_test_range(const BITSET_WORD *r, unsigned start, unsigned end)
212 const unsigned size = end - start + 1;
213 const unsigned start_mod = start % BITSET_WORDBITS;
216 return BITSET_TEST_RANGE_INSIDE_WORD(r, start, end);
220 return __bitset_test_range(r, start, start + first_size - 1) ||
221 __bitset_test_range(r, start + first_size, end);
229 __bitset_set_range(BITSET_WORD *r, unsigned start, unsigned end)
231 const unsigned size = end - start + 1;
232 const unsigned start_mod = start % BITSET_WORDBITS;
235 BITSET_SET_RANGE_INSIDE_WORD(r, start, end);
239 __bitset_set_range(r, start, start + first_size - 1);
240 __bitset_set_range(r, start + first_size, end);
248 __bitclear_clear_range(BITSET_WORD *r, unsigned start, unsigned end)
250 const unsigned size = end - start + 1;
251 const unsigned start_mod = start % BITSET_WORDBITS;
254 BITSET_CLEAR_RANGE_INSIDE_WORD(r, start, end);
258 __bitclear_clear_range(r, start, start + first_size - 1);
259 __bitclear_clear_range(r, start + first_size, end);
336 * the start of the loop, the tmp variable must be set to *set and the
374 __bitset_next_range(unsigned *start, unsigned *end, const BITSET_WORD *set,
377 /* To find the next start, start searching from end. In the first iteration
383 *start = *end = size;
390 *start = *end = size;
396 *start = word * BITSET_WORDBITS + ffs(tmp) - 1;
398 /* Now do the opposite to find end. Here we can start at start + 1, because
399 * we know that the bit at start is 1 and we're searching for the first
402 word = BITSET_BITWORD(*start + 1);
407 tmp = set[word] | (BITSET_BIT(*start + 1) - 1);
419 * "start" goes past "size".