Chris@102: Chris@102: // Copyright Oliver Kowalke 2014. Chris@102: // Distributed under the Boost Software License, Version 1.0. Chris@102: // (See accompanying file LICENSE_1_0.txt or copy at Chris@102: // http://www.boost.org/LICENSE_1_0.txt) Chris@102: Chris@102: #ifndef BOOST_CONTEXT_STACK_CONTEXT_H Chris@102: #define BOOST_CONTEXT_STACK_CONTEXT_H Chris@102: Chris@102: #include Chris@102: Chris@102: #include Chris@102: Chris@102: #include Chris@102: Chris@102: #ifdef BOOST_HAS_ABI_HEADERS Chris@102: # include BOOST_ABI_PREFIX Chris@102: #endif Chris@102: Chris@102: namespace boost { Chris@102: namespace context { Chris@102: Chris@102: #if defined(BOOST_USE_SEGMENTED_STACKS) Chris@102: struct stack_context { Chris@102: typedef void * segments_context[BOOST_CONTEXT_SEGMENTS]; Chris@102: Chris@102: std::size_t size; Chris@102: void * sp; Chris@102: segments_context segments_ctx; Chris@102: #if defined(BOOST_USE_VALGRIND) Chris@102: unsigned valgrind_stack_id; Chris@102: #endif Chris@102: Chris@102: stack_context() : Chris@102: size( 0), Chris@102: sp( 0), Chris@102: segments_ctx() Chris@102: #if defined(BOOST_USE_VALGRIND) Chris@102: , valgrind_stack_id( 0) Chris@102: #endif Chris@102: {} Chris@102: }; Chris@102: #else Chris@102: struct stack_context { Chris@102: std::size_t size; Chris@102: void * sp; Chris@102: #if defined(BOOST_USE_VALGRIND) Chris@102: unsigned valgrind_stack_id; Chris@102: #endif Chris@102: Chris@102: stack_context() : Chris@102: size( 0), Chris@102: sp( 0) Chris@102: #if defined(BOOST_USE_VALGRIND) Chris@102: , valgrind_stack_id( 0) Chris@102: #endif Chris@102: {} Chris@102: }; Chris@102: #endif Chris@102: Chris@102: }} Chris@102: Chris@102: #ifdef BOOST_HAS_ABI_HEADERS Chris@102: # include BOOST_ABI_SUFFIX Chris@102: #endif Chris@102: Chris@102: #endif // BOOST_CONTEXT_STACK_CONTEXT_H