summaryrefslogtreecommitdiffstats
path: root/sys/arm/include/atomic-v4.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arm/include/atomic-v4.h')
-rw-r--r--sys/arm/include/atomic-v4.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/sys/arm/include/atomic-v4.h b/sys/arm/include/atomic-v4.h
index 7048178..2854655 100644
--- a/sys/arm/include/atomic-v4.h
+++ b/sys/arm/include/atomic-v4.h
@@ -439,4 +439,37 @@ atomic_subtract_long(volatile u_long *p, u_long v)
atomic_subtract_32((volatile uint32_t *)p, v);
}
+/*
+ * ARMv5 does not support SMP. For both kernel and user modes, only a
+ * compiler barrier is needed for fences, since CPU is always
+ * self-consistent.
+ */
+static __inline void
+atomic_thread_fence_acq(void)
+{
+
+ __compiler_membar();
+}
+
+static __inline void
+atomic_thread_fence_rel(void)
+{
+
+ __compiler_membar();
+}
+
+static __inline void
+atomic_thread_fence_acq_rel(void)
+{
+
+ __compiler_membar();
+}
+
+static __inline void
+atomic_thread_fence_seq_cst(void)
+{
+
+ __compiler_membar();
+}
+
#endif /* _MACHINE_ATOMIC_H_ */
OpenPOWER on IntegriCloud