Go to the documentation of this file.
20 #define BYTES_TO_BITS(x) (x * 8)
21 #define BITS_TO_BYTES(x) (((x) == 0) ? 0 : (((x) - 1) / 8 + 1)) // bytes required for a number of bits
24 void set_bits(uint8_t A[], uint32_t pos, uint32_t len);
27 uint32_t
get_bits(
const uint8_t A[], uint32_t pos, uint8_t len);
30 void clear_bits(uint8_t A[], uint32_t pos, uint32_t len);
33 void copy_bits(uint8_t DST[], uint32_t dst_pos,
const uint8_t SRC[], uint32_t src_pos, uint32_t len);
37 uint8_t
compare_bits(
const uint8_t SRC1[],
const uint8_t SRC2[], uint32_t len);
38 uint8_t
compare_bits_aligned(
const uint8_t SRC1[], uint16_t pos1,
const uint8_t SRC2[], uint16_t pos2, uint32_t len);
48 void xor_bits(uint8_t DST[], uint8_t SRC1[], uint8_t SRC2[], uint32_t len);
51 void and_bits(uint8_t DST[], uint8_t SRC1[], uint8_t SRC2[], uint32_t len);
54 void print_bitmap(
const uint8_t bitmap[], uint32_t length);
void shift_bits_right(uint8_t SRC[], uint16_t len, uint32_t shift)
shift a number of bits to the right
Definition: bit_operations.c:202
void copy_bits(uint8_t DST[], uint32_t dst_pos, const uint8_t SRC[], uint32_t src_pos, uint32_t len)
copy bits to a certain position in a bit array from another array big endian
Definition: bit_operations.c:82
void set_bits(uint8_t A[], uint32_t pos, uint32_t len)
sets bits at a certain position in a bit array big endian
Definition: bit_operations.c:25
uint8_t compare_bits(const uint8_t SRC1[], const uint8_t SRC2[], uint32_t len)
compare two bit arrays
Definition: bit_operations.c:108
void clear_bits(uint8_t A[], uint32_t pos, uint32_t len)
clear bits at a certain position in a bit array big endian
Definition: bit_operations.c:63
void and_bits(uint8_t DST[], uint8_t SRC1[], uint8_t SRC2[], uint32_t len)
logical AND two bit arrays
Definition: bit_operations.c:244
uint32_t get_bits(const uint8_t A[], uint32_t pos, uint8_t len)
get bits at a certain position in a bit array
Definition: bit_operations.c:42
uint8_t get_number_of_bytes_from_bits(uint16_t number_of_bits)
get the number of bytes required to store this amount of bits
Definition: bit_operations.c:274
uint8_t get_position_in_first_byte(uint8_t value)
get the starting bit of a value
Definition: bit_operations.c:305
uint8_t compare_bits_BIG_END(uint8_t SRC1[], uint8_t SRC2[], uint32_t len)
void shift_bits_left(uint8_t SRC[], uint16_t len, uint32_t shift)
shift a number of bits to the left
Definition: bit_operations.c:180
uint32_t get_required_number_of_bits(uint32_t value)
get the number of bits required to store a value
Definition: bit_operations.c:288
uint8_t padded(schc_bitarray_t *bit_array)
remove padding
Definition: bit_operations.c:322
void xor_bits(uint8_t DST[], uint8_t SRC1[], uint8_t SRC2[], uint32_t len)
logical XOR two bit arrays
Definition: bit_operations.c:227
uint8_t compare_bits_aligned(const uint8_t SRC1[], uint16_t pos1, const uint8_t SRC2[], uint16_t pos2, uint32_t len)
compare two bit arrays with starting point
Definition: bit_operations.c:133
void print_bitmap(const uint8_t bitmap[], uint32_t length)
print a bitmap
Definition: bit_operations.c:259