Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/alpha/include/asm/barrier.h
15126 views
1
#ifndef __BARRIER_H
2
#define __BARRIER_H
3
4
#include <asm/compiler.h>
5
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 __ASM_SMP_MB "\tmb\n"
20
#define smp_mb() mb()
21
#define smp_rmb() rmb()
22
#define smp_wmb() wmb()
23
#define smp_read_barrier_depends() read_barrier_depends()
24
#else
25
#define __ASM_SMP_MB
26
#define smp_mb() barrier()
27
#define smp_rmb() barrier()
28
#define smp_wmb() barrier()
29
#define smp_read_barrier_depends() do { } while (0)
30
#endif
31
32
#define set_mb(var, value) \
33
do { var = value; mb(); } while (0)
34
35
#endif /* __BARRIER_H */
36
37