Bitfield operations on bitfields of arbitrary length. More...
Bitfield operations on bitfields of arbitrary length.
Definition in file bitfield.h.
Include dependency graph for bitfield.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Macros | |
| #define | BITFIELD(NAME, SIZE) |
| Declare a bitfield of a given size. | |
Functions | |
| static void | bf_set (uint8_t field[], size_t idx) |
| Set the bit to 1. | |
| static void | bf_set_atomic (uint8_t field[], size_t idx) |
| Atomically set the bit to 1. | |
| static void | bf_unset (uint8_t field[], size_t idx) |
| Clear the bit. | |
| static void | bf_unset_atomic (uint8_t field[], size_t idx) |
| Atomically clear the bit. | |
| static void | bf_toggle (uint8_t field[], size_t idx) |
| Toggle the bit. | |
| static void | bf_toggle_atomic (uint8_t field[], size_t idx) |
| Atomically toggle the bit. | |
| static bool | bf_isset (const uint8_t field[], size_t idx) |
| Check if the bet is set. | |
| static void | bf_or (uint8_t out[], const uint8_t a[], const uint8_t b[], size_t len) |
Perform a bitwise OR operation on two bitfields out = a | b | |
| static void | bf_or_atomic (uint8_t out[], const uint8_t a[], const uint8_t b[], size_t len) |
Atomically perform a bitwise OR operation on two bitfields out = a | b | |
| static void | bf_and (uint8_t out[], const uint8_t a[], const uint8_t b[], size_t len) |
Perform a bitwise AND operation on two bitfields out = a & b | |
| static void | bf_and_atomic (uint8_t out[], const uint8_t a[], const uint8_t b[], size_t len) |
Atomically perform a bitwise AND operation on two bitfields out = a & b | |
| static void | bf_xor (uint8_t out[], const uint8_t a[], const uint8_t b[], size_t len) |
Perform a bitwise XOR operation on two bitfields out = a ^ b | |
| static void | bf_xor_atomic (uint8_t out[], const uint8_t a[], const uint8_t b[], size_t len) |
Atomically perform a bitwise XOR operation on two bitfields out = a ^ b | |
| static void | bf_inv (uint8_t out[], const uint8_t a[], size_t len) |
Perform a bitwise NOT operation on a bitfield out = ~a | |
| static void | bf_inv_atomic (uint8_t out[], const uint8_t a[], size_t len) |
Atomically perform a bitwise NOT operation on a bitfield out = ~a | |
| int | bf_get_unset (uint8_t field[], size_t len) |
| Atomically get the number of an unset bit and set it. | |
| int | bf_find_first_set (const uint8_t field[], size_t size) |
| Get the index of the first set bit in the field. | |
| int | bf_find_first_unset (const uint8_t field[], size_t size) |
| Get the index of the zero bit in the field. | |
| void | bf_set_all (uint8_t field[], size_t size) |
| Set all bits in the bitfield to 1. | |
| static void | bf_set_all_atomic (uint8_t field[], size_t size) |
| Atomically set all bits in the bitfield to 1. | |
| void | bf_clear_all (uint8_t field[], size_t size) |
| Clear all bits in the bitfield to 0. | |
| static void | bf_clear_all_atomic (uint8_t field[], size_t size) |
| Atomically clear all bits in the bitfield to 0. | |
| unsigned | bf_popcnt (const uint8_t field[], size_t size) |
| Count set bits in the bitfield. | |