xref: /kvmtool/riscv/include/kvm/barrier.h (revision 2e99678314c2de76d54cdf4ff7ff318ac350cb21)
1 #ifndef KVM__KVM_BARRIER_H
2 #define KVM__KVM_BARRIER_H
3 
4 #define nop()		__asm__ __volatile__ ("nop")
5 
6 #define RISCV_FENCE(p, s) \
7 	__asm__ __volatile__ ("fence " #p "," #s : : : "memory")
8 
9 /* These barriers need to enforce ordering on both devices or memory. */
10 #define mb()		RISCV_FENCE(iorw,iorw)
11 #define rmb()		RISCV_FENCE(ir,ir)
12 #define wmb()		RISCV_FENCE(ow,ow)
13 
14 #endif /* KVM__KVM_BARRIER_H */
15