]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/boost/atomic/detail/wait_capabilities.hpp
import quincy beta 17.1.0
[ceph.git] / ceph / src / boost / boost / atomic / detail / wait_capabilities.hpp
1 /*
2 * Distributed under the Boost Software License, Version 1.0.
3 * (See accompanying file LICENSE_1_0.txt or copy at
4 * http://www.boost.org/LICENSE_1_0.txt)
5 *
6 * Copyright (c) 2020 Andrey Semashev
7 */
8 /*!
9 * \file atomic/detail/wait_capabilities.hpp
10 *
11 * This header defines waiting/notifying operations capabilities macros.
12 */
13
14 #ifndef BOOST_ATOMIC_DETAIL_WAIT_CAPABILITIES_HPP_INCLUDED_
15 #define BOOST_ATOMIC_DETAIL_WAIT_CAPABILITIES_HPP_INCLUDED_
16
17 #include <boost/atomic/detail/config.hpp>
18 #include <boost/atomic/detail/platform.hpp>
19 #include <boost/atomic/detail/int_sizes.hpp>
20 #if !defined(BOOST_ATOMIC_NO_FLOATING_POINT)
21 #include <boost/atomic/detail/float_sizes.hpp>
22 #endif
23
24 #if !defined(BOOST_ATOMIC_EMULATED) && !defined(BOOST_ATOMIC_DETAIL_WAIT_BACKEND_GENERIC)
25 #include BOOST_ATOMIC_DETAIL_WAIT_BACKEND_HEADER(boost/atomic/detail/wait_caps_)
26 #endif
27
28 #ifdef BOOST_HAS_PRAGMA_ONCE
29 #pragma once
30 #endif
31
32 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY
33 #define BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY 0
34 #endif
35 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT8_IPC_WAIT_NOTIFY
36 #define BOOST_ATOMIC_HAS_NATIVE_INT8_IPC_WAIT_NOTIFY 0
37 #endif
38
39 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY
40 #define BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY 0
41 #endif
42 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY
43 #define BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY 0
44 #endif
45
46 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
47 #define BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY 0
48 #endif
49 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
50 #define BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY 0
51 #endif
52
53 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY
54 #define BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY 0
55 #endif
56 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY
57 #define BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY 0
58 #endif
59
60 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT128_WAIT_NOTIFY
61 #define BOOST_ATOMIC_HAS_NATIVE_INT128_WAIT_NOTIFY 0
62 #endif
63 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT128_IPC_WAIT_NOTIFY
64 #define BOOST_ATOMIC_HAS_NATIVE_INT128_IPC_WAIT_NOTIFY 0
65 #endif
66
67
68 #ifndef BOOST_ATOMIC_HAS_NATIVE_CHAR_WAIT_NOTIFY
69 #define BOOST_ATOMIC_HAS_NATIVE_CHAR_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY
70 #endif
71 #ifndef BOOST_ATOMIC_HAS_NATIVE_CHAR_IPC_WAIT_NOTIFY
72 #define BOOST_ATOMIC_HAS_NATIVE_CHAR_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_IPC_WAIT_NOTIFY
73 #endif
74
75 #ifndef BOOST_ATOMIC_HAS_NATIVE_CHAR8_T_WAIT_NOTIFY
76 #define BOOST_ATOMIC_HAS_NATIVE_CHAR8_T_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY
77 #endif
78 #ifndef BOOST_ATOMIC_HAS_NATIVE_CHAR8_T_IPC_WAIT_NOTIFY
79 #define BOOST_ATOMIC_HAS_NATIVE_CHAR8_T_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_IPC_WAIT_NOTIFY
80 #endif
81
82 #ifndef BOOST_ATOMIC_HAS_NATIVE_CHAR16_T_WAIT_NOTIFY
83 #define BOOST_ATOMIC_HAS_NATIVE_CHAR16_T_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY
84 #endif
85 #ifndef BOOST_ATOMIC_HAS_NATIVE_CHAR16_T_IPC_WAIT_NOTIFY
86 #define BOOST_ATOMIC_HAS_NATIVE_CHAR16_T_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY
87 #endif
88
89 #ifndef BOOST_ATOMIC_HAS_NATIVE_CHAR32_T_WAIT_NOTIFY
90 #define BOOST_ATOMIC_HAS_NATIVE_CHAR32_T_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
91 #endif
92 #ifndef BOOST_ATOMIC_HAS_NATIVE_CHAR32_T_IPC_WAIT_NOTIFY
93 #define BOOST_ATOMIC_HAS_NATIVE_CHAR32_T_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
94 #endif
95
96 #ifndef BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_WAIT_NOTIFY
97 #if BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 1
98 #define BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY
99 #elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 2
100 #define BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY
101 #elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 4
102 #define BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
103 #elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 8
104 #define BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY
105 #else
106 #define BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_WAIT_NOTIFY 0
107 #endif
108 #endif
109
110 #ifndef BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_IPC_WAIT_NOTIFY
111 #if BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 1
112 #define BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_IPC_WAIT_NOTIFY
113 #elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 2
114 #define BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY
115 #elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 4
116 #define BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
117 #elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 8
118 #define BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY
119 #else
120 #define BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_IPC_WAIT_NOTIFY 0
121 #endif
122 #endif
123
124 #ifndef BOOST_ATOMIC_HAS_NATIVE_SHORT_WAIT_NOTIFY
125 #if BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 1
126 #define BOOST_ATOMIC_HAS_NATIVE_SHORT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY
127 #elif BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 2
128 #define BOOST_ATOMIC_HAS_NATIVE_SHORT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY
129 #elif BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 4
130 #define BOOST_ATOMIC_HAS_NATIVE_SHORT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
131 #elif BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 8
132 #define BOOST_ATOMIC_HAS_NATIVE_SHORT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY
133 #else
134 #define BOOST_ATOMIC_HAS_NATIVE_SHORT_WAIT_NOTIFY 0
135 #endif
136 #endif
137
138 #ifndef BOOST_ATOMIC_HAS_NATIVE_SHORT_IPC_WAIT_NOTIFY
139 #if BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 1
140 #define BOOST_ATOMIC_HAS_NATIVE_SHORT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_IPC_WAIT_NOTIFY
141 #elif BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 2
142 #define BOOST_ATOMIC_HAS_NATIVE_SHORT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY
143 #elif BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 4
144 #define BOOST_ATOMIC_HAS_NATIVE_SHORT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
145 #elif BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 8
146 #define BOOST_ATOMIC_HAS_NATIVE_SHORT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY
147 #else
148 #define BOOST_ATOMIC_HAS_NATIVE_SHORT_IPC_WAIT_NOTIFY 0
149 #endif
150 #endif
151
152 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT_WAIT_NOTIFY
153 #if BOOST_ATOMIC_DETAIL_SIZEOF_INT == 1
154 #define BOOST_ATOMIC_HAS_NATIVE_INT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY
155 #elif BOOST_ATOMIC_DETAIL_SIZEOF_INT == 2
156 #define BOOST_ATOMIC_HAS_NATIVE_INT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY
157 #elif BOOST_ATOMIC_DETAIL_SIZEOF_INT == 4
158 #define BOOST_ATOMIC_HAS_NATIVE_INT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
159 #elif BOOST_ATOMIC_DETAIL_SIZEOF_INT == 8
160 #define BOOST_ATOMIC_HAS_NATIVE_INT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY
161 #else
162 #define BOOST_ATOMIC_HAS_NATIVE_INT_WAIT_NOTIFY 0
163 #endif
164 #endif
165
166 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT_IPC_WAIT_NOTIFY
167 #if BOOST_ATOMIC_DETAIL_SIZEOF_INT == 1
168 #define BOOST_ATOMIC_HAS_NATIVE_INT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_IPC_WAIT_NOTIFY
169 #elif BOOST_ATOMIC_DETAIL_SIZEOF_INT == 2
170 #define BOOST_ATOMIC_HAS_NATIVE_INT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY
171 #elif BOOST_ATOMIC_DETAIL_SIZEOF_INT == 4
172 #define BOOST_ATOMIC_HAS_NATIVE_INT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
173 #elif BOOST_ATOMIC_DETAIL_SIZEOF_INT == 8
174 #define BOOST_ATOMIC_HAS_NATIVE_INT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY
175 #else
176 #define BOOST_ATOMIC_HAS_NATIVE_INT_IPC_WAIT_NOTIFY 0
177 #endif
178 #endif
179
180 #ifndef BOOST_ATOMIC_HAS_NATIVE_LONG_WAIT_NOTIFY
181 #if BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 1
182 #define BOOST_ATOMIC_HAS_NATIVE_LONG_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY
183 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 2
184 #define BOOST_ATOMIC_HAS_NATIVE_LONG_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY
185 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 4
186 #define BOOST_ATOMIC_HAS_NATIVE_LONG_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
187 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 8
188 #define BOOST_ATOMIC_HAS_NATIVE_LONG_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY
189 #else
190 #define BOOST_ATOMIC_HAS_NATIVE_LONG_WAIT_NOTIFY 0
191 #endif
192 #endif
193
194 #ifndef BOOST_ATOMIC_HAS_NATIVE_LONG_IPC_WAIT_NOTIFY
195 #if BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 1
196 #define BOOST_ATOMIC_HAS_NATIVE_LONG_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_IPC_WAIT_NOTIFY
197 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 2
198 #define BOOST_ATOMIC_HAS_NATIVE_LONG_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY
199 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 4
200 #define BOOST_ATOMIC_HAS_NATIVE_LONG_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
201 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 8
202 #define BOOST_ATOMIC_HAS_NATIVE_LONG_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY
203 #else
204 #define BOOST_ATOMIC_HAS_NATIVE_LONG_IPC_WAIT_NOTIFY 0
205 #endif
206 #endif
207
208 #ifndef BOOST_ATOMIC_HAS_NATIVE_LLONG_WAIT_NOTIFY
209 #if BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 1
210 #define BOOST_ATOMIC_HAS_NATIVE_LLONG_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY
211 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 2
212 #define BOOST_ATOMIC_HAS_NATIVE_LLONG_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY
213 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 4
214 #define BOOST_ATOMIC_HAS_NATIVE_LLONG_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
215 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 8
216 #define BOOST_ATOMIC_HAS_NATIVE_LLONG_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY
217 #else
218 #define BOOST_ATOMIC_HAS_NATIVE_LLONG_WAIT_NOTIFY 0
219 #endif
220 #endif
221
222 #ifndef BOOST_ATOMIC_HAS_NATIVE_LLONG_IPC_WAIT_NOTIFY
223 #if BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 1
224 #define BOOST_ATOMIC_HAS_NATIVE_LLONG_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_IPC_WAIT_NOTIFY
225 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 2
226 #define BOOST_ATOMIC_HAS_NATIVE_LLONG_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY
227 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 4
228 #define BOOST_ATOMIC_HAS_NATIVE_LLONG_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
229 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 8
230 #define BOOST_ATOMIC_HAS_NATIVE_LLONG_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY
231 #else
232 #define BOOST_ATOMIC_HAS_NATIVE_LLONG_IPC_WAIT_NOTIFY 0
233 #endif
234 #endif
235
236 #ifndef BOOST_ATOMIC_HAS_NATIVE_POINTER_WAIT_NOTIFY
237 #if (BOOST_ATOMIC_DETAIL_SIZEOF_POINTER + 0) == 8
238 #define BOOST_ATOMIC_HAS_NATIVE_POINTER_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY
239 #elif (BOOST_ATOMIC_DETAIL_SIZEOF_POINTER + 0) == 4
240 #define BOOST_ATOMIC_HAS_NATIVE_POINTER_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
241 #else
242 #define BOOST_ATOMIC_HAS_NATIVE_POINTER_WAIT_NOTIFY 0
243 #endif
244 #endif
245
246 #define BOOST_ATOMIC_HAS_NATIVE_ADDRESS_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_POINTER_WAIT_NOTIFY
247
248 #ifndef BOOST_ATOMIC_HAS_NATIVE_POINTER_IPC_WAIT_NOTIFY
249 #if (BOOST_ATOMIC_DETAIL_SIZEOF_POINTER + 0) == 8
250 #define BOOST_ATOMIC_HAS_NATIVE_POINTER_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY
251 #elif (BOOST_ATOMIC_DETAIL_SIZEOF_POINTER + 0) == 4
252 #define BOOST_ATOMIC_HAS_NATIVE_POINTER_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
253 #else
254 #define BOOST_ATOMIC_HAS_NATIVE_POINTER_IPC_WAIT_NOTIFY 0
255 #endif
256 #endif
257
258 #define BOOST_ATOMIC_HAS_NATIVE_ADDRESS_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_POINTER_IPC_WAIT_NOTIFY
259
260 // We store bools in 1-byte storage in all backends
261 #ifndef BOOST_ATOMIC_HAS_NATIVE_BOOL_WAIT_NOTIFY
262 #define BOOST_ATOMIC_HAS_NATIVE_BOOL_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY
263 #endif
264 #ifndef BOOST_ATOMIC_HAS_NATIVE_BOOL_IPC_WAIT_NOTIFY
265 #define BOOST_ATOMIC_HAS_NATIVE_BOOL_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_IPC_WAIT_NOTIFY
266 #endif
267
268 #ifndef BOOST_ATOMIC_HAS_NATIVE_FLAG_WAIT_NOTIFY
269 #define BOOST_ATOMIC_HAS_NATIVE_FLAG_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
270 #endif
271 #ifndef BOOST_ATOMIC_HAS_NATIVE_FLAG_IPC_WAIT_NOTIFY
272 #define BOOST_ATOMIC_HAS_NATIVE_FLAG_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
273 #endif
274
275 #if !defined(BOOST_ATOMIC_NO_FLOATING_POINT)
276
277 #if !defined(BOOST_ATOMIC_HAS_NATIVE_FLOAT_WAIT_NOTIFY) && defined(BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT)
278 #if BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT == 2
279 #define BOOST_ATOMIC_HAS_NATIVE_FLOAT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY
280 #elif BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT == 4
281 #define BOOST_ATOMIC_HAS_NATIVE_FLOAT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
282 #elif BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT == 8
283 #define BOOST_ATOMIC_HAS_NATIVE_FLOAT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY
284 #elif BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT > 8 && BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT <= 16
285 #define BOOST_ATOMIC_HAS_NATIVE_FLOAT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT128_WAIT_NOTIFY
286 #else
287 #define BOOST_ATOMIC_HAS_NATIVE_FLOAT_WAIT_NOTIFY 0
288 #endif
289 #endif
290
291 #if !defined(BOOST_ATOMIC_HAS_NATIVE_FLOAT_IPC_WAIT_NOTIFY) && defined(BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT)
292 #if BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT == 2
293 #define BOOST_ATOMIC_HAS_NATIVE_FLOAT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY
294 #elif BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT == 4
295 #define BOOST_ATOMIC_HAS_NATIVE_FLOAT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
296 #elif BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT == 8
297 #define BOOST_ATOMIC_HAS_NATIVE_FLOAT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY
298 #elif BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT > 8 && BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT <= 16
299 #define BOOST_ATOMIC_HAS_NATIVE_FLOAT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT128_IPC_WAIT_NOTIFY
300 #else
301 #define BOOST_ATOMIC_HAS_NATIVE_FLOAT_IPC_WAIT_NOTIFY 0
302 #endif
303 #endif
304
305 #if !defined(BOOST_ATOMIC_HAS_NATIVE_DOUBLE_WAIT_NOTIFY) && defined(BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE)
306 #if BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE == 2
307 #define BOOST_ATOMIC_HAS_NATIVE_DOUBLE_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY
308 #elif BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE == 4
309 #define BOOST_ATOMIC_HAS_NATIVE_DOUBLE_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
310 #elif BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE == 8
311 #define BOOST_ATOMIC_HAS_NATIVE_DOUBLE_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY
312 #elif BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE > 8 && BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE <= 16
313 #define BOOST_ATOMIC_HAS_NATIVE_DOUBLE_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT128_WAIT_NOTIFY
314 #else
315 #define BOOST_ATOMIC_HAS_NATIVE_DOUBLE_WAIT_NOTIFY 0
316 #endif
317 #endif
318
319 #if !defined(BOOST_ATOMIC_HAS_NATIVE_DOUBLE_IPC_WAIT_NOTIFY) && defined(BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE)
320 #if BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE == 2
321 #define BOOST_ATOMIC_HAS_NATIVE_DOUBLE_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY
322 #elif BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE == 4
323 #define BOOST_ATOMIC_HAS_NATIVE_DOUBLE_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
324 #elif BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE == 8
325 #define BOOST_ATOMIC_HAS_NATIVE_DOUBLE_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY
326 #elif BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE > 8 && BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE <= 16
327 #define BOOST_ATOMIC_HAS_NATIVE_DOUBLE_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT128_IPC_WAIT_NOTIFY
328 #else
329 #define BOOST_ATOMIC_HAS_NATIVE_DOUBLE_IPC_WAIT_NOTIFY 0
330 #endif
331 #endif
332
333 #if !defined(BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_WAIT_NOTIFY) && defined(BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE)
334 #if BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE == 2
335 #define BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY
336 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE == 4
337 #define BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
338 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE == 8
339 #define BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY
340 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE > 8 && BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE <= 16
341 #define BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT128_WAIT_NOTIFY
342 #else
343 #define BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_WAIT_NOTIFY 0
344 #endif
345 #endif
346
347 #if !defined(BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_IPC_WAIT_NOTIFY) && defined(BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE)
348 #if BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE == 2
349 #define BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY
350 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE == 4
351 #define BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
352 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE == 8
353 #define BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY
354 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE > 8 && BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE <= 16
355 #define BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT128_IPC_WAIT_NOTIFY
356 #else
357 #define BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_IPC_WAIT_NOTIFY 0
358 #endif
359 #endif
360
361 #endif // !defined(BOOST_ATOMIC_NO_FLOATING_POINT)
362
363 #endif // BOOST_ATOMIC_DETAIL_WAIT_CAPABILITIES_HPP_INCLUDED_