vppinfra: add atomic macros for __sync builtins
[vpp.git] / src / vnet / classify / vnet_classify.c
index ef45d1a..52cabbc 100644 (file)
@@ -13,7 +13,7 @@
  * limitations under the License.
  */
 #include <vnet/classify/vnet_classify.h>
-#include <vnet/classify/input_acl.h>
+#include <vnet/classify/in_out_acl.h>
 #include <vnet/ip/ip.h>
 #include <vnet/api_errno.h>    /* for API error numbers */
 #include <vnet/l2/l2_classify.h>       /* for L2_INPUT_CLASSIFY_NEXT_xxx */
@@ -140,7 +140,11 @@ vnet_classify_new_table (vnet_classify_main_t * cm,
   t->skip_n_vectors = skip_n_vectors;
   t->entries_per_page = 2;
 
+#if USE_DLMALLOC == 0
   t->mheap = mheap_alloc (0 /* use VM */ , memory_size);
+#else
+  t->mheap = create_mspace (memory_size, 1 /* locked */ );
+#endif
 
   vec_validate_aligned (t->buckets, nbuckets - 1, CLIB_CACHE_LINE_BYTES);
   oldheap = clib_mem_set_heap (t->mheap);
@@ -170,7 +174,11 @@ vnet_classify_delete_table_index (vnet_classify_main_t * cm,
 
   vec_free (t->mask);
   vec_free (t->buckets);
+#if USE_DLMALLOC == 0
   mheap_free (t->mheap);
+#else
+  destroy_mspace (t->mheap);
+#endif
 
   pool_put (cm->tables, t);
 }
@@ -436,7 +444,7 @@ vnet_classify_add_del (vnet_classify_table_t * t,
 
   hash >>= t->log2_nbuckets;
 
-  while (__sync_lock_test_and_set (t->writer_lock, 1))
+  while (clib_atomic_test_and_set (t->writer_lock))
     ;
 
   /* First elt in the bucket? */