extern "C" {
#endif
+#include <stdint.h>
+#include <rte_common.h>
#include <emmintrin.h>
#include "generic/rte_atomic.h"
#define rte_rmb() _mm_lfence()
+#define rte_smp_mb() rte_mb()
+
+#define rte_smp_wmb() rte_compiler_barrier()
+
+#define rte_smp_rmb() rte_compiler_barrier()
+
+#define rte_io_mb() rte_mb()
+
+#define rte_io_wmb() rte_compiler_barrier()
+
+#define rte_io_rmb() rte_compiler_barrier()
+
/*------------------------- 16 bit atomic operations -------------------------*/
#ifndef RTE_FORCE_INTRINSICS
: [cnt] "+m" (v->cnt), /* output */
[ret] "=qm" (ret)
);
- return (ret != 0);
+ return ret != 0;
}
static inline int rte_atomic16_dec_and_test(rte_atomic16_t *v)
: [cnt] "+m" (v->cnt), /* output */
[ret] "=qm" (ret)
);
- return (ret != 0);
+ return ret != 0;
}
/*------------------------- 32 bit atomic operations -------------------------*/
: [cnt] "+m" (v->cnt), /* output */
[ret] "=qm" (ret)
);
- return (ret != 0);
+ return ret != 0;
}
static inline int rte_atomic32_dec_and_test(rte_atomic32_t *v)
: [cnt] "+m" (v->cnt), /* output */
[ret] "=qm" (ret)
);
- return (ret != 0);
+ return ret != 0;
}
#endif