Commit | Line | Data |
---|---|---|
0db9ae4a AM |
1 | #ifndef __BARRIER_H |
2 | #define __BARRIER_H | |
3 | ||
63f324cf IK |
4 | #include <asm/compiler.h> |
5 | ||
0db9ae4a AM |
6 | #define mb() \ |
7 | __asm__ __volatile__("mb": : :"memory") | |
8 | ||
9 | #define rmb() \ | |
10 | __asm__ __volatile__("mb": : :"memory") | |
11 | ||
12 | #define wmb() \ | |
13 | __asm__ __volatile__("wmb": : :"memory") | |
14 | ||
15 | #define read_barrier_depends() \ | |
16 | __asm__ __volatile__("mb": : :"memory") | |
17 | ||
18 | #ifdef CONFIG_SMP | |
19 | #define smp_mb() mb() | |
20 | #define smp_rmb() rmb() | |
21 | #define smp_wmb() wmb() | |
22 | #define smp_read_barrier_depends() read_barrier_depends() | |
23 | #else | |
24 | #define smp_mb() barrier() | |
25 | #define smp_rmb() barrier() | |
26 | #define smp_wmb() barrier() | |
27 | #define smp_read_barrier_depends() barrier() | |
28 | #endif | |
29 | ||
30 | #define set_mb(var, value) \ | |
31 | do { var = value; mb(); } while (0) | |
32 | ||
0db9ae4a | 33 | #endif /* __BARRIER_H */ |