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