FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the source code of this file.
Macros | |
#define | clib_bitmap_dup(v) vec_dup(v) |
Duplicate a bitmap. More... | |
#define | clib_bitmap_free(v) vec_free(v) |
Free a bitmap. More... | |
#define | clib_bitmap_bytes(v) vec_bytes(v) |
Number of bytes in a bitmap. More... | |
#define | clib_bitmap_zero(v) vec_zero(v) |
Clear a bitmap. More... | |
#define | clib_bitmap_alloc(v, n_bits) v = vec_new (uword, ((n_bits) + BITS (uword) - 1) / BITS (uword)) |
Allocate a bitmap with the supplied number of bits. More... | |
#define | clib_bitmap_vec_validate(v, i) vec_validate_aligned((v),(i),sizeof(uword)) |
#define | clib_bitmap_validate(v, n_bits) clib_bitmap_vec_validate ((v), ((n_bits) - 1) / BITS (uword)) |
#define | clib_bitmap_foreach(i, ai) |
Macro to iterate across set bits in a bitmap. More... | |
#define | clib_bitmap_foreach_old(i, ai, body) |
Typedefs | |
typedef uword | clib_bitmap_t |
Functions | |
static uword | clib_bitmap_is_zero (uword *ai) |
predicate function; is an entire bitmap empty? More... | |
static uword | clib_bitmap_is_equal (uword *a, uword *b) |
predicate function; are two bitmaps equal? More... | |
static uword | clib_bitmap_set_no_check (uword *a, uword i, uword new_value) |
Sets the ith bit of a bitmap to new_value. More... | |
static uword * | clib_bitmap_set (uword *ai, uword i, uword value) |
Sets the ith bit of a bitmap to new_value Removes trailing zeros from the bitmap. More... | |
static uword | clib_bitmap_get (uword *ai, uword i) |
Gets the ith bit value from a bitmap. More... | |
static uword | clib_bitmap_get_no_check (uword *ai, uword i) |
Gets the ith bit value from a bitmap Does not sanity-check the bit position. More... | |
static uword | clib_bitmap_get_multiple_no_check (uword *ai, uword i, uword n_bits) |
static uword | clib_bitmap_get_multiple (uword *bitmap, uword i, uword n_bits) |
Gets the ith through ith + n_bits bit values from a bitmap. More... | |
static uword * | clib_bitmap_set_multiple (uword *bitmap, uword i, uword value, uword n_bits) |
sets the ith through ith + n_bits bits in a bitmap More... | |
static uword * | clib_bitmap_set_region (uword *bitmap, uword i, uword value, uword n_bits) |
static uword | clib_bitmap_first_set (uword *ai) |
Return the lowest numbered set bit in a bitmap. More... | |
static uword | clib_bitmap_last_set (uword *ai) |
Return the higest numbered set bit in a bitmap. More... | |
static uword | clib_bitmap_first_clear (uword *ai) |
Return the lowest numbered clear bit in a bitmap. More... | |
static uword | clib_bitmap_count_set_bits (uword *ai) |
Return the number of set bits in a bitmap. More... | |
static uword * | clib_bitmap_and (uword *ai, uword *bi) |
Logical operator across two bitmaps. More... | |
static uword * | clib_bitmap_andnot (uword *ai, uword *bi) |
Logical operator across two bitmaps. More... | |
static uword * | clib_bitmap_or (uword *ai, uword *bi) |
Logical operator across two bitmaps. More... | |
static uword * | clib_bitmap_xor (uword *ai, uword *bi) |
Logical operator across two bitmaps. More... | |
static uword * | clib_bitmap_dup_and (uword *ai, uword *bi) |
Logical operator across two bitmaps which duplicates the first bitmap. More... | |
static uword * | clib_bitmap_dup_andnot (uword *ai, uword *bi) |
Logical operator across two bitmaps which duplicates the first bitmap. More... | |
static uword * | clib_bitmap_dup_or (uword *ai, uword *bi) |
Logical operator across two bitmaps which duplicates the first bitmap. More... | |
static uword * | clib_bitmap_dup_xor (uword *ai, uword *bi) |
Logical operator across two bitmaps which duplicates the first bitmap. More... | |
uword | unformat_bitmap_list (unformat_input_t *input, va_list *va) |
unformat a list of bit ranges into a bitmap (eg "0-3,5-7,11" ) More... | |
u8 * | format_bitmap_hex (u8 *s, va_list *args) |
Format a bitmap as a string of hex bytes. More... | |
u8 * | format_bitmap_list (u8 *s, va_list *args) |
Format a bitmap as a list. More... | |
Variables | |
a = a & ~b | |
Bitmaps built as vectors of machine words
Definition in file bitmap.h.
#define clib_bitmap_bytes | ( | v | ) | vec_bytes(v) |
#define clib_bitmap_dup | ( | v | ) | vec_dup(v) |
#define clib_bitmap_foreach | ( | i, | |
ai | |||
) |
Macro to iterate across set bits in a bitmap.
i | - the current set bit |
ai | - the bitmap |
body | - the expression to evaluate for each set bit |
#define clib_bitmap_foreach_old | ( | i, | |
ai, | |||
body | |||
) |
#define clib_bitmap_free | ( | v | ) | vec_free(v) |
#define clib_bitmap_validate | ( | v, | |
n_bits | |||
) | clib_bitmap_vec_validate ((v), ((n_bits) - 1) / BITS (uword)) |
#define clib_bitmap_vec_validate | ( | v, | |
i | |||
) | vec_validate_aligned((v),(i),sizeof(uword)) |
#define clib_bitmap_zero | ( | v | ) | vec_zero(v) |
typedef uword clib_bitmap_t |
Logical operator across two bitmaps.
ai | - pointer to the destination bitmap |
bi | - pointer to the source bitmap |
Logical operator across two bitmaps.
ai | - pointer to the destination bitmap |
bi | - pointer to the source bitmap |
Logical operator across two bitmaps which duplicates the first bitmap.
ai | - pointer to the destination bitmap |
bi | - pointer to the source bitmap |
Logical operator across two bitmaps which duplicates the first bitmap.
ai | - pointer to the destination bitmap |
bi | - pointer to the source bitmap |
Logical operator across two bitmaps which duplicates the first bitmap.
ai | - pointer to the destination bitmap |
bi | - pointer to the source bitmap |
Logical operator across two bitmaps which duplicates the first bitmap.
ai | - pointer to the destination bitmap |
bi | - pointer to the source bitmap |
Gets the ith through ith + n_bits bit values from a bitmap.
bitmap | - pointer to the bitmap |
i | - the first bit position to retrieve |
n_bits | - the number of bit positions to retrieve |
Definition at line 235 of file bitmap.h.
Gets the ith bit value from a bitmap Does not sanity-check the bit position.
Be careful.
ai | - pointer to the bitmap |
i | - the bit position to interrogate |
Definition at line 212 of file bitmap.h.
Logical operator across two bitmaps.
ai | - pointer to the destination bitmap |
bi | - pointer to the source bitmap |
ai | - pointer to the destination bitmap |
bi | - pointer to the source bitmap |
|
inlinestatic |
sets the ith through ith + n_bits bits in a bitmap
bitmap | - pointer to the bitmap |
i | - the first bit position to retrieve |
value | - the values to set |
n_bits | - the number of bit positions to set |
Definition at line 275 of file bitmap.h.
Logical operator across two bitmaps.
ai | - pointer to the destination bitmap |
bi | - pointer to the source bitmap |
Format a bitmap as a string of hex bytes.
uword * bitmap; s = format ("%U", format_bitmap_hex(), bitmap);
Standard format_function_t arguments
s | - string under construction |
args | - varargs list comprising a single uword * |
Definition at line 107 of file bitmap.c.
Format a bitmap as a list.
uword * bitmap; s = format ("%U", format_bitmap_list(), bitmap);
Standard format_function_t arguments
s | - string under construction |
args | - varargs list comprising a single uword * |
Definition at line 143 of file bitmap.c.
uword unformat_bitmap_list | ( | unformat_input_t * | input, |
va_list * | va | ||
) |
unformat a list of bit ranges into a bitmap (eg "0-3,5-7,11" )
uword * bitmap; rv = unformat ("%U", unformat_bitmap_list(), &bitmap);
Standard unformat_function_t arguments
input | - pointer an unformat_input_t |
va | - varargs list comprising a single uword ** |
Definition at line 55 of file bitmap.c.