|
@@ -4,6 +4,7 @@
|
|
|
#include <linux/config.h>
|
|
|
#include <asm/pal.h>
|
|
|
#include <asm/page.h>
|
|
|
+#include <asm/barrier.h>
|
|
|
|
|
|
/*
|
|
|
* System defines.. Note that this is included both from .c and .S
|
|
@@ -139,36 +140,6 @@ extern void halt(void) __attribute__((noreturn));
|
|
|
struct task_struct;
|
|
|
extern struct task_struct *alpha_switch_to(unsigned long, struct task_struct*);
|
|
|
|
|
|
-#define mb() \
|
|
|
-__asm__ __volatile__("mb": : :"memory")
|
|
|
-
|
|
|
-#define rmb() \
|
|
|
-__asm__ __volatile__("mb": : :"memory")
|
|
|
-
|
|
|
-#define wmb() \
|
|
|
-__asm__ __volatile__("wmb": : :"memory")
|
|
|
-
|
|
|
-#define read_barrier_depends() \
|
|
|
-__asm__ __volatile__("mb": : :"memory")
|
|
|
-
|
|
|
-#ifdef CONFIG_SMP
|
|
|
-#define smp_mb() mb()
|
|
|
-#define smp_rmb() rmb()
|
|
|
-#define smp_wmb() wmb()
|
|
|
-#define smp_read_barrier_depends() read_barrier_depends()
|
|
|
-#else
|
|
|
-#define smp_mb() barrier()
|
|
|
-#define smp_rmb() barrier()
|
|
|
-#define smp_wmb() barrier()
|
|
|
-#define smp_read_barrier_depends() barrier()
|
|
|
-#endif
|
|
|
-
|
|
|
-#define set_mb(var, value) \
|
|
|
-do { var = value; mb(); } while (0)
|
|
|
-
|
|
|
-#define set_wmb(var, value) \
|
|
|
-do { var = value; wmb(); } while (0)
|
|
|
-
|
|
|
#define imb() \
|
|
|
__asm__ __volatile__ ("call_pal %0 #imb" : : "i" (PAL_imb) : "memory")
|
|
|
|