Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 09:33:58

0001 /*
0002  * Distributed under the Boost Software License, Version 1.0.
0003  * (See accompanying file LICENSE_1_0.txt or copy at
0004  * http://www.boost.org/LICENSE_1_0.txt)
0005  *
0006  * Copyright (c) 2020 Andrey Semashev
0007  */
0008 /*!
0009  * \file   atomic/detail/wait_capabilities.hpp
0010  *
0011  * This header defines waiting/notifying operations capabilities macros.
0012  */
0013 
0014 #ifndef BOOST_ATOMIC_DETAIL_WAIT_CAPABILITIES_HPP_INCLUDED_
0015 #define BOOST_ATOMIC_DETAIL_WAIT_CAPABILITIES_HPP_INCLUDED_
0016 
0017 #include <boost/atomic/detail/config.hpp>
0018 #include <boost/atomic/detail/platform.hpp>
0019 #include <boost/atomic/detail/int_sizes.hpp>
0020 #if !defined(BOOST_ATOMIC_NO_FLOATING_POINT)
0021 #include <boost/atomic/detail/float_sizes.hpp>
0022 #endif
0023 
0024 #if !defined(BOOST_ATOMIC_EMULATED) && !defined(BOOST_ATOMIC_DETAIL_WAIT_BACKEND_GENERIC)
0025 #include BOOST_ATOMIC_DETAIL_WAIT_BACKEND_HEADER(boost/atomic/detail/wait_caps_)
0026 #endif
0027 
0028 #ifdef BOOST_HAS_PRAGMA_ONCE
0029 #pragma once
0030 #endif
0031 
0032 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY
0033 #define BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY 0
0034 #endif
0035 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT8_IPC_WAIT_NOTIFY
0036 #define BOOST_ATOMIC_HAS_NATIVE_INT8_IPC_WAIT_NOTIFY 0
0037 #endif
0038 
0039 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY
0040 #define BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY 0
0041 #endif
0042 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY
0043 #define BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY 0
0044 #endif
0045 
0046 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
0047 #define BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY 0
0048 #endif
0049 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
0050 #define BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY 0
0051 #endif
0052 
0053 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY
0054 #define BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY 0
0055 #endif
0056 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY
0057 #define BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY 0
0058 #endif
0059 
0060 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT128_WAIT_NOTIFY
0061 #define BOOST_ATOMIC_HAS_NATIVE_INT128_WAIT_NOTIFY 0
0062 #endif
0063 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT128_IPC_WAIT_NOTIFY
0064 #define BOOST_ATOMIC_HAS_NATIVE_INT128_IPC_WAIT_NOTIFY 0
0065 #endif
0066 
0067 
0068 #ifndef BOOST_ATOMIC_HAS_NATIVE_CHAR_WAIT_NOTIFY
0069 #define BOOST_ATOMIC_HAS_NATIVE_CHAR_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY
0070 #endif
0071 #ifndef BOOST_ATOMIC_HAS_NATIVE_CHAR_IPC_WAIT_NOTIFY
0072 #define BOOST_ATOMIC_HAS_NATIVE_CHAR_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_IPC_WAIT_NOTIFY
0073 #endif
0074 
0075 #ifndef BOOST_ATOMIC_HAS_NATIVE_CHAR8_T_WAIT_NOTIFY
0076 #define BOOST_ATOMIC_HAS_NATIVE_CHAR8_T_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY
0077 #endif
0078 #ifndef BOOST_ATOMIC_HAS_NATIVE_CHAR8_T_IPC_WAIT_NOTIFY
0079 #define BOOST_ATOMIC_HAS_NATIVE_CHAR8_T_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_IPC_WAIT_NOTIFY
0080 #endif
0081 
0082 #ifndef BOOST_ATOMIC_HAS_NATIVE_CHAR16_T_WAIT_NOTIFY
0083 #define BOOST_ATOMIC_HAS_NATIVE_CHAR16_T_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY
0084 #endif
0085 #ifndef BOOST_ATOMIC_HAS_NATIVE_CHAR16_T_IPC_WAIT_NOTIFY
0086 #define BOOST_ATOMIC_HAS_NATIVE_CHAR16_T_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY
0087 #endif
0088 
0089 #ifndef BOOST_ATOMIC_HAS_NATIVE_CHAR32_T_WAIT_NOTIFY
0090 #define BOOST_ATOMIC_HAS_NATIVE_CHAR32_T_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
0091 #endif
0092 #ifndef BOOST_ATOMIC_HAS_NATIVE_CHAR32_T_IPC_WAIT_NOTIFY
0093 #define BOOST_ATOMIC_HAS_NATIVE_CHAR32_T_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
0094 #endif
0095 
0096 #ifndef BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_WAIT_NOTIFY
0097 #if BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 1
0098 #define BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY
0099 #elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 2
0100 #define BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY
0101 #elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 4
0102 #define BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
0103 #elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 8
0104 #define BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY
0105 #else
0106 #define BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_WAIT_NOTIFY 0
0107 #endif
0108 #endif
0109 
0110 #ifndef BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_IPC_WAIT_NOTIFY
0111 #if BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 1
0112 #define BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_IPC_WAIT_NOTIFY
0113 #elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 2
0114 #define BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY
0115 #elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 4
0116 #define BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
0117 #elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 8
0118 #define BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY
0119 #else
0120 #define BOOST_ATOMIC_HAS_NATIVE_WCHAR_T_IPC_WAIT_NOTIFY 0
0121 #endif
0122 #endif
0123 
0124 #ifndef BOOST_ATOMIC_HAS_NATIVE_SHORT_WAIT_NOTIFY
0125 #if BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 1
0126 #define BOOST_ATOMIC_HAS_NATIVE_SHORT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY
0127 #elif BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 2
0128 #define BOOST_ATOMIC_HAS_NATIVE_SHORT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY
0129 #elif BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 4
0130 #define BOOST_ATOMIC_HAS_NATIVE_SHORT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
0131 #elif BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 8
0132 #define BOOST_ATOMIC_HAS_NATIVE_SHORT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY
0133 #else
0134 #define BOOST_ATOMIC_HAS_NATIVE_SHORT_WAIT_NOTIFY 0
0135 #endif
0136 #endif
0137 
0138 #ifndef BOOST_ATOMIC_HAS_NATIVE_SHORT_IPC_WAIT_NOTIFY
0139 #if BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 1
0140 #define BOOST_ATOMIC_HAS_NATIVE_SHORT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_IPC_WAIT_NOTIFY
0141 #elif BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 2
0142 #define BOOST_ATOMIC_HAS_NATIVE_SHORT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY
0143 #elif BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 4
0144 #define BOOST_ATOMIC_HAS_NATIVE_SHORT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
0145 #elif BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 8
0146 #define BOOST_ATOMIC_HAS_NATIVE_SHORT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY
0147 #else
0148 #define BOOST_ATOMIC_HAS_NATIVE_SHORT_IPC_WAIT_NOTIFY 0
0149 #endif
0150 #endif
0151 
0152 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT_WAIT_NOTIFY
0153 #if BOOST_ATOMIC_DETAIL_SIZEOF_INT == 1
0154 #define BOOST_ATOMIC_HAS_NATIVE_INT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY
0155 #elif BOOST_ATOMIC_DETAIL_SIZEOF_INT == 2
0156 #define BOOST_ATOMIC_HAS_NATIVE_INT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY
0157 #elif BOOST_ATOMIC_DETAIL_SIZEOF_INT == 4
0158 #define BOOST_ATOMIC_HAS_NATIVE_INT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
0159 #elif BOOST_ATOMIC_DETAIL_SIZEOF_INT == 8
0160 #define BOOST_ATOMIC_HAS_NATIVE_INT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY
0161 #else
0162 #define BOOST_ATOMIC_HAS_NATIVE_INT_WAIT_NOTIFY 0
0163 #endif
0164 #endif
0165 
0166 #ifndef BOOST_ATOMIC_HAS_NATIVE_INT_IPC_WAIT_NOTIFY
0167 #if BOOST_ATOMIC_DETAIL_SIZEOF_INT == 1
0168 #define BOOST_ATOMIC_HAS_NATIVE_INT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_IPC_WAIT_NOTIFY
0169 #elif BOOST_ATOMIC_DETAIL_SIZEOF_INT == 2
0170 #define BOOST_ATOMIC_HAS_NATIVE_INT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY
0171 #elif BOOST_ATOMIC_DETAIL_SIZEOF_INT == 4
0172 #define BOOST_ATOMIC_HAS_NATIVE_INT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
0173 #elif BOOST_ATOMIC_DETAIL_SIZEOF_INT == 8
0174 #define BOOST_ATOMIC_HAS_NATIVE_INT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY
0175 #else
0176 #define BOOST_ATOMIC_HAS_NATIVE_INT_IPC_WAIT_NOTIFY 0
0177 #endif
0178 #endif
0179 
0180 #ifndef BOOST_ATOMIC_HAS_NATIVE_LONG_WAIT_NOTIFY
0181 #if BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 1
0182 #define BOOST_ATOMIC_HAS_NATIVE_LONG_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY
0183 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 2
0184 #define BOOST_ATOMIC_HAS_NATIVE_LONG_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY
0185 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 4
0186 #define BOOST_ATOMIC_HAS_NATIVE_LONG_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
0187 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 8
0188 #define BOOST_ATOMIC_HAS_NATIVE_LONG_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY
0189 #else
0190 #define BOOST_ATOMIC_HAS_NATIVE_LONG_WAIT_NOTIFY 0
0191 #endif
0192 #endif
0193 
0194 #ifndef BOOST_ATOMIC_HAS_NATIVE_LONG_IPC_WAIT_NOTIFY
0195 #if BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 1
0196 #define BOOST_ATOMIC_HAS_NATIVE_LONG_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_IPC_WAIT_NOTIFY
0197 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 2
0198 #define BOOST_ATOMIC_HAS_NATIVE_LONG_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY
0199 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 4
0200 #define BOOST_ATOMIC_HAS_NATIVE_LONG_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
0201 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 8
0202 #define BOOST_ATOMIC_HAS_NATIVE_LONG_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY
0203 #else
0204 #define BOOST_ATOMIC_HAS_NATIVE_LONG_IPC_WAIT_NOTIFY 0
0205 #endif
0206 #endif
0207 
0208 #ifndef BOOST_ATOMIC_HAS_NATIVE_LLONG_WAIT_NOTIFY
0209 #if BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 1
0210 #define BOOST_ATOMIC_HAS_NATIVE_LLONG_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY
0211 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 2
0212 #define BOOST_ATOMIC_HAS_NATIVE_LLONG_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY
0213 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 4
0214 #define BOOST_ATOMIC_HAS_NATIVE_LLONG_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
0215 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 8
0216 #define BOOST_ATOMIC_HAS_NATIVE_LLONG_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY
0217 #else
0218 #define BOOST_ATOMIC_HAS_NATIVE_LLONG_WAIT_NOTIFY 0
0219 #endif
0220 #endif
0221 
0222 #ifndef BOOST_ATOMIC_HAS_NATIVE_LLONG_IPC_WAIT_NOTIFY
0223 #if BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 1
0224 #define BOOST_ATOMIC_HAS_NATIVE_LLONG_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_IPC_WAIT_NOTIFY
0225 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 2
0226 #define BOOST_ATOMIC_HAS_NATIVE_LLONG_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY
0227 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 4
0228 #define BOOST_ATOMIC_HAS_NATIVE_LLONG_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
0229 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 8
0230 #define BOOST_ATOMIC_HAS_NATIVE_LLONG_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY
0231 #else
0232 #define BOOST_ATOMIC_HAS_NATIVE_LLONG_IPC_WAIT_NOTIFY 0
0233 #endif
0234 #endif
0235 
0236 #ifndef BOOST_ATOMIC_HAS_NATIVE_POINTER_WAIT_NOTIFY
0237 #if (BOOST_ATOMIC_DETAIL_SIZEOF_POINTER + 0) == 8
0238 #define BOOST_ATOMIC_HAS_NATIVE_POINTER_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY
0239 #elif (BOOST_ATOMIC_DETAIL_SIZEOF_POINTER + 0) == 4
0240 #define BOOST_ATOMIC_HAS_NATIVE_POINTER_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
0241 #else
0242 #define BOOST_ATOMIC_HAS_NATIVE_POINTER_WAIT_NOTIFY 0
0243 #endif
0244 #endif
0245 
0246 #define BOOST_ATOMIC_HAS_NATIVE_ADDRESS_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_POINTER_WAIT_NOTIFY
0247 
0248 #ifndef BOOST_ATOMIC_HAS_NATIVE_POINTER_IPC_WAIT_NOTIFY
0249 #if (BOOST_ATOMIC_DETAIL_SIZEOF_POINTER + 0) == 8
0250 #define BOOST_ATOMIC_HAS_NATIVE_POINTER_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY
0251 #elif (BOOST_ATOMIC_DETAIL_SIZEOF_POINTER + 0) == 4
0252 #define BOOST_ATOMIC_HAS_NATIVE_POINTER_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
0253 #else
0254 #define BOOST_ATOMIC_HAS_NATIVE_POINTER_IPC_WAIT_NOTIFY 0
0255 #endif
0256 #endif
0257 
0258 #define BOOST_ATOMIC_HAS_NATIVE_ADDRESS_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_POINTER_IPC_WAIT_NOTIFY
0259 
0260 // We store bools in 1-byte storage in all backends
0261 #ifndef BOOST_ATOMIC_HAS_NATIVE_BOOL_WAIT_NOTIFY
0262 #define BOOST_ATOMIC_HAS_NATIVE_BOOL_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_WAIT_NOTIFY
0263 #endif
0264 #ifndef BOOST_ATOMIC_HAS_NATIVE_BOOL_IPC_WAIT_NOTIFY
0265 #define BOOST_ATOMIC_HAS_NATIVE_BOOL_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT8_IPC_WAIT_NOTIFY
0266 #endif
0267 
0268 #ifndef BOOST_ATOMIC_HAS_NATIVE_FLAG_WAIT_NOTIFY
0269 #define BOOST_ATOMIC_HAS_NATIVE_FLAG_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
0270 #endif
0271 #ifndef BOOST_ATOMIC_HAS_NATIVE_FLAG_IPC_WAIT_NOTIFY
0272 #define BOOST_ATOMIC_HAS_NATIVE_FLAG_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
0273 #endif
0274 
0275 #if !defined(BOOST_ATOMIC_NO_FLOATING_POINT)
0276 
0277 #if !defined(BOOST_ATOMIC_HAS_NATIVE_FLOAT_WAIT_NOTIFY) && defined(BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT)
0278 #if BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT == 2
0279 #define BOOST_ATOMIC_HAS_NATIVE_FLOAT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY
0280 #elif BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT == 4
0281 #define BOOST_ATOMIC_HAS_NATIVE_FLOAT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
0282 #elif BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT == 8
0283 #define BOOST_ATOMIC_HAS_NATIVE_FLOAT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY
0284 #elif BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT > 8 && BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT <= 16
0285 #define BOOST_ATOMIC_HAS_NATIVE_FLOAT_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT128_WAIT_NOTIFY
0286 #else
0287 #define BOOST_ATOMIC_HAS_NATIVE_FLOAT_WAIT_NOTIFY 0
0288 #endif
0289 #endif
0290 
0291 #if !defined(BOOST_ATOMIC_HAS_NATIVE_FLOAT_IPC_WAIT_NOTIFY) && defined(BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT)
0292 #if BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT == 2
0293 #define BOOST_ATOMIC_HAS_NATIVE_FLOAT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY
0294 #elif BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT == 4
0295 #define BOOST_ATOMIC_HAS_NATIVE_FLOAT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
0296 #elif BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT == 8
0297 #define BOOST_ATOMIC_HAS_NATIVE_FLOAT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY
0298 #elif BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT > 8 && BOOST_ATOMIC_DETAIL_SIZEOF_FLOAT <= 16
0299 #define BOOST_ATOMIC_HAS_NATIVE_FLOAT_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT128_IPC_WAIT_NOTIFY
0300 #else
0301 #define BOOST_ATOMIC_HAS_NATIVE_FLOAT_IPC_WAIT_NOTIFY 0
0302 #endif
0303 #endif
0304 
0305 #if !defined(BOOST_ATOMIC_HAS_NATIVE_DOUBLE_WAIT_NOTIFY) && defined(BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE)
0306 #if BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE == 2
0307 #define BOOST_ATOMIC_HAS_NATIVE_DOUBLE_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY
0308 #elif BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE == 4
0309 #define BOOST_ATOMIC_HAS_NATIVE_DOUBLE_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
0310 #elif BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE == 8
0311 #define BOOST_ATOMIC_HAS_NATIVE_DOUBLE_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY
0312 #elif BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE > 8 && BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE <= 16
0313 #define BOOST_ATOMIC_HAS_NATIVE_DOUBLE_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT128_WAIT_NOTIFY
0314 #else
0315 #define BOOST_ATOMIC_HAS_NATIVE_DOUBLE_WAIT_NOTIFY 0
0316 #endif
0317 #endif
0318 
0319 #if !defined(BOOST_ATOMIC_HAS_NATIVE_DOUBLE_IPC_WAIT_NOTIFY) && defined(BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE)
0320 #if BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE == 2
0321 #define BOOST_ATOMIC_HAS_NATIVE_DOUBLE_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY
0322 #elif BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE == 4
0323 #define BOOST_ATOMIC_HAS_NATIVE_DOUBLE_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
0324 #elif BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE == 8
0325 #define BOOST_ATOMIC_HAS_NATIVE_DOUBLE_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY
0326 #elif BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE > 8 && BOOST_ATOMIC_DETAIL_SIZEOF_DOUBLE <= 16
0327 #define BOOST_ATOMIC_HAS_NATIVE_DOUBLE_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT128_IPC_WAIT_NOTIFY
0328 #else
0329 #define BOOST_ATOMIC_HAS_NATIVE_DOUBLE_IPC_WAIT_NOTIFY 0
0330 #endif
0331 #endif
0332 
0333 #if !defined(BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_WAIT_NOTIFY) && defined(BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE)
0334 #if BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE == 2
0335 #define BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_WAIT_NOTIFY
0336 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE == 4
0337 #define BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_WAIT_NOTIFY
0338 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE == 8
0339 #define BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_WAIT_NOTIFY
0340 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE > 8 && BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE <= 16
0341 #define BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT128_WAIT_NOTIFY
0342 #else
0343 #define BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_WAIT_NOTIFY 0
0344 #endif
0345 #endif
0346 
0347 #if !defined(BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_IPC_WAIT_NOTIFY) && defined(BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE)
0348 #if BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE == 2
0349 #define BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT16_IPC_WAIT_NOTIFY
0350 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE == 4
0351 #define BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT32_IPC_WAIT_NOTIFY
0352 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE == 8
0353 #define BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT64_IPC_WAIT_NOTIFY
0354 #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE > 8 && BOOST_ATOMIC_DETAIL_SIZEOF_LONG_DOUBLE <= 16
0355 #define BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_IPC_WAIT_NOTIFY BOOST_ATOMIC_HAS_NATIVE_INT128_IPC_WAIT_NOTIFY
0356 #else
0357 #define BOOST_ATOMIC_HAS_NATIVE_LONG_DOUBLE_IPC_WAIT_NOTIFY 0
0358 #endif
0359 #endif
0360 
0361 #endif // !defined(BOOST_ATOMIC_NO_FLOATING_POINT)
0362 
0363 #endif // BOOST_ATOMIC_DETAIL_WAIT_CAPABILITIES_HPP_INCLUDED_