Lines Matching refs:bit
131 int bit; in find_first_bit() local
133 for (bit = 0; size >= BITS_PER_LONG; in find_first_bit()
134 size -= BITS_PER_LONG, bit += BITS_PER_LONG, addr++) { in find_first_bit()
137 return (bit + __ffsl(*addr)); in find_first_bit()
142 bit += __ffsl(mask); in find_first_bit()
144 bit += size; in find_first_bit()
146 return (bit); in find_first_bit()
153 int bit; in find_first_zero_bit() local
155 for (bit = 0; size >= BITS_PER_LONG; in find_first_zero_bit()
156 size -= BITS_PER_LONG, bit += BITS_PER_LONG, addr++) { in find_first_zero_bit()
159 return (bit + __ffsl(~(*addr))); in find_first_zero_bit()
164 bit += __ffsl(mask); in find_first_zero_bit()
166 bit += size; in find_first_zero_bit()
168 return (bit); in find_first_zero_bit()
176 int bit; in find_last_bit() local
181 bit = BITS_PER_LONG * pos; in find_last_bit()
186 return (bit + __flsl(mask)); in find_last_bit()
190 bit -= BITS_PER_LONG; in find_last_bit()
192 return (bit + __flsl(*addr)); in find_last_bit()
202 int bit; in find_next_bit() local
209 bit = BITS_PER_LONG * pos; in find_next_bit()
214 return (bit + __ffsl(mask)); in find_next_bit()
215 if (size - bit <= BITS_PER_LONG) in find_next_bit()
217 bit += BITS_PER_LONG; in find_next_bit()
220 for (size -= bit; size >= BITS_PER_LONG; in find_next_bit()
221 size -= BITS_PER_LONG, bit += BITS_PER_LONG, addr++) { in find_next_bit()
224 return (bit + __ffsl(*addr)); in find_next_bit()
229 bit += __ffsl(mask); in find_next_bit()
231 bit += size; in find_next_bit()
233 return (bit); in find_next_bit()
242 int bit; in find_next_zero_bit() local
249 bit = BITS_PER_LONG * pos; in find_next_zero_bit()
254 return (bit + __ffsl(mask)); in find_next_zero_bit()
255 if (size - bit <= BITS_PER_LONG) in find_next_zero_bit()
257 bit += BITS_PER_LONG; in find_next_zero_bit()
260 for (size -= bit; size >= BITS_PER_LONG; in find_next_zero_bit()
261 size -= BITS_PER_LONG, bit += BITS_PER_LONG, addr++) { in find_next_zero_bit()
264 return (bit + __ffsl(~(*addr))); in find_next_zero_bit()
269 bit += __ffsl(mask); in find_next_zero_bit()
271 bit += size; in find_next_zero_bit()
273 return (bit); in find_next_zero_bit()
295 __assign_bit(long bit, volatile unsigned long *addr, bool value) in __assign_bit() argument
298 __set_bit(bit, addr); in __assign_bit()
300 __clear_bit(bit, addr); in __assign_bit()
304 test_and_clear_bit(long bit, volatile unsigned long *var) in test_and_clear_bit() argument
308 var += BIT_WORD(bit); in test_and_clear_bit()
309 bit %= BITS_PER_LONG; in test_and_clear_bit()
310 bit = (1UL << bit); in test_and_clear_bit()
313 while (!atomic_fcmpset_long(var, &val, val & ~bit)) in test_and_clear_bit()
315 return !!(val & bit); in test_and_clear_bit()
319 __test_and_clear_bit(long bit, volatile unsigned long *var) in __test_and_clear_bit() argument
323 var += BIT_WORD(bit); in __test_and_clear_bit()
324 bit %= BITS_PER_LONG; in __test_and_clear_bit()
325 bit = (1UL << bit); in __test_and_clear_bit()
328 *var &= ~bit; in __test_and_clear_bit()
330 return !!(val & bit); in __test_and_clear_bit()
334 test_and_set_bit(long bit, volatile unsigned long *var) in test_and_set_bit() argument
338 var += BIT_WORD(bit); in test_and_set_bit()
339 bit %= BITS_PER_LONG; in test_and_set_bit()
340 bit = (1UL << bit); in test_and_set_bit()
343 while (!atomic_fcmpset_long(var, &val, val | bit)) in test_and_set_bit()
345 return !!(val & bit); in test_and_set_bit()
349 __test_and_set_bit(long bit, volatile unsigned long *var) in __test_and_set_bit() argument
353 var += BIT_WORD(bit); in __test_and_set_bit()
354 bit %= BITS_PER_LONG; in __test_and_set_bit()
355 bit = (1UL << bit); in __test_and_set_bit()
358 *var |= bit; in __test_and_set_bit()
360 return !!(val & bit); in __test_and_set_bit()
414 #define for_each_set_bit(bit, addr, size) \ argument
415 for ((bit) = find_first_bit((addr), (size)); \
416 (bit) < (size); \
417 (bit) = find_next_bit((addr), (size), (bit) + 1))
419 #define for_each_clear_bit(bit, addr, size) \ argument
420 for ((bit) = find_first_zero_bit((addr), (size)); \
421 (bit) < (size); \
422 (bit) = find_next_zero_bit((addr), (size), (bit) + 1))