diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-09-05 17:53:05 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-09-05 17:53:05 +0200 |
commit | 28c3cfd5fb998bd3683bebeebbba38baa2101cad (patch) | |
tree | 3d325023e6dc56baa6c69fc59dd55bf37ef7967e /arch/alpha/include/asm/barrier.h | |
parent | 04197c83b3e05546d1003cfa3ff43f1639c0057f (diff) | |
parent | b380b0d4f7dffcc235c0facefa537d4655619101 (diff) |
Merge branch 'linus' into x86/tracehook
Diffstat (limited to 'arch/alpha/include/asm/barrier.h')
-rw-r--r-- | arch/alpha/include/asm/barrier.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/arch/alpha/include/asm/barrier.h b/arch/alpha/include/asm/barrier.h new file mode 100644 index 00000000000..ac78eba909b --- /dev/null +++ b/arch/alpha/include/asm/barrier.h @@ -0,0 +1,33 @@ +#ifndef __BARRIER_H +#define __BARRIER_H + +#include <asm/compiler.h> + +#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() do { } while (0) +#endif + +#define set_mb(var, value) \ +do { var = value; mb(); } while (0) + +#endif /* __BARRIER_H */ |