From ccf8cb18341427e2b8b34a94030f59318c19c922 Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Wed, 8 Nov 2017 16:28:58 -0700 Subject: [PATCH] barrier: explicitly check for x86 architecture Prepare for the addition of more architectures by replacing the #else case with an explicit x86 check, and add a final #else to trigger a compile-time error if the architecture is not supported. This adds a empty #defines of spdk_wmb() and spdk_mb() in the #else error case so that they still show up in the generated Doxygen output. Change-Id: Ia9e9de1648694013de1cd8a2e3edfa9b1166401c Signed-off-by: Daniel Verkamp Reviewed-on: https://review.gerrithub.io/386345 Tested-by: SPDK Automated Test System Reviewed-by: Ben Walker Reviewed-by: Ziye Yang Reviewed-by: Jim Harris --- include/spdk/barrier.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/include/spdk/barrier.h b/include/spdk/barrier.h index 58b23d653..8461032af 100644 --- a/include/spdk/barrier.h +++ b/include/spdk/barrier.h @@ -51,15 +51,21 @@ extern "C" { /** Write memory barrier */ #ifdef __PPC64__ #define spdk_wmb() __asm volatile("sync" ::: "memory") -#else +#elif defined(__i386__) || defined(__x86_64__) #define spdk_wmb() __asm volatile("sfence" ::: "memory") +#else +#define spdk_wmb() +#error Unknown architecture #endif /** Full read/write memory barrier */ #ifdef __PPC64__ #define spdk_mb() __asm volatile("sync" ::: "memory") -#else +#elif defined(__i386__) || defined(__x86_64__) #define spdk_mb() __asm volatile("mfence" ::: "memory") +#else +#define spdk_mb() +#error Unknown architecture #endif #ifdef __cplusplus