File indexing completed on 2025-12-16 09:45:01
0001
0002
0003
0004
0005
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