// Copyright Oliver Kowalke 2014. // 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_CONTEXT_STACK_CONTEXT_H #define BOOST_CONTEXT_STACK_CONTEXT_H #include #include #include #ifdef BOOST_HAS_ABI_HEADERS # include BOOST_ABI_PREFIX #endif namespace boost { namespace context { #if defined(BOOST_USE_SEGMENTED_STACKS) struct stack_context { typedef void * segments_context[BOOST_CONTEXT_SEGMENTS]; std::size_t size; void * sp; segments_context segments_ctx; #if defined(BOOST_USE_VALGRIND) unsigned valgrind_stack_id; #endif stack_context() : size( 0), sp( 0), segments_ctx() #if defined(BOOST_USE_VALGRIND) , valgrind_stack_id( 0) #endif {} }; #else struct stack_context { std::size_t size; void * sp; #if defined(BOOST_USE_VALGRIND) unsigned valgrind_stack_id; #endif stack_context() : size( 0), sp( 0) #if defined(BOOST_USE_VALGRIND) , valgrind_stack_id( 0) #endif {} }; #endif }} #ifdef BOOST_HAS_ABI_HEADERS # include BOOST_ABI_SUFFIX #endif #endif // BOOST_CONTEXT_STACK_CONTEXT_H