/usr/include/boost/fiber/detail
NameSizeModeActions
config.hpp18280644editdlrm
context_spinlock_queue.hpp26770644editdlrm
context_spmc_queue.hpp68480644editdlrm
convert.hpp10390644editdlrm
cpu_relax.hpp25540644editdlrm
data.hpp11320644editdlrm
decay_copy.hpp7330644editdlrm
disable_overload.hpp8020644editdlrm
exchange.hpp7340644editdlrm
fss.hpp13930644editdlrm
futex.hpp15560644editdlrm
is_all_same.hpp10220644editdlrm
rtm.hpp17910644editdlrm
spinlock.hpp21680644editdlrm
spinlock_rtm.hpp48450644editdlrm
spinlock_status.hpp4570644editdlrm
spinlock_ttas.hpp52680644editdlrm
spinlock_ttas_adaptive.hpp59440644editdlrm
spinlock_ttas_adaptive_futex.hpp66220644editdlrm
spinlock_ttas_futex.hpp58790644editdlrm
thread_barrier.hpp15400644editdlrm
Edit: /usr/include/boost/fiber/detail/rtm.hpp (1791B)
// Copyright Oliver Kowalke 2017. // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // #ifndef BOOST_FIBER_DETAIL_RTM_H #define BOOST_FIBER_DETAIL_RTM_H #include #include #include #include #ifdef BOOST_HAS_ABI_HEADERS # include BOOST_ABI_PREFIX #endif namespace boost { namespace fibers { namespace detail { struct rtm_status { enum { none = 0, explicit_abort = 1 << 0, may_retry = 1 << 1, memory_conflict = 1 << 2, buffer_overflow = 1 << 3, debug_hit = 1 << 4, nested_abort = 1 << 5 }; static constexpr std::uint32_t success = ~std::uint32_t{ 0 }; }; static BOOST_FORCEINLINE std::uint32_t rtm_begin() noexcept { std::uint32_t result = rtm_status::success; __asm__ __volatile__ ( ".byte 0xc7,0xf8 ; .long 0" : "+a" (result) : : "memory" ); return result; } static BOOST_FORCEINLINE void rtm_end() noexcept { __asm__ __volatile__ ( ".byte 0x0f,0x01,0xd5" : : : "memory" ); } static BOOST_FORCEINLINE void rtm_abort_lock_not_free() noexcept { __asm__ __volatile__ ( ".byte 0xc6,0xf8,0xff" : : : "memory" ); } static BOOST_FORCEINLINE bool rtm_test() noexcept { bool result; __asm__ __volatile__ ( ".byte 0x0f,0x01,0xd6; setz %0" : "=q" (result) : : "memory" ); return result; } }}} #ifdef BOOST_HAS_ABI_HEADERS # include BOOST_ABI_SUFFIX #endif #endif // BOOST_FIBER_DETAIL_RTM_H