#ifndef _ASMARM64_BARRIER_H_ #define _ASMARM64_BARRIER_H_ /* * From Linux arch/arm64/include/asm/barrier.h * * Copyright (C) 2017, Red Hat Inc, Andrew Jones * * This work is licensed under the terms of the GNU GPL, version 2. */ #define sev() asm volatile("sev" : : : "memory") #define wfe() asm volatile("wfe" : : : "memory") #define wfi() asm volatile("wfi" : : : "memory") #define yield() asm volatile("yield" : : : "memory") #define cpu_relax() yield() #define isb() asm volatile("isb" : : : "memory") #define dmb(opt) asm volatile("dmb " #opt : : : "memory") #define dsb(opt) asm volatile("dsb " #opt : : : "memory") #define mb() dsb(sy) #define rmb() dsb(ld) #define wmb() dsb(st) #define smp_mb() dmb(ish) #define smp_rmb() dmb(ishld) #define smp_wmb() dmb(ishst) #endif /* _ASMARM64_BARRIER_H_ */