static inline u32
svm_fifo_max_dequeue (svm_fifo_t * f)
{
- return f->cursize;
+ return clib_atomic_load_acq_n (&f->cursize);
}
static inline int
svm_fifo_is_full (svm_fifo_t * f)
{
- return (f->cursize == f->nitems);
+ return (clib_atomic_load_acq_n (&f->cursize) == f->nitems);
}
static inline int
svm_fifo_is_empty (svm_fifo_t * f)
{
- return (f->cursize == 0);
+ return (clib_atomic_load_acq_n (&f->cursize) == 0);
}
static inline u32
always_inline void
svm_fifo_unset_event (svm_fifo_t * f)
{
- __sync_lock_release (&f->has_event);
+ clib_atomic_release (&f->has_event);
}
static inline void