@@ -18,6 +18,7 @@
extern "C" {
#endif
+#include <plat/odp_sync.h>
/**
* Synchronise stores
@@ -25,35 +26,10 @@ extern "C" {
* Ensures that all CPU store operations that precede the odp_sync_stores()
* call are globally visible before any store operation that follows it.
*/
-static inline void odp_sync_stores(void)
-{
-#if defined __x86_64__ || defined __i386__
-
- __asm__ __volatile__ ("sfence\n" : : : "memory");
-
-#elif defined __arm__
-
- __asm__ __volatile__ ("dmb st" : : : "memory");
-
-#elif defined __OCTEON__
-
- __asm__ __volatile__ ("syncws\n" : : : "memory");
-
-#else
- __sync_synchronize();
-#endif
-}
-
+void odp_sync_stores(void);
#ifdef __cplusplus
}
#endif
#endif
-
-
-
-
-
-
-
new file mode 100644
@@ -0,0 +1,43 @@
+/* Copyright (c) 2013, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+
+/**
+ * @file
+ *
+ * ODP synchronisation
+ */
+
+#ifndef ODP_SYNC_H_
+#error This file should be included only into corresponding top level header
+#else
+
+/**
+ * Synchronise stores
+ *
+ * Ensures that all CPU store operations that precede the odp_sync_stores()
+ * call are globally visible before any store operation that follows it.
+ */
+static inline void odp_sync_stores(void)
+{
+#if defined __x86_64__ || defined __i386__
+
+ __asm__ __volatile__ ("sfence\n" : : : "memory");
+
+#elif defined __arm__
+
+ __asm__ __volatile__ ("dmb st" : : : "memory");
+
+#elif defined __OCTEON__
+
+ __asm__ __volatile__ ("syncws\n" : : : "memory");
+
+#else
+ __sync_synchronize();
+#endif
+}
+
+#endif