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