Lines Matching refs:addr
95 find_first_bit(unsigned long *addr, unsigned long size) in find_first_bit() argument
101 size -= BITS_PER_LONG, bit += BITS_PER_LONG, addr++) { in find_first_bit()
102 if (*addr == 0) in find_first_bit()
104 return (bit + __ffsl(*addr)); in find_first_bit()
107 mask = (*addr) & BIT_MASK(size); in find_first_bit()
117 find_first_zero_bit(unsigned long *addr, unsigned long size) in find_first_zero_bit() argument
123 size -= BITS_PER_LONG, bit += BITS_PER_LONG, addr++) { in find_first_zero_bit()
124 if (~(*addr) == 0) in find_first_zero_bit()
126 return (bit + __ffsl(~(*addr))); in find_first_zero_bit()
129 mask = ~(*addr) & BIT_MASK(size); in find_first_zero_bit()
139 find_last_bit(unsigned long *addr, unsigned long size) in find_last_bit() argument
149 addr += pos; in find_last_bit()
151 mask = (*addr) & BIT_MASK(offs); in find_last_bit()
156 addr--; in find_last_bit()
158 if (*addr) in find_last_bit()
165 find_next_bit(unsigned long *addr, unsigned long size, unsigned long offset) in find_next_bit() argument
177 addr += pos; in find_next_bit()
179 mask = (*addr) & ~BIT_MASK(offs); in find_next_bit()
183 addr++; in find_next_bit()
186 size -= BITS_PER_LONG, bit += BITS_PER_LONG, addr++) { in find_next_bit()
187 if (*addr == 0) in find_next_bit()
189 return (bit + __ffsl(*addr)); in find_next_bit()
192 mask = (*addr) & BIT_MASK(size); in find_next_bit()
202 find_next_zero_bit(unsigned long *addr, unsigned long size, in find_next_zero_bit() argument
215 addr += pos; in find_next_zero_bit()
217 mask = ~(*addr) & ~BIT_MASK(offs); in find_next_zero_bit()
221 addr++; in find_next_zero_bit()
224 size -= BITS_PER_LONG, bit += BITS_PER_LONG, addr++) { in find_next_zero_bit()
225 if (~(*addr) == 0) in find_next_zero_bit()
227 return (bit + __ffsl(~(*addr))); in find_next_zero_bit()
230 mask = ~(*addr) & BIT_MASK(size); in find_next_zero_bit()
240 bitmap_zero(unsigned long *addr, int size) in bitmap_zero() argument
245 memset(addr, 0, len); in bitmap_zero()
249 bitmap_fill(unsigned long *addr, int size) in bitmap_fill() argument
255 memset(addr, 0xff, len); in bitmap_fill()
258 addr[size / BITS_PER_LONG] = BIT_MASK(tail); in bitmap_fill()
262 bitmap_full(unsigned long *addr, int size) in bitmap_full() argument
271 if (addr[i] != ~0UL) in bitmap_full()
276 if ((addr[i] & mask) != mask) in bitmap_full()
283 bitmap_empty(unsigned long *addr, int size) in bitmap_empty() argument
292 if (addr[i] != 0) in bitmap_empty()
297 if ((addr[i] & mask) != 0) in bitmap_empty()
523 #define for_each_set_bit(bit, addr, size) \ argument
524 for ((bit) = find_first_bit((addr), (size)); \
526 (bit) = find_next_bit((addr), (size), (bit) + 1))
528 #define for_each_clear_bit(bit, addr, size) \ argument
529 for ((bit) = find_first_zero_bit((addr), (size)); \
531 (bit) = find_next_zero_bit((addr), (size), (bit) + 1))