File indexing completed on 2025-01-30 09:33:50
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef BOOST_ATOMIC_DETAIL_CAPS_ARCH_GCC_AARCH32_HPP_INCLUDED_
0015 #define BOOST_ATOMIC_DETAIL_CAPS_ARCH_GCC_AARCH32_HPP_INCLUDED_
0016
0017 #include <boost/atomic/detail/config.hpp>
0018
0019 #ifdef BOOST_HAS_PRAGMA_ONCE
0020 #pragma once
0021 #endif
0022
0023 #if defined(__ARMEL__) || \
0024 (defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) || \
0025 (defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)) || \
0026 defined(BOOST_WINDOWS)
0027 #define BOOST_ATOMIC_DETAIL_AARCH32_LITTLE_ENDIAN
0028 #elif defined(__ARMEB__) || \
0029 defined(__ARM_BIG_ENDIAN) || \
0030 (defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) || \
0031 (defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__))
0032 #define BOOST_ATOMIC_DETAIL_AARCH32_BIG_ENDIAN
0033 #else
0034 #include <boost/predef/other/endian.h>
0035 #if BOOST_ENDIAN_LITTLE_BYTE
0036 #define BOOST_ATOMIC_DETAIL_AARCH32_LITTLE_ENDIAN
0037 #elif BOOST_ENDIAN_BIG_BYTE
0038 #define BOOST_ATOMIC_DETAIL_AARCH32_BIG_ENDIAN
0039 #else
0040 #error "Boost.Atomic: Failed to determine AArch32 endianness, the target platform is not supported. Please, report to the developers (patches are welcome)."
0041 #endif
0042 #endif
0043
0044 #define BOOST_ATOMIC_INT8_LOCK_FREE 2
0045 #define BOOST_ATOMIC_INT16_LOCK_FREE 2
0046 #define BOOST_ATOMIC_INT32_LOCK_FREE 2
0047 #define BOOST_ATOMIC_INT64_LOCK_FREE 2
0048 #define BOOST_ATOMIC_POINTER_LOCK_FREE 2
0049
0050 #define BOOST_ATOMIC_THREAD_FENCE 2
0051 #define BOOST_ATOMIC_SIGNAL_FENCE 2
0052
0053 #endif