]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/boost/context/stack_context.hpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / boost / context / stack_context.hpp
CommitLineData
7c673cae
FG
1
2// Copyright Oliver Kowalke 2014.
3// Distributed under the Boost Software License, Version 1.0.
4// (See accompanying file LICENSE_1_0.txt or copy at
5// http://www.boost.org/LICENSE_1_0.txt)
6
7#ifndef BOOST_CONTEXT_STACK_CONTEXT_H
8#define BOOST_CONTEXT_STACK_CONTEXT_H
9
10#include <cstddef>
11
12#include <boost/config.hpp>
13
14#include <boost/context/detail/config.hpp>
15
16#ifdef BOOST_HAS_ABI_HEADERS
17# include BOOST_ABI_PREFIX
18#endif
19
20namespace boost {
21namespace context {
22
23#if ! defined(BOOST_CONTEXT_NO_CXX11)
24struct stack_context {
25# if defined(BOOST_USE_SEGMENTED_STACKS)
26 typedef void * segments_context[BOOST_CONTEXT_SEGMENTS];
27# endif
28
29 std::size_t size{ 0 };
30 void * sp{ nullptr };
31# if defined(BOOST_USE_SEGMENTED_STACKS)
32 segments_context segments_ctx{};
33# endif
34# if defined(BOOST_USE_VALGRIND)
35 unsigned valgrind_stack_id{ 0 };
36# endif
37};
38#else
39struct stack_context {
40# if defined(BOOST_USE_SEGMENTED_STACKS)
41 typedef void * segments_context[BOOST_CONTEXT_SEGMENTS];
42# endif
43
44 std::size_t size;
45 void * sp;
46# if defined(BOOST_USE_SEGMENTED_STACKS)
47 segments_context segments_ctx;
48# endif
49# if defined(BOOST_USE_VALGRIND)
50 unsigned valgrind_stack_id;
51# endif
52
53 stack_context() :
54 size( 0),
55 sp( 0)
56# if defined(BOOST_USE_SEGMENTED_STACKS)
57 , segments_ctx()
58# endif
59# if defined(BOOST_USE_VALGRIND)
60 , valgrind_stack_id( 0)
61# endif
62 {}
63};
64#endif
65
66}}
67
68#ifdef BOOST_HAS_ABI_HEADERS
69# include BOOST_ABI_SUFFIX
70#endif
71
72#endif // BOOST_CONTEXT_STACK_CONTEXT_H