Warning: This file is not a C or C++ file. It does not have highlighting.
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 | #else |
28 | #include <asm-generic/barrier.h> |
29 | #endif |
30 | |
31 | /* |
32 | * Generic fallback smp_*() definitions for archs that haven't |
33 | * been updated yet. |
34 | */ |
35 | |
36 | #ifndef smp_rmb |
37 | # define smp_rmb() rmb() |
38 | #endif |
39 | |
40 | #ifndef smp_wmb |
41 | # define smp_wmb() wmb() |
42 | #endif |
43 | |
44 | #ifndef smp_mb |
45 | # define smp_mb() mb() |
46 | #endif |
47 | |
48 | #ifndef smp_store_release |
49 | # define smp_store_release(p, v) \ |
50 | do { \ |
51 | smp_mb(); \ |
52 | WRITE_ONCE(*p, v); \ |
53 | } while (0) |
54 | #endif |
55 | |
56 | #ifndef smp_load_acquire |
57 | # define smp_load_acquire(p) \ |
58 | ({ \ |
59 | typeof(*p) ___p1 = READ_ONCE(*p); \ |
60 | smp_mb(); \ |
61 | ___p1; \ |
62 | }) |
63 | #endif |
64 |
Warning: This file is not a C or C++ file. It does not have highlighting.