Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:45:01

0001 
0002 //          Copyright Oliver Kowalke 2014.
0003 // Distributed under the Boost Software License, Version 1.0.
0004 //    (See accompanying file LICENSE_1_0.txt or copy at
0005 //          http://www.boost.org/LICENSE_1_0.txt)
0006 
0007 #ifndef BOOST_CONTEXT_STACK_CONTEXT_H
0008 #define BOOST_CONTEXT_STACK_CONTEXT_H
0009 
0010 #include <cstddef>
0011 
0012 #include <boost/config.hpp>
0013 
0014 #include <boost/context/detail/config.hpp>
0015 
0016 #ifdef BOOST_HAS_ABI_HEADERS
0017 #  include BOOST_ABI_PREFIX
0018 #endif
0019 
0020 namespace boost {
0021 namespace context {
0022 
0023 #if ! defined(BOOST_CONTEXT_NO_CXX11)
0024 struct BOOST_CONTEXT_DECL stack_context {
0025 # if defined(BOOST_USE_SEGMENTED_STACKS)
0026     typedef void *  segments_context[BOOST_CONTEXT_SEGMENTS];
0027 # endif
0028 
0029     std::size_t             size{ 0 };
0030     void                *   sp{ nullptr };
0031 # if defined(BOOST_USE_SEGMENTED_STACKS)
0032     segments_context        segments_ctx{};
0033 # endif
0034 # if defined(BOOST_USE_VALGRIND)
0035     unsigned                valgrind_stack_id{ 0 };
0036 # endif
0037 };
0038 #else
0039 struct BOOST_CONTEXT_DECL stack_context {
0040 # if defined(BOOST_USE_SEGMENTED_STACKS)
0041     typedef void *  segments_context[BOOST_CONTEXT_SEGMENTS];
0042 # endif
0043 
0044     std::size_t             size;
0045     void                *   sp;
0046 # if defined(BOOST_USE_SEGMENTED_STACKS)
0047     segments_context        segments_ctx;
0048 # endif
0049 # if defined(BOOST_USE_VALGRIND)
0050     unsigned                valgrind_stack_id;
0051 # endif
0052 
0053     stack_context() :
0054         size( 0),
0055         sp( 0)
0056 # if defined(BOOST_USE_SEGMENTED_STACKS)
0057         , segments_ctx()
0058 # endif
0059 # if defined(BOOST_USE_VALGRIND)
0060         , valgrind_stack_id( 0)
0061 # endif
0062         {}
0063 };
0064 #endif
0065 
0066 }}
0067 
0068 #ifdef BOOST_HAS_ABI_HEADERS
0069 #  include BOOST_ABI_SUFFIX
0070 #endif
0071 
0072 #endif // BOOST_CONTEXT_STACK_CONTEXT_H