* Find the first bit set in a u_daddr_t. */
| 188 | * Find the first bit set in a u_daddr_t. |
| 189 | */ |
| 190 | static inline int |
| 191 | generic_bitpos(u_daddr_t mask) |
| 192 | { |
| 193 | int hi, lo, mid; |
| 194 | |
| 195 | lo = 0; |
| 196 | hi = BLIST_RADIX; |
| 197 | while (lo + 1 < hi) { |
| 198 | mid = (lo + hi) >> 1; |
| 199 | if (mask & bitrange(0, mid)) |
| 200 | hi = mid; |
| 201 | else |
| 202 | lo = mid; |
| 203 | } |
| 204 | return (lo); |
| 205 | } |
| 206 | |
| 207 | static inline int |
| 208 | bitpos(u_daddr_t mask) |