libosmocore
0.9.3
Osmocom core library
|
Files | |
file | bitvec.h |
Osmocom bit vector abstraction. | |
file | bitvec.c |
Osmocom bit vector abstraction. |
Data Structures | |
struct | bitvec |
structure describing a bit vector More... |
Macros | |
#define | BITNUM_FROM_COMP(byte, bit) ((byte*8)+bit) |
Enumerations | |
enum | bit_value { ZERO = 0, ONE = 1, L = 2, H = 3 } |
A single GSM bit. More... |
Functions | |
enum bit_value | bitvec_get_bit_pos (const struct bitvec *bv, unsigned int bitnr) |
check if the bit is 0 or 1 for a given position inside a bitvec | |
enum bit_value | bitvec_get_bit_pos_high (const struct bitvec *bv, unsigned int bitnr) |
check if the bit is L or H for a given position inside a bitvec | |
unsigned int | bitvec_get_nth_set_bit (const struct bitvec *bv, unsigned int n) |
get the Nth set bit inside the bit vector | |
int | bitvec_set_bit_pos (struct bitvec *bv, unsigned int bitnr, enum bit_value bit) |
set a bit at given position in a bit vector | |
int | bitvec_set_bit (struct bitvec *bv, enum bit_value bit) |
set the next bit inside a bitvec | |
int | bitvec_get_bit_high (struct bitvec *bv) |
get the next bit (low/high) inside a bitvec | |
int | bitvec_set_bits (struct bitvec *bv, enum bit_value *bits, int count) |
set multiple bits (based on array of bitvals) at current pos | |
int | bitvec_set_uint (struct bitvec *bv, unsigned int ui, int num_bits) |
set multiple bits (based on numeric value) at current pos | |
int | bitvec_get_uint (struct bitvec *bv, int num_bits) |
get multiple bits (based on numeric value) from current pos | |
int | bitvec_find_bit_pos (const struct bitvec *bv, unsigned int n, enum bit_value val) |
find first bit set in bit vector | |
int | bitvec_spare_padding (struct bitvec *bv, unsigned int up_to_bit) |
pad all remaining bits up to num_bits | |
static unsigned int | bytenum_from_bitnum (unsigned int bitnum) |
static uint8_t | bitval2mask (enum bit_value bit, uint8_t bitnum) |
enum bit_value |
check if the bit is 0 or 1 for a given position inside a bitvec
[in] | bv | the bit vector on which to check |
[in] | bitnr | the bit number inside the bit vector to check |
References data, data_len, ONE, and ZERO.
Referenced by bitvec_find_bit_pos(), bitvec_get_nth_set_bit(), and bitvec_get_uint().
check if the bit is L or H for a given position inside a bitvec
[in] | bv | the bit vector on which to check |
[in] | bitnr | the bit number inside the bit vector to check |
References data, data_len, H, and L.
Referenced by bitvec_get_bit_high().
unsigned int bitvec_get_nth_set_bit | ( | const struct bitvec * | bv, |
unsigned int | n | ||
) |
get the Nth set bit inside the bit vector
[in] | bv | the bit vector to use |
[in] | n | the bit number to get |
References bitvec_get_bit_pos(), data_len, and ONE.
set the next bit inside a bitvec
[in] | bv | bit vector to be used |
[in] | bit | value of the bit to be set |
References bitvec_set_bit_pos(), and cur_bit.
Referenced by bitvec_set_bits(), bitvec_set_uint(), and bitvec_spare_padding().
set a bit at given position in a bit vector
[in] | bv | bit vector on which to operate |
[in] | bitnr | number of bit to be set |
[in] | bit | value to which the bit is to be set |
References data, data_len, and ONE.
Referenced by bitvec_set_bit().
set multiple bits (based on array of bitvals) at current pos
[in] | bv | bit vector |
[in] | bits | array of bit_value |
[in] | count | number of bits to set |
References bitvec_set_bit().