X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvppinfra%2Fvec_bootstrap.h;h=fec0df0814302fe443ea5fd8ce64fc963a159f4b;hb=b4d3053;hp=3b8c770744cbb23ecc75ff272537328aa409a95c;hpb=7cd468a3d7dee7d6c92f69a0bb7061ae208ec727;p=vpp.git diff --git a/src/vppinfra/vec_bootstrap.h b/src/vppinfra/vec_bootstrap.h index 3b8c770744c..fec0df08143 100644 --- a/src/vppinfra/vec_bootstrap.h +++ b/src/vppinfra/vec_bootstrap.h @@ -39,7 +39,7 @@ #define included_clib_vec_bootstrap_h /** \file - Vector bootsrap header file + Vector bootstrap header file */ /* Bootstrap include so that #include can include e.g. @@ -47,7 +47,7 @@ /** \brief vector header structure - Bookeeping header preceding vector elements in memory. + Bookkeeping header preceding vector elements in memory. User header information may preceed standard vec header. If you change u32 len -> u64 len, single vectors can exceed 2**32 elements. Clib heaps are vectors. */ @@ -58,6 +58,7 @@ typedef struct u64 len; #else u32 len; /**< Number of elements in vector (NOT its allocated length). */ + u32 dlmalloc_header_offset; /**< offset to memory allocator offset */ #endif u8 vector_data[0]; /**< Vector data . */ } vec_header_t; @@ -190,6 +191,10 @@ for (var = vec_end (vec) - 1; var >= (vec); var--) /** \brief Iterate over vector indices. */ #define vec_foreach_index(var,v) for ((var) = 0; (var) < vec_len (v); (var)++) +/** \brief Iterate over vector indices (reverse). */ +#define vec_foreach_index_backwards(var,v) \ + for ((var) = vec_len((v)) - 1; (var) >= 0; (var)--) + #endif /* included_clib_vec_bootstrap_h */ /*