Lines Matching refs:bf
23 struct bitfield *bf; in bitfield_alloc() local
25 bf = os_zalloc(sizeof(*bf) + (max_bits + 7) / 8); in bitfield_alloc()
26 if (bf == NULL) in bitfield_alloc()
28 bf->bits = (u8 *) (bf + 1); in bitfield_alloc()
29 bf->max_bits = max_bits; in bitfield_alloc()
30 return bf; in bitfield_alloc()
34 void bitfield_free(struct bitfield *bf) in bitfield_free() argument
36 os_free(bf); in bitfield_free()
40 void bitfield_set(struct bitfield *bf, size_t bit) in bitfield_set() argument
42 if (bit >= bf->max_bits) in bitfield_set()
44 bf->bits[bit / 8] |= BIT(bit % 8); in bitfield_set()
48 void bitfield_clear(struct bitfield *bf, size_t bit) in bitfield_clear() argument
50 if (bit >= bf->max_bits) in bitfield_clear()
52 bf->bits[bit / 8] &= ~BIT(bit % 8); in bitfield_clear()
56 int bitfield_is_set(struct bitfield *bf, size_t bit) in bitfield_is_set() argument
58 if (bit >= bf->max_bits) in bitfield_is_set()
60 return !!(bf->bits[bit / 8] & BIT(bit % 8)); in bitfield_is_set()
76 int bitfield_get_first_zero(struct bitfield *bf) in bitfield_get_first_zero() argument
79 for (i = 0; i < (bf->max_bits + 7) / 8; i++) { in bitfield_get_first_zero()
80 if (bf->bits[i] != 0xff) in bitfield_get_first_zero()
83 if (i == (bf->max_bits + 7) / 8) in bitfield_get_first_zero()
85 i = i * 8 + first_zero(bf->bits[i]); in bitfield_get_first_zero()
86 if (i >= bf->max_bits) in bitfield_get_first_zero()