Lines Matching refs:bit
15 #define BITMAP_SIZE_ASSERT(bitmap, bit) \ argument
17 sizeof(register_t)) > BITMAP_WORD(bit))
20 bitmap_isset(const register_t *bitmap, index_t bit) in bitmap_isset() argument
22 BITMAP_SIZE_ASSERT(bitmap, bit); in bitmap_isset()
24 index_t i = BITMAP_WORD(bit); in bitmap_isset()
26 return (bitmap[i] & BITMAP_SET_BIT(bit)) != 0U; in bitmap_isset()
30 bitmap_set(register_t *bitmap, index_t bit) in bitmap_set() argument
32 BITMAP_SIZE_ASSERT(bitmap, bit); in bitmap_set()
34 index_t i = BITMAP_WORD(bit); in bitmap_set()
36 bitmap[i] |= BITMAP_SET_BIT(bit); in bitmap_set()
40 bitmap_clear(register_t *bitmap, index_t bit) in bitmap_clear() argument
42 BITMAP_SIZE_ASSERT(bitmap, bit); in bitmap_clear()
44 index_t i = BITMAP_WORD(bit); in bitmap_clear()
46 bitmap[i] &= ~BITMAP_SET_BIT(bit); in bitmap_clear()
50 bitmap_extract(const register_t *bitmap, index_t bit, index_t width) in bitmap_extract() argument
52 BITMAP_SIZE_ASSERT(bitmap, bit + width - 1U); in bitmap_extract()
54 (BITMAP_WORD(bit) == BITMAP_WORD(bit + width - 1U))); in bitmap_extract()
56 index_t i = BITMAP_WORD(bit); in bitmap_extract()
58 return (bitmap[i] >> (bit % BITMAP_WORD_BITS)) & util_mask(width); in bitmap_extract()
62 bitmap_insert(register_t *bitmap, index_t bit, index_t width, register_t value) in bitmap_insert() argument
64 BITMAP_SIZE_ASSERT(bitmap, bit + width - 1U); in bitmap_insert()
66 (BITMAP_WORD(bit) == BITMAP_WORD(bit + width - 1U))); in bitmap_insert()
68 index_t i = BITMAP_WORD(bit); in bitmap_insert()
70 bitmap[i] &= ~(util_mask(width) << (bit % BITMAP_WORD_BITS)); in bitmap_insert()
71 bitmap[i] |= (value & util_mask(width)) << (bit % BITMAP_WORD_BITS); in bitmap_insert()
75 bitmap_ffs(const register_t *bitmap, index_t num_bits, index_t *bit) in bitmap_ffs() argument
83 *bit = i; in bitmap_ffs()
91 bitmap_ffc(const register_t *bitmap, index_t num_bits, index_t *bit) in bitmap_ffc() argument
99 *bit = i; in bitmap_ffc()
157 bitmap_atomic_isset(const _Atomic register_t *bitmap, index_t bit, in bitmap_atomic_isset() argument
160 BITMAP_SIZE_ASSERT(bitmap, bit); in bitmap_atomic_isset()
162 index_t i = BITMAP_WORD(bit); in bitmap_atomic_isset()
165 BITMAP_SET_BIT(bit)) != 0U; in bitmap_atomic_isset()
169 bitmap_atomic_test_and_set(_Atomic register_t *bitmap, index_t bit, in bitmap_atomic_test_and_set() argument
172 BITMAP_SIZE_ASSERT(bitmap, bit); in bitmap_atomic_test_and_set()
174 index_t i = BITMAP_WORD(bit); in bitmap_atomic_test_and_set()
176 BITMAP_SET_BIT(bit), order); in bitmap_atomic_test_and_set()
178 return (old & BITMAP_SET_BIT(bit)) != 0U; in bitmap_atomic_test_and_set()
182 bitmap_atomic_test_and_clear(_Atomic register_t *bitmap, index_t bit, in bitmap_atomic_test_and_clear() argument
185 BITMAP_SIZE_ASSERT(bitmap, bit); in bitmap_atomic_test_and_clear()
187 index_t i = BITMAP_WORD(bit); in bitmap_atomic_test_and_clear()
189 ~BITMAP_SET_BIT(bit), order); in bitmap_atomic_test_and_clear()
191 return (old & BITMAP_SET_BIT(bit)) != 0U; in bitmap_atomic_test_and_clear()
196 index_t *bit) in bitmap_atomic_ffs() argument
204 *bit = i; in bitmap_atomic_ffs()
213 index_t *bit) in bitmap_atomic_ffc() argument
221 *bit = i; in bitmap_atomic_ffc()
281 bitmap_atomic_extract(const _Atomic register_t *bitmap, index_t bit, in bitmap_atomic_extract() argument
284 BITMAP_SIZE_ASSERT(bitmap, bit + width - 1U); in bitmap_atomic_extract()
286 (BITMAP_WORD(bit) == BITMAP_WORD(bit + width - 1U))); in bitmap_atomic_extract()
288 index_t i = BITMAP_WORD(bit); in bitmap_atomic_extract()
291 (bit % BITMAP_WORD_BITS)) & in bitmap_atomic_extract()
296 bitmap_atomic_insert(_Atomic register_t *bitmap, index_t bit, index_t width, in bitmap_atomic_insert() argument
299 BITMAP_SIZE_ASSERT(bitmap, bit + width - 1U); in bitmap_atomic_insert()
301 (BITMAP_WORD(bit) == BITMAP_WORD(bit + width - 1U))); in bitmap_atomic_insert()
303 index_t i = BITMAP_WORD(bit); in bitmap_atomic_insert()
314 ~(util_mask(width) << (bit % BITMAP_WORD_BITS))) | in bitmap_atomic_insert()
316 << (bit % BITMAP_WORD_BITS)); in bitmap_atomic_insert()