Lines Matching refs:bit
229 unsigned long bit, i, flags; in airq_iv_alloc() local
234 bit = find_first_bit_inv(iv->avail, iv->bits); in airq_iv_alloc()
235 while (bit + num <= iv->bits) { in airq_iv_alloc()
237 if (!test_bit_inv(bit + i, iv->avail)) in airq_iv_alloc()
242 clear_bit_inv(bit + i, iv->avail); in airq_iv_alloc()
243 if (bit + num >= iv->end) in airq_iv_alloc()
244 iv->end = bit + num + 1; in airq_iv_alloc()
247 bit = find_next_bit_inv(iv->avail, iv->bits, bit + i + 1); in airq_iv_alloc()
249 if (bit + num > iv->bits) in airq_iv_alloc()
250 bit = -1UL; in airq_iv_alloc()
252 return bit; in airq_iv_alloc()
262 void airq_iv_free(struct airq_iv *iv, unsigned long bit, unsigned long num) in airq_iv_free() argument
271 clear_bit_inv(bit + i, iv->vector); in airq_iv_free()
273 set_bit_inv(bit + i, iv->avail); in airq_iv_free()
275 if (bit + num >= iv->end) { in airq_iv_free()
296 unsigned long bit; in airq_iv_scan() local
299 bit = find_next_bit_inv(iv->vector, end, start); in airq_iv_scan()
300 if (bit >= end) in airq_iv_scan()
302 clear_bit_inv(bit, iv->vector); in airq_iv_scan()
303 return bit; in airq_iv_scan()