Nugget
compiler_fetch_or.h
1 // Copyright (c) Electronic Arts Inc. All rights reserved.
4 
5 
6 #ifndef EASTL_ATOMIC_INTERNAL_COMPILER_FETCH_OR_H
7 #define EASTL_ATOMIC_INTERNAL_COMPILER_FETCH_OR_H
8 
9 #if defined(EA_PRAGMA_ONCE_SUPPORTED)
10  #pragma once
11 #endif
12 
13 
15 //
16 // void EASTL_COMPILER_ATOMIC_FETCH_OR_*_N(type, type ret, type * ptr, type val)
17 //
18 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_RELAXED_8)
19  #define EASTL_COMPILER_ATOMIC_FETCH_OR_RELAXED_8_AVAILABLE 1
20 #else
21  #define EASTL_COMPILER_ATOMIC_FETCH_OR_RELAXED_8_AVAILABLE 0
22 #endif
23 
24 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_ACQUIRE_8)
25  #define EASTL_COMPILER_ATOMIC_FETCH_OR_ACQUIRE_8_AVAILABLE 1
26 #else
27  #define EASTL_COMPILER_ATOMIC_FETCH_OR_ACQUIRE_8_AVAILABLE 0
28 #endif
29 
30 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_RELEASE_8)
31  #define EASTL_COMPILER_ATOMIC_FETCH_OR_RELEASE_8_AVAILABLE 1
32 #else
33  #define EASTL_COMPILER_ATOMIC_FETCH_OR_RELEASE_8_AVAILABLE 0
34 #endif
35 
36 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_ACQ_REL_8)
37  #define EASTL_COMPILER_ATOMIC_FETCH_OR_ACQ_REL_8_AVAILABLE 1
38 #else
39  #define EASTL_COMPILER_ATOMIC_FETCH_OR_ACQ_REL_8_AVAILABLE 0
40 #endif
41 
42 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_SEQ_CST_8)
43  #define EASTL_COMPILER_ATOMIC_FETCH_OR_SEQ_CST_8_AVAILABLE 1
44 #else
45  #define EASTL_COMPILER_ATOMIC_FETCH_OR_SEQ_CST_8_AVAILABLE 0
46 #endif
47 
48 
49 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_RELAXED_16)
50  #define EASTL_COMPILER_ATOMIC_FETCH_OR_RELAXED_16_AVAILABLE 1
51 #else
52  #define EASTL_COMPILER_ATOMIC_FETCH_OR_RELAXED_16_AVAILABLE 0
53 #endif
54 
55 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_ACQUIRE_16)
56  #define EASTL_COMPILER_ATOMIC_FETCH_OR_ACQUIRE_16_AVAILABLE 1
57 #else
58  #define EASTL_COMPILER_ATOMIC_FETCH_OR_ACQUIRE_16_AVAILABLE 0
59 #endif
60 
61 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_RELEASE_16)
62  #define EASTL_COMPILER_ATOMIC_FETCH_OR_RELEASE_16_AVAILABLE 1
63 #else
64  #define EASTL_COMPILER_ATOMIC_FETCH_OR_RELEASE_16_AVAILABLE 0
65 #endif
66 
67 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_ACQ_REL_16)
68  #define EASTL_COMPILER_ATOMIC_FETCH_OR_ACQ_REL_16_AVAILABLE 1
69 #else
70  #define EASTL_COMPILER_ATOMIC_FETCH_OR_ACQ_REL_16_AVAILABLE 0
71 #endif
72 
73 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_SEQ_CST_16)
74  #define EASTL_COMPILER_ATOMIC_FETCH_OR_SEQ_CST_16_AVAILABLE 1
75 #else
76  #define EASTL_COMPILER_ATOMIC_FETCH_OR_SEQ_CST_16_AVAILABLE 0
77 #endif
78 
79 
80 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_RELAXED_32)
81  #define EASTL_COMPILER_ATOMIC_FETCH_OR_RELAXED_32_AVAILABLE 1
82 #else
83  #define EASTL_COMPILER_ATOMIC_FETCH_OR_RELAXED_32_AVAILABLE 0
84 #endif
85 
86 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_ACQUIRE_32)
87  #define EASTL_COMPILER_ATOMIC_FETCH_OR_ACQUIRE_32_AVAILABLE 1
88 #else
89  #define EASTL_COMPILER_ATOMIC_FETCH_OR_ACQUIRE_32_AVAILABLE 0
90 #endif
91 
92 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_RELEASE_32)
93  #define EASTL_COMPILER_ATOMIC_FETCH_OR_RELEASE_32_AVAILABLE 1
94 #else
95  #define EASTL_COMPILER_ATOMIC_FETCH_OR_RELEASE_32_AVAILABLE 0
96 #endif
97 
98 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_ACQ_REL_32)
99  #define EASTL_COMPILER_ATOMIC_FETCH_OR_ACQ_REL_32_AVAILABLE 1
100 #else
101  #define EASTL_COMPILER_ATOMIC_FETCH_OR_ACQ_REL_32_AVAILABLE 0
102 #endif
103 
104 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_SEQ_CST_32)
105  #define EASTL_COMPILER_ATOMIC_FETCH_OR_SEQ_CST_32_AVAILABLE 1
106 #else
107  #define EASTL_COMPILER_ATOMIC_FETCH_OR_SEQ_CST_32_AVAILABLE 0
108 #endif
109 
110 
111 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_RELAXED_64)
112  #define EASTL_COMPILER_ATOMIC_FETCH_OR_RELAXED_64_AVAILABLE 1
113 #else
114  #define EASTL_COMPILER_ATOMIC_FETCH_OR_RELAXED_64_AVAILABLE 0
115 #endif
116 
117 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_ACQUIRE_64)
118  #define EASTL_COMPILER_ATOMIC_FETCH_OR_ACQUIRE_64_AVAILABLE 1
119 #else
120  #define EASTL_COMPILER_ATOMIC_FETCH_OR_ACQUIRE_64_AVAILABLE 0
121 #endif
122 
123 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_RELEASE_64)
124  #define EASTL_COMPILER_ATOMIC_FETCH_OR_RELEASE_64_AVAILABLE 1
125 #else
126  #define EASTL_COMPILER_ATOMIC_FETCH_OR_RELEASE_64_AVAILABLE 0
127 #endif
128 
129 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_ACQ_REL_64)
130  #define EASTL_COMPILER_ATOMIC_FETCH_OR_ACQ_REL_64_AVAILABLE 1
131 #else
132  #define EASTL_COMPILER_ATOMIC_FETCH_OR_ACQ_REL_64_AVAILABLE 0
133 #endif
134 
135 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_SEQ_CST_64)
136  #define EASTL_COMPILER_ATOMIC_FETCH_OR_SEQ_CST_64_AVAILABLE 1
137 #else
138  #define EASTL_COMPILER_ATOMIC_FETCH_OR_SEQ_CST_64_AVAILABLE 0
139 #endif
140 
141 
142 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_RELAXED_128)
143  #define EASTL_COMPILER_ATOMIC_FETCH_OR_RELAXED_128_AVAILABLE 1
144 #else
145  #define EASTL_COMPILER_ATOMIC_FETCH_OR_RELAXED_128_AVAILABLE 0
146 #endif
147 
148 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_ACQUIRE_128)
149  #define EASTL_COMPILER_ATOMIC_FETCH_OR_ACQUIRE_128_AVAILABLE 1
150 #else
151  #define EASTL_COMPILER_ATOMIC_FETCH_OR_ACQUIRE_128_AVAILABLE 0
152 #endif
153 
154 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_RELEASE_128)
155  #define EASTL_COMPILER_ATOMIC_FETCH_OR_RELEASE_128_AVAILABLE 1
156 #else
157  #define EASTL_COMPILER_ATOMIC_FETCH_OR_RELEASE_128_AVAILABLE 0
158 #endif
159 
160 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_ACQ_REL_128)
161  #define EASTL_COMPILER_ATOMIC_FETCH_OR_ACQ_REL_128_AVAILABLE 1
162 #else
163  #define EASTL_COMPILER_ATOMIC_FETCH_OR_ACQ_REL_128_AVAILABLE 0
164 #endif
165 
166 #if defined(EASTL_COMPILER_ATOMIC_FETCH_OR_SEQ_CST_128)
167  #define EASTL_COMPILER_ATOMIC_FETCH_OR_SEQ_CST_128_AVAILABLE 1
168 #else
169  #define EASTL_COMPILER_ATOMIC_FETCH_OR_SEQ_CST_128_AVAILABLE 0
170 #endif
171 
172 
173 #endif /* EASTL_ATOMIC_INTERNAL_COMPILER_FETCH_OR_H */