vppinfra: add os_get_online_cpu_core() and os_get_online_cpu_node()
[vpp.git] / src / vppinfra / heap.c
index bc3e8cb..7db8142 100644 (file)
@@ -139,7 +139,7 @@ elt_delete (heap_header_t * h, heap_elt_t * e)
   if (e < l)
     vec_add1 (h->free_elts, e - h->elts);
   else
-    _vec_len (h->elts)--;
+    vec_dec_len (h->elts, 1);
 }
 
 /*
@@ -200,7 +200,7 @@ elt_new (heap_header_t * h)
   if ((l = vec_len (h->free_elts)) > 0)
     {
       e = elt_at (h, h->free_elts[l - 1]);
-      _vec_len (h->free_elts) -= 1;
+      vec_dec_len (h->free_elts, 1);
     }
   else
     vec_add2 (h->elts, e, 1);
@@ -276,7 +276,7 @@ remove_free_block (void *v, uword b, uword i)
       h->free_lists[b][i] = t;
       set_free_elt (v, elt_at (h, t), i);
     }
-  _vec_len (h->free_lists[b]) = l - 1;
+  vec_set_len (h->free_lists[b], l - 1);
 }
 
 static heap_elt_t *
@@ -413,6 +413,9 @@ _heap_alloc (void *v,
   if (!e)
     {
       uword max_len;
+      vec_attr_t va = { .elt_sz = elt_bytes,
+                       .hdr_sz = sizeof (h[0]),
+                       .align = HEAP_DATA_ALIGN };
 
       offset = vec_len (v);
       max_len = heap_get_max_len (v);
@@ -422,12 +425,9 @@ _heap_alloc (void *v,
 
       h = heap_header (v);
       if (!v || !(h->flags & HEAP_IS_STATIC))
-       v = _vec_resize (v,
-                        align_size,
-                        (offset + align_size) * elt_bytes,
-                        sizeof (h[0]), HEAP_DATA_ALIGN);
+       v = _vec_realloc_internal (v, offset + align_size, &va);
       else
-       _vec_len (v) += align_size;
+       vec_inc_len (v, align_size);
 
       if (offset == 0)
        {