vppinfra: add atomic macros for __sync builtins
[vpp.git] / src / vnet / ipfix-export / flow_report_classify.c
index 46813ee..196cb72 100644 (file)
@@ -30,7 +30,9 @@ ipfix_classify_template_rewrite (flow_report_main_t * frm,
                                 flow_report_t * fr,
                                 ip4_address_t * collector_address,
                                 ip4_address_t * src_address,
-                                u16 collector_port)
+                                u16 collector_port,
+                                ipfix_report_element_t * elts,
+                                u32 n_elts, u32 * stream_index)
 {
   flow_report_classify_main_t *fcm = &flow_report_classify_main;
   vnet_classify_table_t *tblp;
@@ -195,7 +197,7 @@ ipfix_classify_send_flows (flow_report_main_t * frm,
 
   t = pool_elt_at_index (vcm->tables, table->classify_table_index);
 
-  while (__sync_lock_test_and_set (t->writer_lock, 1))
+  while (clib_atomic_test_and_set (t->writer_lock))
     ;
 
   for (i = 0; i < t->nbuckets; i++)
@@ -383,7 +385,7 @@ flush:
       bi0 = ~0;
     }
 
-  *(t->writer_lock) = 0;
+  clib_atomic_release (t->writer_lock);
   return f;
 }