FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the source code of this file.
Data Structures | |
struct | vec_header_t |
vector header structure More... | |
Macros | |
#define | VEC_NUMA_UNSPECIFIED (0xFF) |
#define | vec_len(v) ((v) ? _vec_len(v) : 0) |
Number of elements in vector (rvalue-only, NULL tolerant) More... | |
#define | vec_numa(v) ((v) ? _vec_numa(v) : 0) |
Return vector's NUMA ID (rvalue-only, NULL tolerant) vec_numa(v) checks for NULL, but cannot be used as an lvalue. 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) ((v) ? (vec_capacity (v,0) - vec_header_bytes (0)) / sizeof (v[0]) : 0) |
Total number of elements that can fit into vector. More... | |
#define | vec_set_len(v, l) |
Set vector length to a user-defined value. More... | |
#define | vec_reset_length(v) do { if (v) vec_set_len (v, 0); } while (0) |
Reset vector length to zero NULL-pointer tolerant. 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) |
u32 | vec_len_not_inline (void *v) |
static uword | vec_get_numa (void *v) |
return the NUMA index for a vector More... | |
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 161 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 165 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 210 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 203 of file vec_bootstrap.h.
#define vec_end | ( | v | ) | ((v) + vec_len (v)) |
End (last data address) of vector.
Definition at line 197 of file vec_bootstrap.h.
Vector iterator.
Definition at line 213 of file vec_bootstrap.h.
Vector iterator (reverse)
Definition at line 216 of file vec_bootstrap.h.
Iterate over vector indices.
Definition at line 220 of file vec_bootstrap.h.
Iterate over vector indices (reverse).
Definition at line 223 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 200 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 142 of file vec_bootstrap.h.
#define vec_max_len | ( | v | ) | ((v) ? (vec_capacity (v,0) - vec_header_bytes (0)) / sizeof (v[0]) : 0) |
Total number of elements that can fit into vector.
Definition at line 174 of file vec_bootstrap.h.
#define vec_numa | ( | v | ) | ((v) ? _vec_numa(v) : 0) |
Return vector's NUMA ID (rvalue-only, NULL tolerant) vec_numa(v) checks for NULL, but cannot be used as an lvalue.
Definition at line 156 of file vec_bootstrap.h.
#define VEC_NUMA_UNSPECIFIED (0xFF) |
Definition at line 63 of file vec_bootstrap.h.
#define vec_reset_length | ( | v | ) | do { if (v) vec_set_len (v, 0); } while (0) |
Reset vector length to zero NULL-pointer tolerant.
Definition at line 194 of file vec_bootstrap.h.
#define vec_set_len | ( | v, | |
l | |||
) |
Set vector length to a user-defined value.
Definition at line 179 of file vec_bootstrap.h.
Definition at line 116 of file vec_bootstrap.h.
Definition at line 110 of file vec_bootstrap.h.
|
inlinestatic |
return the NUMA index for a vector
Definition at line 228 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 92 of file vec_bootstrap.h.
Definition at line 79 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 104 of file vec_bootstrap.h.