Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef __BARRIER_H
0003 #define __BARRIER_H
0004 
0005 #define mb()    __asm__ __volatile__("mb": : :"memory")
0006 #define rmb()   __asm__ __volatile__("mb": : :"memory")
0007 #define wmb()   __asm__ __volatile__("wmb": : :"memory")
0008 
0009 #define __smp_load_acquire(p)                       \
0010 ({                                  \
0011     compiletime_assert_atomic_type(*p);             \
0012     __READ_ONCE(*p);                        \
0013 })
0014 
0015 #ifdef CONFIG_SMP
0016 #define __ASM_SMP_MB    "\tmb\n"
0017 #else
0018 #define __ASM_SMP_MB
0019 #endif
0020 
0021 #include <asm-generic/barrier.h>
0022 
0023 #endif      /* __BARRIER_H */