[v8,11/14] eal: exclude exposure of rte atomic APIs for MSVC builds
Checks
Commit Message
It's discouraged to use rte_atomics APIs instead standard APIs should be
used from C11. Since MSVC is a new toolchain/platform combination block
visibility of the rte_atomic APIs from day 1.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
---
lib/eal/include/generic/rte_atomic.h | 7 +++++++
lib/eal/x86/include/rte_atomic.h | 4 ++++
2 files changed, 11 insertions(+)
@@ -131,6 +131,8 @@
/*------------------------- 16 bit atomic operations -------------------------*/
+#ifndef RTE_TOOLCHAIN_MSVC
+
/**
* Atomic compare and set.
*
@@ -1038,8 +1040,11 @@ static inline void rte_atomic64_clear(rte_atomic64_t *v)
}
#endif
+#endif
+
/*------------------------ 128 bit atomic operations -------------------------*/
+
/**
* 128-bit integer structure.
*/
@@ -1049,8 +1054,10 @@ static inline void rte_atomic64_clear(rte_atomic64_t *v)
union {
uint64_t val[2];
#ifdef RTE_ARCH_64
+#ifndef RTE_TOOLCHAIN_MSVC
__extension__ __int128 int128;
#endif
+#endif
};
} __rte_aligned(16) rte_int128_t;
@@ -83,6 +83,8 @@
#define rte_io_rmb() rte_compiler_barrier()
+#ifndef RTE_TOOLCHAIN_MSVC
+
/**
* Synchronization fence between threads based on the specified memory order.
*
@@ -279,6 +281,8 @@ static inline int rte_atomic32_dec_and_test(rte_atomic32_t *v)
#include "rte_atomic_64.h"
#endif
+#endif
+
#ifdef __cplusplus
}
#endif