vppinfra: add atomic macros for __sync builtins
[vpp.git] / src / svm / message_queue.c
index a73a56d..13d089a 100644 (file)
@@ -108,7 +108,7 @@ svm_msg_q_alloc_msg_w_ring (svm_msg_q_t * mq, u32 ring_index)
   msg.ring_index = ring - mq->rings;
   msg.elt_index = ring->tail;
   ring->tail = (ring->tail + 1) % ring->nitems;
-  __sync_fetch_and_add (&ring->cursize, 1);
+  clib_atomic_fetch_add (&ring->cursize, 1);
   return msg;
 }
 
@@ -155,7 +155,7 @@ svm_msg_q_alloc_msg (svm_msg_q_t * mq, u32 nbytes)
     msg.ring_index = ring - mq->rings;
     msg.elt_index = ring->tail;
     ring->tail = (ring->tail + 1) % ring->nitems;
-    __sync_fetch_and_add (&ring->cursize, 1);
+    clib_atomic_fetch_add (&ring->cursize, 1);
     break;
   }
   return msg;
@@ -185,7 +185,7 @@ svm_msg_q_free_msg (svm_msg_q_t * mq, svm_msg_q_msg_t * msg)
       /* for now, expect messages to be processed in order */
       ASSERT (0);
     }
-  __sync_fetch_and_sub (&ring->cursize, 1);
+  clib_atomic_fetch_sub (&ring->cursize, 1);
 }
 
 static int