FD.io VPP
v19.01.2-3-gf61a1a8
Vector Packet Processing
|
Vector bootstrap header file. More...
Go to the source code of this file.
Data Structures | |
struct | vec_header_t |
vector header structure More... | |
Macros | |
#define | vec_len(v) ((v) ? _vec_len(v) : 0) |
Number of elements in vector (rvalue-only, NULL tolerant) More... | |
#define | vec_reset_length(v) do { if (v) _vec_len (v) = 0; } while (0) |
Reset vector length to zero NULL-pointer tolerant. More... | |
#define | vec_bytes(v) (vec_len (v) * sizeof (v[0])) |
Number of data bytes in vector. More... | |
#define | vec_capacity(v, b) |
Total number of bytes that can fit in vector with current allocation. More... | |
#define | vec_max_len(v) (vec_capacity(v,0) / sizeof (v[0])) |
Total number of elements that can fit into vector. More... | |
#define | vec_end(v) ((v) + vec_len (v)) |
End (last data address) of vector. More... | |
#define | vec_is_member(v, e) ((e) >= (v) && (e) < vec_end (v)) |
True if given pointer is within given vector. More... | |
#define | vec_elt_at_index(v, i) |
Get vector value at index i checking that i is in bounds. More... | |
#define | vec_elt(v, i) (vec_elt_at_index(v,i))[0] |
Get vector value at index i. More... | |
#define | vec_foreach(var, vec) for (var = (vec); var < vec_end (vec); var++) |
Vector iterator. More... | |
#define | vec_foreach_backwards(var, vec) for (var = vec_end (vec) - 1; var >= (vec); var--) |
Vector iterator (reverse) More... | |
#define | vec_foreach_index(var, v) for ((var) = 0; (var) < vec_len (v); (var)++) |
Iterate over vector indices. More... | |
#define | vec_foreach_index_backwards(var, v) for ((var) = vec_len((v)) - 1; (var) >= 0; (var)--) |
Iterate over vector indices (reverse). More... | |
Functions | |
static uword | vec_header_bytes (uword header_bytes) |
static void * | vec_header (void *v, uword header_bytes) |
Find a user vector header. More... | |
static void * | vec_header_end (void *v, uword header_bytes) |
Find the end of user vector header. More... | |
static uword | vec_aligned_header_bytes (uword header_bytes, uword align) |
static void * | vec_aligned_header (void *v, uword header_bytes, uword align) |
static void * | vec_aligned_header_end (void *v, uword header_bytes, uword align) |
Vector bootstrap header file.
Definition in file vec_bootstrap.h.
#define vec_bytes | ( | v | ) | (vec_len (v) * sizeof (v[0])) |
Number of data bytes in vector.
Definition at line 153 of file vec_bootstrap.h.
#define vec_capacity | ( | v, | |
b | |||
) |
Total number of bytes that can fit in vector with current allocation.
Definition at line 157 of file vec_bootstrap.h.
#define vec_elt | ( | v, | |
i | |||
) | (vec_elt_at_index(v,i))[0] |
Get vector value at index i.
Definition at line 182 of file vec_bootstrap.h.
#define vec_elt_at_index | ( | v, | |
i | |||
) |
Get vector value at index i checking that i is in bounds.
Definition at line 175 of file vec_bootstrap.h.
#define vec_end | ( | v | ) | ((v) + vec_len (v)) |
End (last data address) of vector.
Definition at line 169 of file vec_bootstrap.h.
Vector iterator.
Definition at line 185 of file vec_bootstrap.h.
Vector iterator (reverse)
Definition at line 188 of file vec_bootstrap.h.
Iterate over vector indices.
Definition at line 192 of file vec_bootstrap.h.
Iterate over vector indices (reverse).
Definition at line 195 of file vec_bootstrap.h.
#define vec_is_member | ( | v, | |
e | |||
) | ((e) >= (v) && (e) < vec_end (v)) |
True if given pointer is within given vector.
Definition at line 172 of file vec_bootstrap.h.
#define vec_len | ( | v | ) | ((v) ? _vec_len(v) : 0) |
Number of elements in vector (rvalue-only, NULL tolerant)
vec_len (v) checks for NULL, but cannot be used as an lvalue. If in doubt, use vec_len...
Definition at line 143 of file vec_bootstrap.h.
#define vec_max_len | ( | v | ) | (vec_capacity(v,0) / sizeof (v[0])) |
Total number of elements that can fit into vector.
Definition at line 166 of file vec_bootstrap.h.
#define vec_reset_length | ( | v | ) | do { if (v) _vec_len (v) = 0; } while (0) |
Reset vector length to zero NULL-pointer tolerant.
Definition at line 149 of file vec_bootstrap.h.
Definition at line 117 of file vec_bootstrap.h.
Definition at line 111 of file vec_bootstrap.h.
Definition at line 123 of file vec_bootstrap.h.
|
inlinestatic |
Find a user vector header.
Finds the user header of a vector with unspecified alignment given the user pointer to the vector.
Definition at line 93 of file vec_bootstrap.h.
Definition at line 80 of file vec_bootstrap.h.
|
inlinestatic |
Find the end of user vector header.
Finds the end of the user header of a vector with unspecified alignment given the user pointer to the vector.
Definition at line 105 of file vec_bootstrap.h.