1#ifndef BITFIELD_H_
2#define BITFIELD_H_
3
4#include <stddef.h>
5#include <inttypes.h>
6
7#define BITS_PER_CHAR 8
8#define BITFIELD_CHARS 2048
9#define BITFIELD_MAX (BITS_PER_CHAR*BITFIELD_CHARS)
10
11struct bitfield {
12	uint8_t field[BITFIELD_CHARS];
13};
14
15void bitfield_on(struct bitfield*, size_t);
16void bitfield_off(struct bitfield*, size_t);
17bool bitfield_get(struct bitfield* b, size_t bit_number);
18int32_t bitfield_union(struct bitfield** fields, size_t field_count, int32_t last);
19errval_t bitfield_create(struct bitfield** b);
20
21void print_bitfield(struct bitfield*, size_t, size_t);
22
23#endif /* BITFIELD_H_ */
24