Lines Matching refs:num_bits
31 size_t offset, size_t num_bits) in setup_bundle_data() argument
36 bd->eidx = (offset + num_bits - 1) / bundle_bitness(bitarray); in setup_bundle_data()
37 bd->eoff = (offset + num_bits - 1) % bundle_bitness(bitarray); in setup_bundle_data()
66 size_t num_bits, bool match_set, in match_region() argument
76 setup_bundle_data(bitarray, bd, offset, num_bits); in match_region()
173 size_t num_bits, bool to_set, in set_region() argument
181 setup_bundle_data(bitarray, bd, offset, num_bits); in set_region()
222 __ASSERT_NO_MSG(bitarray->num_bits > 0); in sys_bitarray_set_bit()
224 if (bit >= bitarray->num_bits) { in sys_bitarray_set_bit()
248 __ASSERT_NO_MSG(bitarray->num_bits > 0); in sys_bitarray_clear_bit()
252 if (bit >= bitarray->num_bits) { in sys_bitarray_clear_bit()
276 __ASSERT_NO_MSG(bitarray->num_bits > 0); in sys_bitarray_test_bit()
285 if (bit >= bitarray->num_bits) { in sys_bitarray_test_bit()
313 __ASSERT_NO_MSG(bitarray->num_bits > 0); in sys_bitarray_test_and_set_bit()
322 if (bit >= bitarray->num_bits) { in sys_bitarray_test_and_set_bit()
352 __ASSERT_NO_MSG(bitarray->num_bits > 0); in sys_bitarray_test_and_clear_bit()
361 if (bit >= bitarray->num_bits) { in sys_bitarray_test_and_clear_bit()
384 int sys_bitarray_alloc(sys_bitarray_t *bitarray, size_t num_bits, in sys_bitarray_alloc() argument
395 __ASSERT_NO_MSG(bitarray->num_bits > 0); in sys_bitarray_alloc()
404 if ((num_bits == 0) || (num_bits > bitarray->num_bits)) { in sys_bitarray_alloc()
433 off_end = bitarray->num_bits - num_bits; in sys_bitarray_alloc()
436 if (match_region(bitarray, bit_idx, num_bits, false, in sys_bitarray_alloc()
438 set_region(bitarray, bit_idx, num_bits, true, &bd); in sys_bitarray_alloc()
456 int sys_bitarray_free(sys_bitarray_t *bitarray, size_t num_bits, in sys_bitarray_free() argument
461 size_t off_end = offset + num_bits - 1; in sys_bitarray_free()
465 __ASSERT_NO_MSG(bitarray->num_bits > 0); in sys_bitarray_free()
469 if ((num_bits == 0) in sys_bitarray_free()
470 || (num_bits > bitarray->num_bits) in sys_bitarray_free()
471 || (offset >= bitarray->num_bits) in sys_bitarray_free()
472 || (off_end >= bitarray->num_bits)) { in sys_bitarray_free()
481 if (match_region(bitarray, offset, num_bits, true, &bd, NULL)) { in sys_bitarray_free()
482 set_region(bitarray, offset, num_bits, false, &bd); in sys_bitarray_free()
493 static bool is_region_set_clear(sys_bitarray_t *bitarray, size_t num_bits, in is_region_set_clear() argument
498 size_t off_end = offset + num_bits - 1; in is_region_set_clear()
502 __ASSERT_NO_MSG(bitarray->num_bits > 0); in is_region_set_clear()
504 if ((num_bits == 0) in is_region_set_clear()
505 || (num_bits > bitarray->num_bits) in is_region_set_clear()
506 || (offset >= bitarray->num_bits) in is_region_set_clear()
507 || (off_end >= bitarray->num_bits)) { in is_region_set_clear()
512 ret = match_region(bitarray, offset, num_bits, to_set, &bd, NULL); in is_region_set_clear()
519 bool sys_bitarray_is_region_set(sys_bitarray_t *bitarray, size_t num_bits, in sys_bitarray_is_region_set() argument
522 return is_region_set_clear(bitarray, num_bits, offset, true); in sys_bitarray_is_region_set()
525 bool sys_bitarray_is_region_cleared(sys_bitarray_t *bitarray, size_t num_bits, in sys_bitarray_is_region_cleared() argument
528 return is_region_set_clear(bitarray, num_bits, offset, false); in sys_bitarray_is_region_cleared()
531 static int set_clear_region(sys_bitarray_t *bitarray, size_t num_bits, in set_clear_region() argument
535 size_t off_end = offset + num_bits - 1; in set_clear_region()
539 __ASSERT_NO_MSG(bitarray->num_bits > 0); in set_clear_region()
541 if ((num_bits == 0) in set_clear_region()
542 || (num_bits > bitarray->num_bits) in set_clear_region()
543 || (offset >= bitarray->num_bits) in set_clear_region()
544 || (off_end >= bitarray->num_bits)) { in set_clear_region()
549 set_region(bitarray, offset, num_bits, to_set, NULL); in set_clear_region()
557 int sys_bitarray_test_and_set_region(sys_bitarray_t *bitarray, size_t num_bits, in sys_bitarray_test_and_set_region() argument
565 __ASSERT_NO_MSG(bitarray->num_bits > 0); in sys_bitarray_test_and_set_region()
567 size_t off_end = offset + num_bits - 1; in sys_bitarray_test_and_set_region()
571 if ((num_bits == 0) in sys_bitarray_test_and_set_region()
572 || (num_bits > bitarray->num_bits) in sys_bitarray_test_and_set_region()
573 || (offset >= bitarray->num_bits) in sys_bitarray_test_and_set_region()
574 || (off_end >= bitarray->num_bits)) { in sys_bitarray_test_and_set_region()
579 region_clear = match_region(bitarray, offset, num_bits, !to_set, &bd, NULL); in sys_bitarray_test_and_set_region()
581 set_region(bitarray, offset, num_bits, to_set, &bd); in sys_bitarray_test_and_set_region()
592 int sys_bitarray_set_region(sys_bitarray_t *bitarray, size_t num_bits, in sys_bitarray_set_region() argument
595 return set_clear_region(bitarray, num_bits, offset, true); in sys_bitarray_set_region()
598 int sys_bitarray_clear_region(sys_bitarray_t *bitarray, size_t num_bits, in sys_bitarray_clear_region() argument
601 return set_clear_region(bitarray, num_bits, offset, false); in sys_bitarray_clear_region()