bitarray.h File Reference
Bitarray module. More...
#include <cfg/compiler.h>#include <cfg/macros.h>#include <cfg/debug.h>#include <cpu/types.h>Go to the source code of this file.
Defines | |
| #define | BITARRAY_ALLOC(name, size) uint8_t name[DIV_ROUNDUP((size), 8)] |
| Convenience macro to create a memory area for the BitArray. | |
Functions | |
| void | bitarray_set (BitArray *bitx, int idx) |
| Set one bit into the bit array. | |
| void | bitarray_clear (BitArray *bitx, int idx) |
| Clear one bit in the bit array. | |
| void | bitarray_setRange (BitArray *bitx, int idx, int offset) |
| Set a range of bits. | |
| void | bitarray_clearRange (BitArray *bitx, int idx, int offset) |
| Clear a range of bits. | |
| bool | bitarray_test (BitArray *bitx, int idx) |
| Test a bit. | |
| bool | bitarray_isFull (BitArray *bitx) |
| Check if the bitarray is full. | |
| bool | bitarray_isRangeFull (BitArray *bitx, int idx, int offset) |
| Test if a range of bit is full. | |
| bool | bitarray_isRangeEmpty (BitArray *bitx, int idx, int offset) |
| Test if a range of bit is empty. | |
| void | bitarray_dump (BitArray *bitx) |
| Print on debug serial a BitArray. | |
| void | bitarray_init (BitArray *bitx, size_t bitarray_len, uint8_t *array, size_t size) |
| Init a BitArray. | |
Detailed Description
Bitarray module.
Definition in file bitarray.h.
Define Documentation
| #define BITARRAY_ALLOC | ( | name, | |||
| size | ) | uint8_t name[DIV_ROUNDUP((size), 8)] |
Convenience macro to create a memory area for the BitArray.
- Parameters:
-
name Name of the variable. size Number of bits requested. It will be rounded to the nearest byte
Definition at line 61 of file bitarray.h.
Function Documentation
| void bitarray_clear | ( | BitArray * | bitx, | |
| int | idx | |||
| ) | [inline] |
Clear one bit in the bit array.
- Parameters:
-
bitx BitArray context idx The bit to clear
Definition at line 83 of file bitarray.h.
| void bitarray_clearRange | ( | BitArray * | bitx, | |
| int | idx, | |||
| int | offset | |||
| ) | [inline] |
Clear a range of bits.
The range starts from idx (inclusive) and spans offset bits.
- Parameters:
-
bitx BitArray context idx Starting bit offset Number of bits to clear
Definition at line 119 of file bitarray.h.
| void bitarray_dump | ( | BitArray * | bitx | ) | [inline] |
Print on debug serial a BitArray.
- Note:
- This module does not use the logging module, so you can't decide the logging level.
- Parameters:
-
bitx BitArray to be printed.
Definition at line 217 of file bitarray.h.
| void bitarray_init | ( | BitArray * | bitx, | |
| size_t | bitarray_len, | |||
| uint8_t * | array, | |||
| size_t | size | |||
| ) | [inline] |
Init a BitArray.
The BitArray uses an external array for storage. You can use the macro BITARRAY_ALLOC to declare an appropriate memory size. Example usage:
BITARRAY_ALLOC(bits_mem, 17); BitArray bits; bitarray_init(&bits, 17, bits_mem, sizeof(bits_mem))
- Parameters:
-
bitx BitArray context bitarray_len Number of bits in the BitArray array Memory area for the BitArray size Size (in bytes) of the memory area array
Definition at line 257 of file bitarray.h.
| bool bitarray_isFull | ( | BitArray * | bitx | ) | [inline] |
Check if the bitarray is full.
Only bitarray_len bits are tested.
- Parameters:
-
bitx BitArray to test
- Returns:
- True if bitx is full, false otherwise
Definition at line 151 of file bitarray.h.
| bool bitarray_isRangeEmpty | ( | BitArray * | bitx, | |
| int | idx, | |||
| int | offset | |||
| ) | [inline] |
Test if a range of bit is empty.
- Parameters:
-
bitx BitArray context idx Starting bit offset Number of bits to test
- Returns:
- True if range is empty, false otherwise
Definition at line 200 of file bitarray.h.
| bool bitarray_isRangeFull | ( | BitArray * | bitx, | |
| int | idx, | |||
| int | offset | |||
| ) | [inline] |
Test if a range of bit is full.
- Parameters:
-
bitx BitArray context idx Starting bit offset Number of bits to test
- Returns:
- True if range is full, false otherwise
Definition at line 178 of file bitarray.h.
| void bitarray_set | ( | BitArray * | bitx, | |
| int | idx | |||
| ) | [inline] |
Set one bit into the bit array.
- Parameters:
-
bitx BitArray context idx The bit to set
Definition at line 68 of file bitarray.h.
| void bitarray_setRange | ( | BitArray * | bitx, | |
| int | idx, | |||
| int | offset | |||
| ) | [inline] |
Set a range of bits.
The range starts from idx (inclusive) and spans offset bits.
- Parameters:
-
bitx BitArray context idx Starting bit offset Number of bit to set
Definition at line 102 of file bitarray.h.
| bool bitarray_test | ( | BitArray * | bitx, | |
| int | idx | |||
| ) | [inline] |
Test a bit.
- Parameters:
-
bitx BitArray context idx Bit to test
- Returns:
- True if bit is set, false otherwise.
Definition at line 134 of file bitarray.h.
