1 #ifndef BOOST_DETAIL_ATOMIC_GCC_PPC_HPP     2 #define BOOST_DETAIL_ATOMIC_GCC_PPC_HPP    54 #define BOOST_ATOMIC_CHAR_LOCK_FREE 2    55 #define BOOST_ATOMIC_CHAR16_T_LOCK_FREE 2    56 #define BOOST_ATOMIC_CHAR32_T_LOCK_FREE 2    57 #define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 2    58 #define BOOST_ATOMIC_SHORT_LOCK_FREE 2    59 #define BOOST_ATOMIC_INT_LOCK_FREE 2    60 #define BOOST_ATOMIC_LONG_LOCK_FREE 2    61 #define BOOST_ATOMIC_ADDRESS_LOCK_FREE 2    62 #if defined(__powerpc64__)    63 #define BOOST_ATOMIC_LLONG_LOCK_FREE 2    65 #define BOOST_ATOMIC_LLONG_LOCK_FREE 0    67 #define BOOST_ATOMIC_BOOL_LOCK_FREE 2    77 #if !defined(__APPLE__)    79 #define BOOST_ATOMIC_ASM_SLOWPATH_CLEAR \    88 #define BOOST_ATOMIC_ASM_SLOWPATH_CLEAR \   105 #if defined(__powerpc64__)   106                         __asm__ __volatile__ (
"lwsync" ::: 
"memory");
   110                         __asm__ __volatile__ (
"sync" ::: 
"memory");
   122                         __asm__ __volatile__ (
"isync");
   124                         __asm__ __volatile__ (
"" ::: 
"memory");
   134                         __asm__ __volatile__ (
"sync");
   167                 __asm__ __volatile__ (
   189                         : 
"=&b" (original), 
"+Z"(
v_)
   199                 value_type & expected,
   215                         : 
"=&b" (expected), 
"=&b" (success), 
"+Z"(
v_)
   216                         : 
"b" (expected), 
"b" (desired)
   228                 value_type & expected,
   245                         : 
"=&b" (expected), 
"=&b" (success), 
"+Z"(
v_)
   246                         : 
"b" (expected), 
"b" (desired)
   259                 value_type original, tmp;
   268                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
   278                 value_type original, tmp;
   287                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
   297                 value_type original, tmp;
   305                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
   315                 value_type original, tmp;
   323                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
   333                 value_type original, tmp;
   341                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
   387                 __asm__ __volatile__ (
   409                         : 
"=&b" (original), 
"+Z"(
v_)
   419                 value_type & expected,
   436                         : 
"=&b" (expected), 
"=&b" (success), 
"+Z"(
v_)
   437                         : 
"b" (expected), 
"b" (desired)
   449                 value_type & expected,
   466                         : 
"=&b" (expected), 
"=&b" (success), 
"+Z"(
v_)
   467                         : 
"b" (expected), 
"b" (desired)
   480                 value_type original, tmp;
   486                         "rlwinm %1, %1, 0, 0xff\n"   489                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
   499                 value_type original, tmp;
   505                         "rlwinm %1, %1, 0, 0xff\n"   508                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
   518                 value_type original, tmp;
   526                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
   536                 value_type original, tmp;
   544                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
   554                 value_type original, tmp;
   562                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
   608                 __asm__ __volatile__ (
   630                         : 
"=&b" (original), 
"+Z"(
v_)
   640                 value_type & expected,
   657                         : 
"=&b" (expected), 
"=&b" (success), 
"+Z"(
v_)
   658                         : 
"b" (expected), 
"b" (desired)
   670                 value_type & expected,
   687                         : 
"=&b" (expected), 
"=&b" (success), 
"+Z"(
v_)
   688                         : 
"b" (expected), 
"b" (desired)
   701                 value_type original, tmp;
   710                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
   720                 value_type original, tmp;
   729                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
   739                 value_type original, tmp;
   747                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
   757                 value_type original, tmp;
   765                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
   775                 value_type original, tmp;
   783                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
   829                 __asm__ __volatile__ (
   851                         : 
"=&b" (original), 
"+Z"(
v_)
   861                 value_type & expected,
   878                         : 
"=&b" (expected), 
"=&b" (success), 
"+Z"(
v_)
   879                         : 
"b" (expected), 
"b" (desired)
   891                 value_type & expected,
   908                         : 
"=&b" (expected), 
"=&b" (success), 
"+Z"(
v_)
   909                         : 
"b" (expected), 
"b" (desired)
   922                 value_type original, tmp;
   928                         "rlwinm %1, %1, 0, 0xffff\n"   931                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
   941                 value_type original, tmp;
   947                         "rlwinm %1, %1, 0, 0xffff\n"   950                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
   960                 value_type original, tmp;
   968                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
   978                 value_type original, tmp;
   986                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
   996                 value_type original, tmp;
  1004                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
  1024 template<
typename T, 
bool Sign>
  1037                 const_cast<volatile value_type &
>(
v_) = v;
  1044                 value_type v = 
const_cast<const volatile value_type &
>(
v_);
  1045                 __asm__ __volatile__ (
  1060                 value_type original;
  1067                         : 
"=&b" (original), 
"+Z"(
v_)
  1077                 value_type & expected,
  1094                         : 
"=&b" (expected), 
"=&b" (success), 
"+Z"(
v_)
  1095                         : 
"b" (expected), 
"b" (desired)
  1107                 value_type & expected,
  1124                         : 
"=&b" (expected), 
"=&b" (success), 
"+Z"(
v_)
  1125                         : 
"b" (expected), 
"b" (desired)
  1138                 value_type original, tmp;
  1146                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
  1156                 value_type original, tmp;
  1164                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
  1174                 value_type original, tmp;
  1182                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
  1192                 value_type original, tmp;
  1200                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
  1210                 value_type original, tmp;
  1218                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
  1238 #if defined(__powerpc64__)  1240 template<
typename T, 
bool Sign>
  1253                 const_cast<volatile value_type &
>(
v_) = v;
  1260                 value_type v = 
const_cast<const volatile value_type &
>(
v_);
  1261                 __asm__ __volatile__ (
  1276                 value_type original;
  1283                         : 
"=&b" (original), 
"+Z"(
v_)
  1293                 value_type & expected,
  1310                         : 
"=&b" (expected), 
"=&b" (success), 
"+Z"(
v_)
  1311                         : 
"b" (expected), 
"b" (desired)
  1323                 value_type & expected,
  1340                         : 
"=&b" (expected), 
"=&b" (success), 
"+Z"(
v_)
  1341                         : 
"b" (expected), 
"b" (desired)
  1354                 value_type original, tmp;
  1362                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
  1372                 value_type original, tmp;
  1380                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
  1390                 value_type original, tmp;
  1398                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
  1408                 value_type original, tmp;
  1416                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
  1426                 value_type original, tmp;
  1434                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(
v_)
  1458 #if !defined(__powerpc64__)  1500                 value_type original;
  1507                         : 
"=&b" (original), 
"+Z"(
v_)
  1517                 value_type & expected,
  1534                         : 
"=&b" (expected), 
"=&b" (success), 
"+Z"(
v_)
  1535                         : 
"b" (expected), 
"b" (desired)
  1547                 value_type & expected,
  1564                         : 
"=&b" (expected), 
"=&b" (success), 
"+Z"(
v_)
  1565                         : 
"b" (expected), 
"b" (desired)
  1588 template<
typename T, 
bool Sign>
  1629                 value_type original;
  1636                         : 
"=&b" (original), 
"+Z"(
v_)
  1646                 value_type & expected,
  1663                         : 
"=&b" (expected), 
"=&b" (success), 
"+Z"(
v_)
  1664                         : 
"b" (expected), 
"b" (desired)
  1676                 value_type & expected,
  1693                         : 
"=&b" (expected), 
"=&b" (success), 
"+Z"(
v_)
  1694                         : 
"b" (expected), 
"b" (desired)
  1707                 v = v * 
sizeof(*v_);
  1708                 value_type original, tmp;
  1716                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(v_)
  1726                 v = v * 
sizeof(*v_);
  1727                 value_type original, tmp;
  1735                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(v_)
  1797                 value_type original;
  1804                         : 
"=&b" (original), 
"+Z"(
v_)
  1814                 value_type & expected,
  1831                         : 
"=&b" (expected), 
"=&b" (success), 
"+Z"(
v_)
  1832                         : 
"b" (expected), 
"b" (desired)
  1844                 value_type & expected,
  1861                         : 
"=&b" (expected), 
"=&b" (success), 
"+Z"(
v_)
  1862                         : 
"b" (expected), 
"b" (desired)
  1885 template<
typename T, 
bool Sign>
  1926                 value_type original;
  1933                         : 
"=&b" (original), 
"+Z"(
v_)
  1943                 value_type & expected,
  1960                         : 
"=&b" (expected), 
"=&b" (success), 
"+Z"(
v_)
  1961                         : 
"b" (expected), 
"b" (desired)
  1973                 value_type & expected,
  1990                         : 
"=&b" (expected), 
"=&b" (success), 
"+Z"(
v_)
  1991                         : 
"b" (expected), 
"b" (desired)
  2004                 v = v * 
sizeof(*v_);
  2005                 value_type original, tmp;
  2013                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(v_)
  2023                 v = v * 
sizeof(*v_);
  2024                 value_type original, tmp;
  2032                         : 
"=&b" (original), 
"=&b" (tmp), 
"+Z"(v_)
  2056 template<
typename T, 
bool Sign>
  2064                 memcpy(&
v_, &v, 
sizeof(value_type));
  2071                 storage_type tmp = 0;
  2072                 memcpy(&tmp, &v, 
sizeof(value_type));
  2086                 __asm__ __volatile__ (
  2098                 memcpy(&v, &tmp, 
sizeof(value_type));
  2105                 storage_type tmp = 0, original;
  2106                 memcpy(&tmp, &v, 
sizeof(value_type));
  2113                         : 
"=&b" (original), 
"+Z"(
v_)
  2118                 memcpy(&v, &original, 
sizeof(value_type));
  2124                 value_type & expected,
  2129                 storage_type expected_s = 0, desired_s = 0;
  2130                 memcpy(&expected_s, &expected, 
sizeof(value_type));
  2131                 memcpy(&desired_s, &desired, 
sizeof(value_type));
  2145                         : 
"=&b" (expected_s), 
"=&b" (success), 
"+Z"(
v_)
  2146                         : 
"b" (expected_s), 
"b" (desired_s)
  2153                 memcpy(&expected, &expected_s, 
sizeof(value_type));
  2159                 value_type & expected,
  2164                 storage_type expected_s = 0, desired_s = 0;
  2165                 memcpy(&expected_s, &expected, 
sizeof(value_type));
  2166                 memcpy(&desired_s, &desired, 
sizeof(value_type));
  2180                         : 
"=&b" (expected_s), 
"=&b" (success), 
"+Z"(
v_)
  2181                         : 
"b" (expected_s), 
"b" (desired_s)
  2188                 memcpy(&expected, &expected_s, 
sizeof(value_type));
  2205 template<
typename T, 
bool Sign>
  2213                 memcpy(&
v_, &v, 
sizeof(value_type));
  2220                 storage_type tmp = 0;
  2221                 memcpy(&tmp, &v, 
sizeof(value_type));
  2235                 __asm__ __volatile__ (
  2247                 memcpy(&v, &tmp, 
sizeof(value_type));
  2254                 storage_type tmp = 0, original;
  2255                 memcpy(&tmp, &v, 
sizeof(value_type));
  2262                         : 
"=&b" (original), 
"+Z"(
v_)
  2267                 memcpy(&v, &original, 
sizeof(value_type));
  2273                 value_type & expected,
  2278                 storage_type expected_s = 0, desired_s = 0;
  2279                 memcpy(&expected_s, &expected, 
sizeof(value_type));
  2280                 memcpy(&desired_s, &desired, 
sizeof(value_type));
  2294                         : 
"=&b" (expected_s), 
"=&b" (success), 
"+Z"(
v_)
  2295                         : 
"b" (expected_s), 
"b" (desired_s)
  2302                 memcpy(&expected, &expected_s, 
sizeof(value_type));
  2308                 value_type & expected,
  2313                 storage_type expected_s = 0, desired_s = 0;
  2314                 memcpy(&expected_s, &expected, 
sizeof(value_type));
  2315                 memcpy(&desired_s, &desired, 
sizeof(value_type));
  2329                         : 
"=&b" (expected_s), 
"=&b" (success), 
"+Z"(
v_)
  2330                         : 
"b" (expected_s), 
"b" (desired_s)
  2337                 memcpy(&expected, &expected_s, 
sizeof(value_type));
  2354 template<
typename T, 
bool Sign>
  2362                 memcpy(&
v_, &v, 
sizeof(value_type));
  2369                 storage_type tmp = 0;
  2370                 memcpy(&tmp, &v, 
sizeof(value_type));
  2384                 __asm__ __volatile__ (
  2396                 memcpy(&v, &tmp, 
sizeof(value_type));
  2403                 storage_type tmp = 0, original;
  2404                 memcpy(&tmp, &v, 
sizeof(value_type));
  2411                         : 
"=&b" (original), 
"+Z"(
v_)
  2416                 memcpy(&v, &original, 
sizeof(value_type));
  2422                 value_type & expected,
  2427                 storage_type expected_s = 0, desired_s = 0;
  2428                 memcpy(&expected_s, &expected, 
sizeof(value_type));
  2429                 memcpy(&desired_s, &desired, 
sizeof(value_type));
  2443                         : 
"=&b" (expected_s), 
"=&b" (success), 
"+Z"(
v_)
  2444                         : 
"b" (expected_s), 
"b" (desired_s)
  2451                 memcpy(&expected, &expected_s, 
sizeof(value_type));
  2457                 value_type & expected,
  2462                 storage_type expected_s = 0, desired_s = 0;
  2463                 memcpy(&expected_s, &expected, 
sizeof(value_type));
  2464                 memcpy(&desired_s, &desired, 
sizeof(value_type));
  2478                         : 
"=&b" (expected_s), 
"=&b" (success), 
"+Z"(
v_)
  2479                         : 
"b" (expected_s), 
"b" (desired_s)
  2486                 memcpy(&expected, &expected_s, 
sizeof(value_type));
  2503 #if defined(__powerpc64__)  2505 template<
typename T, 
bool Sign>
  2513                 memcpy(&
v_, &v, 
sizeof(value_type));
  2521                 memcpy(&tmp, &v, 
sizeof(value_type));
  2535                 __asm__ __volatile__ (
  2547                 memcpy(&v, &tmp, 
sizeof(value_type));
  2554                 storage_type tmp = 0, original;
  2555                 memcpy(&tmp, &v, 
sizeof(value_type));
  2562                         : 
"=&b" (original), 
"+Z"(
v_)
  2567                 memcpy(&v, &original, 
sizeof(value_type));
  2573                 value_type & expected,
  2578                 storage_type expected_s, desired_s;
  2579                 memcpy(&expected_s, &expected, 
sizeof(value_type));
  2580                 memcpy(&desired_s, &desired, 
sizeof(value_type));
  2594                         : 
"=&b" (expected_s), 
"=&b" (success), 
"+Z"(
v_)
  2595                         : 
"b" (expected_s), 
"b" (desired_s)
  2602                 memcpy(&expected, &expected_s, 
sizeof(value_type));
  2608                 value_type & expected,
  2613                 storage_type expected_s, desired_s;
  2614                 memcpy(&expected_s, &expected, 
sizeof(value_type));
  2615                 memcpy(&desired_s, &desired, 
sizeof(value_type));
  2629                         : 
"=&b" (expected_s), 
"=&b" (success), 
"+Z"(
v_)
  2630                         : 
"b" (expected_s), 
"b" (desired_s)
  2637                 memcpy(&expected, &expected_s, 
sizeof(value_type));
  2658 #define BOOST_ATOMIC_THREAD_FENCE 2  2664                         __asm__ __volatile__ (
"isync" ::: 
"memory");
  2667 #if defined(__powerpc64__)  2668                         __asm__ __volatile__ (
"lwsync" ::: 
"memory");
  2673                         __asm__ __volatile__ (
"sync" ::: 
"memory");
  2678 #define BOOST_ATOMIC_SIGNAL_FENCE 2  2687                         __asm__ __volatile__ (
"" ::: 
"memory");
 bool compare_exchange_weak(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
value_type exchange(value_type v, memory_order order=memory_order_seq_cst) volatile
static void ppc_fence_after(memory_order order)
value_type fetch_sub(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_sub(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_and(value_type v, memory_order order=memory_order_seq_cst) volatile
bool compare_exchange_strong(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
bool compare_exchange_strong(value_type &expected, value_type desired, memory_order, memory_order) volatile
value_type fetch_or(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_sub(value_type v, memory_order order=memory_order_seq_cst) volatile
bool is_lock_free(void) const volatile
void store(value_type v, memory_order order=memory_order_seq_cst) volatile
bool compare_exchange_strong(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
static void atomic_signal_fence(memory_order)
static void atomic_thread_fence(memory_order order)
value_type load(memory_order order=memory_order_seq_cst) const volatile
value_type fetch_add(value_type v, memory_order order=memory_order_seq_cst) volatile
base_atomic(value_type v)
value_type exchange(value_type v, memory_order order=memory_order_seq_cst) volatile
bool is_lock_free(void) const volatile
base_atomic(value_type v)
bool is_lock_free(void) const volatile
bool compare_exchange_strong(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
base_atomic(value_type v)
value_type load(memory_order order=memory_order_seq_cst) const volatile
bool compare_exchange_strong(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
void store(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_and(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type load(memory_order order=memory_order_seq_cst) const volatile
bool compare_exchange_weak(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
base_atomic(value_type v)
void store(value_type v, memory_order order=memory_order_seq_cst) volatile
static void ppc_fence_after_store(memory_order order)
bool is_lock_free(void) const volatile
void store(value_type v, memory_order order=memory_order_seq_cst) volatile
bool is_lock_free(void) const volatile
value_type fetch_and(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type load(memory_order order=memory_order_seq_cst) const volatile
bool compare_exchange_strong(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
#define BOOST_ATOMIC_DECLARE_POINTER_OPERATORS
value_type fetch_add(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type exchange(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type exchange(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type exchange(value_type v, memory_order order=memory_order_seq_cst) volatile
static void ppc_fence_before(memory_order order)
#define BOOST_ATOMIC_ASM_SLOWPATH_CLEAR
value_type exchange(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_xor(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_or(value_type v, memory_order order=memory_order_seq_cst) volatile
base_atomic(value_type v)
value_type load(memory_order=memory_order_seq_cst) volatileconst
value_type fetch_and(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type load(memory_order order=memory_order_seq_cst) const volatile
void store(value_type v, memory_order order=memory_order_seq_cst) volatile
bool compare_exchange_weak(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
bool compare_exchange_strong(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
bool compare_exchange_strong(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
value_type fetch_sub(difference_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_sub(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_or(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type load(memory_order order=memory_order_seq_cst) const volatile
#define BOOST_ATOMIC_DECLARE_BASE_OPERATORS
base_atomic(value_type v)
bool compare_exchange_weak(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
void store(value_type v, memory_order=memory_order_seq_cst) volatile
ptrdiff_t difference_type
bool compare_exchange_weak(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
bool is_lock_free(void) const volatile
value_type fetch_or(value_type v, memory_order order=memory_order_seq_cst) volatile
bool is_lock_free(void) const volatile
bool compare_exchange_weak(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
bool compare_exchange_strong(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
void store(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type exchange(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_or(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_xor(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_xor(value_type v, memory_order order=memory_order_seq_cst) volatile
bool is_lock_free(void) const volatile
bool compare_exchange_weak(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
bool compare_exchange_weak(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
void store(value_type v, memory_order order=memory_order_seq_cst) volatile
base_atomic(value_type v)
base_atomic(value_type v)
bool compare_exchange_weak(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
base_atomic(value_type v)
value_type fetch_xor(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type load(memory_order order=memory_order_seq_cst) const volatile
bool is_lock_free(void) const volatile
bool compare_exchange_weak(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
value_type exchange(value_type v, memory_order order=memory_order_seq_cst) volatile
bool compare_exchange_strong(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
bool compare_exchange_weak(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
void store(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type exchange(value_type v, memory_order=memory_order_seq_cst) volatile
void store(value_type v, memory_order order=memory_order_seq_cst) volatile
#define BOOST_ATOMIC_DECLARE_INTEGRAL_OPERATORS
bool is_lock_free(void) const volatile
bool is_lock_free(void) const volatile
bool compare_exchange_strong(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
value_type load(memory_order order=memory_order_seq_cst) const volatile
value_type load(memory_order order=memory_order_seq_cst) const volatile
value_type fetch_add(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_add(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_add(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_sub(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type exchange(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type load(memory_order order=memory_order_seq_cst) const volatile
base_atomic(value_type v)
void store(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_add(difference_type v, memory_order order=memory_order_seq_cst) volatile
value_type exchange(value_type v, memory_order order=memory_order_seq_cst) volatile
void operator=(const base_atomic &)
value_type fetch_and(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_xor(value_type v, memory_order order=memory_order_seq_cst) volatile