X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fstruct%2Fbitarray.h;h=326617a34f0a1f7a8a6bfc1aff4716b42bb0a233;hb=2b74d29e47161c81ee4f055072a63a54310249c8;hp=76899c50ba3843987ed48c4179f8a8dec8a7857c;hpb=d26ef6386f8936886450c186dd22c30c6079a8a1;p=bertos.git diff --git a/bertos/struct/bitarray.h b/bertos/struct/bitarray.h index 76899c50..326617a3 100644 --- a/bertos/struct/bitarray.h +++ b/bertos/struct/bitarray.h @@ -116,6 +116,35 @@ INLINE bool bitarray_full(uint8_t *bit_array, size_t len) return 1; } +/* + * Ugly!.. reformat it. + */ +INLINE bool bitarray_blockFull(int idx, int offset, uint8_t *bit_array, size_t len) +{ + ASSERT((size_t)(idx + offset) <= len); + + for (int i = idx; i <= idx + offset; i++) + if (!bitarray_check(i, bit_array, len)) + return 0; + + return 1; +} + + +/* + * Ugly!.. reformat it. + */ +INLINE bool bitarray_blockEmpty(int idx, int offset, uint8_t *bit_array, size_t len) +{ + ASSERT((size_t)(idx + offset) <= len); + + for (int i = idx; i <= idx + offset; i++) + if (bitarray_check(i, bit_array, len)) + return 0; + + return 1; +} + INLINE void bitarray_dump(uint8_t *bit_array, size_t len) {