|
@@ -59,6 +59,18 @@
|
|
|
#define cpu_relax() asm volatile ("hint @pause" ::: "memory")
|
|
|
#endif
|
|
|
|
|
|
+#ifdef __arm__
|
|
|
+#include "../../arch/arm/include/asm/unistd.h"
|
|
|
+/*
|
|
|
+ * Use the __kuser_memory_barrier helper in the CPU helper page. See
|
|
|
+ * arch/arm/kernel/entry-armv.S in the kernel source for details.
|
|
|
+ */
|
|
|
+#define rmb() asm volatile("mov r0, #0xffff0fff; mov lr, pc;" \
|
|
|
+ "sub pc, r0, #95" ::: "r0", "lr", "cc", \
|
|
|
+ "memory")
|
|
|
+#define cpu_relax() asm volatile("":::"memory")
|
|
|
+#endif
|
|
|
+
|
|
|
#include <time.h>
|
|
|
#include <unistd.h>
|
|
|
#include <sys/types.h>
|