Lines Matching refs:bit

118 	int bit;  in find_first_bit()  local
120 for (bit = 0; size >= BITS_PER_LONG; in find_first_bit()
121 size -= BITS_PER_LONG, bit += BITS_PER_LONG, addr++) { in find_first_bit()
124 return (bit + __ffsl(*addr)); in find_first_bit()
129 bit += __ffsl(mask); in find_first_bit()
131 bit += size; in find_first_bit()
133 return (bit); in find_first_bit()
140 int bit; in find_first_zero_bit() local
142 for (bit = 0; size >= BITS_PER_LONG; in find_first_zero_bit()
143 size -= BITS_PER_LONG, bit += BITS_PER_LONG, addr++) { in find_first_zero_bit()
146 return (bit + __ffsl(~(*addr))); in find_first_zero_bit()
151 bit += __ffsl(mask); in find_first_zero_bit()
153 bit += size; in find_first_zero_bit()
155 return (bit); in find_first_zero_bit()
163 int bit; in find_last_bit() local
168 bit = BITS_PER_LONG * pos; in find_last_bit()
173 return (bit + __flsl(mask)); in find_last_bit()
177 bit -= BITS_PER_LONG; in find_last_bit()
179 return (bit + __flsl(*addr)); in find_last_bit()
189 int bit; in find_next_bit() local
196 bit = BITS_PER_LONG * pos; in find_next_bit()
201 return (bit + __ffsl(mask)); in find_next_bit()
202 if (size - bit <= BITS_PER_LONG) in find_next_bit()
204 bit += BITS_PER_LONG; in find_next_bit()
207 for (size -= bit; size >= BITS_PER_LONG; in find_next_bit()
208 size -= BITS_PER_LONG, bit += BITS_PER_LONG, addr++) { in find_next_bit()
211 return (bit + __ffsl(*addr)); in find_next_bit()
216 bit += __ffsl(mask); in find_next_bit()
218 bit += size; in find_next_bit()
220 return (bit); in find_next_bit()
229 int bit; in find_next_zero_bit() local
236 bit = BITS_PER_LONG * pos; in find_next_zero_bit()
241 return (bit + __ffsl(mask)); in find_next_zero_bit()
242 if (size - bit <= BITS_PER_LONG) in find_next_zero_bit()
244 bit += BITS_PER_LONG; in find_next_zero_bit()
247 for (size -= bit; size >= BITS_PER_LONG; in find_next_zero_bit()
248 size -= BITS_PER_LONG, bit += BITS_PER_LONG, addr++) { in find_next_zero_bit()
251 return (bit + __ffsl(~(*addr))); in find_next_zero_bit()
256 bit += __ffsl(mask); in find_next_zero_bit()
258 bit += size; in find_next_zero_bit()
260 return (bit); in find_next_zero_bit()
279 test_and_clear_bit(long bit, volatile unsigned long *var) in test_and_clear_bit() argument
283 var += BIT_WORD(bit); in test_and_clear_bit()
284 bit %= BITS_PER_LONG; in test_and_clear_bit()
285 bit = (1UL << bit); in test_and_clear_bit()
288 while (!atomic_fcmpset_long(var, &val, val & ~bit)) in test_and_clear_bit()
290 return !!(val & bit); in test_and_clear_bit()
294 __test_and_clear_bit(long bit, volatile unsigned long *var) in __test_and_clear_bit() argument
298 var += BIT_WORD(bit); in __test_and_clear_bit()
299 bit %= BITS_PER_LONG; in __test_and_clear_bit()
300 bit = (1UL << bit); in __test_and_clear_bit()
303 *var &= ~bit; in __test_and_clear_bit()
305 return !!(val & bit); in __test_and_clear_bit()
309 test_and_set_bit(long bit, volatile unsigned long *var) in test_and_set_bit() argument
313 var += BIT_WORD(bit); in test_and_set_bit()
314 bit %= BITS_PER_LONG; in test_and_set_bit()
315 bit = (1UL << bit); in test_and_set_bit()
318 while (!atomic_fcmpset_long(var, &val, val | bit)) in test_and_set_bit()
320 return !!(val & bit); in test_and_set_bit()
324 __test_and_set_bit(long bit, volatile unsigned long *var) in __test_and_set_bit() argument
328 var += BIT_WORD(bit); in __test_and_set_bit()
329 bit %= BITS_PER_LONG; in __test_and_set_bit()
330 bit = (1UL << bit); in __test_and_set_bit()
333 *var |= bit; in __test_and_set_bit()
335 return !!(val & bit); in __test_and_set_bit()
389 #define for_each_set_bit(bit, addr, size) \ argument
390 for ((bit) = find_first_bit((addr), (size)); \
391 (bit) < (size); \
392 (bit) = find_next_bit((addr), (size), (bit) + 1))
394 #define for_each_clear_bit(bit, addr, size) \ argument
395 for ((bit) = find_first_zero_bit((addr), (size)); \
396 (bit) < (size); \
397 (bit) = find_next_zero_bit((addr), (size), (bit) + 1))