summaryrefslogtreecommitdiff
path: root/contrib/ofed
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2017-12-11 11:59:45 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2017-12-11 11:59:45 +0000
commitb258727e794ba80ee28ea85c0dc0bb26c6e1315a (patch)
treefaa4429c61ac8c99645e622d1c95d3c1f7061526 /contrib/ofed
parent0521e6e192fb91917a5aa1074ccd175a90b85d48 (diff)
Notes
Diffstat (limited to 'contrib/ofed')
-rw-r--r--contrib/ofed/include/udma_barrier.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/contrib/ofed/include/udma_barrier.h b/contrib/ofed/include/udma_barrier.h
index 23acf233d763..71d264f8dce2 100644
--- a/contrib/ofed/include/udma_barrier.h
+++ b/contrib/ofed/include/udma_barrier.h
@@ -96,6 +96,14 @@
#define udma_to_device_barrier() asm volatile("dsb st" ::: "memory");
#elif defined(__sparc__) || defined(__s390x__)
#define udma_to_device_barrier() asm volatile("" ::: "memory")
+#elif defined(__mips__)
+#include <sys/types.h>
+#include <machine/atomic.h>
+#define udma_to_device_barrier() mips_sync()
+#elif defined(__arm__)
+#include <sys/types.h>
+#include <machine/atomic.h>
+#define udma_to_device_barrier() dmb()
#else
#error No architecture specific memory barrier defines found!
#endif
@@ -128,6 +136,10 @@
#define udma_from_device_barrier() asm volatile("dsb ld" ::: "memory");
#elif defined(__sparc__) || defined(__s390x__)
#define udma_from_device_barrier() asm volatile("" ::: "memory")
+#elif defined(__mips__)
+#define udma_from_device_barrier() mips_sync()
+#elif defined(__arm__)
+#define udma_from_device_barrier() dmb()
#else
#error No architecture specific memory barrier defines found!
#endif
@@ -192,6 +204,10 @@
#define mmio_flush_writes() asm volatile("dsb st" ::: "memory");
#elif defined(__sparc__) || defined(__s390x__)
#define mmio_flush_writes() asm volatile("" ::: "memory")
+#elif defined(__mips__)
+#define mmio_flush_writes() mips_sync()
+#elif defined(__arm__)
+#define mmio_flush_writes() dmb()
#else
#error No architecture specific memory barrier defines found!
#endif