typedef struct
{
u32 len; /**< Number of elements in vector (NOT its allocated length). */
- u8 numa_id; /**< NUMA id */
u8 hdr_size; /**< header size divided by VEC_HEADER_ROUND */
u8 log2_align; /**< data alignment */
- u8 vpad[1]; /**< pad to 8 bytes */
+ u8 vpad[2]; /**< pad to 8 bytes */
u8 vector_data[0]; /**< Vector data . */
} vec_header_t;
-#define VEC_NUMA_UNSPECIFIED (0xFF)
-
#define VEC_HEADER_ROUND 8
/** \brief Find the vector header
vec_get_header_size (void *v)
{
uword header_size = _vec_find (v)->hdr_size * VEC_HEADER_ROUND;
- ASSERT (header_size >= vec_header_bytes (0));
return header_size;
}
*/
always_inline void *
-vec_header (void *v, uword header_bytes)
+vec_header (void *v)
{
- return v - vec_header_bytes (header_bytes);
+ return v ? v - vec_get_header_size (v) : 0;
}
/** \brief Find the end of user vector header
*/
always_inline void *
-vec_header_end (void *v, uword header_bytes)
-{
- return v + vec_header_bytes (header_bytes);
-}
-
-always_inline uword
-vec_aligned_header_bytes (uword header_bytes, uword align)
-{
- return round_pow2 (header_bytes + sizeof (vec_header_t), align);
-}
-
-always_inline void *
-vec_aligned_header (void *v, uword header_bytes, uword align)
-{
- return v - vec_aligned_header_bytes (header_bytes, align);
-}
-
-always_inline void *
-vec_aligned_header_end (void *v, uword header_bytes, uword align)
+vec_header_end (void *v)
{
- return v + vec_aligned_header_bytes (header_bytes, align);
+ return v + vec_get_header_size (v);
}
-
/** \brief Number of elements in vector (lvalue-capable)
_vec_len (v) does not check for null, but can be used as an lvalue
#define vec_len(v) ((v) ? _vec_len(v) : 0)
u32 vec_len_not_inline (void *v);
-/** \brief Vector's NUMA id (lvalue-capable)
-
- _vec_numa(v) does not check for null, but can be used as an lvalue
- (e.g. _vec_numa(v) = 1).
-*/
-
-#define _vec_numa(v) (_vec_find(v)->numa_id)
-
-/** \brief Return vector's NUMA ID (rvalue-only, NULL tolerant)
- vec_numa(v) checks for NULL, but cannot be used as an lvalue.
-*/
-#define vec_numa(v) ((v) ? _vec_numa(v) : 0)
-
-
/** \brief Number of data bytes in vector. */
#define vec_bytes(v) (vec_len (v) * sizeof (v[0]))
if (v) \
for ((var) = vec_len ((v)) - 1; (var) >= 0; (var)--)
-/** \brief return the NUMA index for a vector */
-always_inline uword
-vec_get_numa (void *v)
-{
- vec_header_t *vh;
- if (v == 0)
- return 0;
- vh = _vec_find (v);
- return vh->numa_id;
-}
-
#endif /* included_clib_vec_bootstrap_h */
/*