root/tools/include/asm/barrier.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   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.h"
   9 #elif defined(__powerpc__)
  10 #include "../../arch/powerpc/include/asm/barrier.h"
  11 #elif defined(__s390__)
  12 #include "../../arch/s390/include/asm/barrier.h"
  13 #elif defined(__sh__)
  14 #include "../../arch/sh/include/asm/barrier.h"
  15 #elif defined(__sparc__)
  16 #include "../../arch/sparc/include/asm/barrier.h"
  17 #elif defined(__tile__)
  18 #include "../../arch/tile/include/asm/barrier.h"
  19 #elif defined(__alpha__)
  20 #include "../../arch/alpha/include/asm/barrier.h"
  21 #elif defined(__mips__)
  22 #include "../../arch/mips/include/asm/barrier.h"
  23 #elif defined(__ia64__)
  24 #include "../../arch/ia64/include/asm/barrier.h"
  25 #elif defined(__xtensa__)
  26 #include "../../arch/xtensa/include/asm/barrier.h"
  27 #elif defined(__nds32__)
  28 #include "../../arch/nds32/include/asm/barrier.h"
  29 #else
  30 #include <asm-generic/barrier.h>
  31 #endif
  32 
  33 /*
  34  * Generic fallback smp_*() definitions for archs that haven't
  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

/* [<][>][^][v][top][bottom][index][help] */