1 /* SPDX-License-Identifier: GPL-2.0 */ 1 2 #include <linux/compiler.h> 3 #if defined(__i386__) || defined(__x86_64__) 4 #include "../../arch/x86/include/asm/barrier.h 5 #elif defined(__arm__) 6 #include "../../arch/arm/include/asm/barrier.h 7 #elif defined(__aarch64__) 8 #include "../../arch/arm64/include/asm/barrier 9 #elif defined(__powerpc__) 10 #include "../../arch/powerpc/include/asm/barri 11 #elif defined(__riscv) 12 #include "../../arch/riscv/include/asm/barrier 13 #elif defined(__s390__) 14 #include "../../arch/s390/include/asm/barrier. 15 #elif defined(__sh__) 16 #include "../../arch/sh/include/asm/barrier.h" 17 #elif defined(__sparc__) 18 #include "../../arch/sparc/include/asm/barrier 19 #elif defined(__tile__) 20 #include "../../arch/tile/include/asm/barrier. 21 #elif defined(__alpha__) 22 #include "../../arch/alpha/include/asm/barrier 23 #elif defined(__mips__) 24 #include "../../arch/mips/include/asm/barrier. 25 #elif defined(__ia64__) 26 #include "../../arch/ia64/include/asm/barrier. 27 #elif defined(__xtensa__) 28 #include "../../arch/xtensa/include/asm/barrie 29 #else 30 #include <asm-generic/barrier.h> 31 #endif 32 33 /* 34 * Generic fallback smp_*() definitions for ar 35 * been updated yet. 36 */ 37 38 #ifndef smp_rmb 39 # define smp_rmb() rmb() 40 #endif 41 42 #ifndef smp_wmb 43 # define smp_wmb() wmb() 44 #endif 45 46 #ifndef smp_mb 47 # define smp_mb() mb() 48 #endif 49 50 #ifndef smp_store_release 51 # define smp_store_release(p, v) 52 do { 53 smp_mb(); 54 WRITE_ONCE(*p, v); 55 } while (0) 56 #endif 57 58 #ifndef smp_load_acquire 59 # define smp_load_acquire(p) 60 ({ 61 typeof(*p) ___p1 = READ_ONCE(*p); 62 smp_mb(); 63 ___p1; 64 }) 65 #endif 66
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.