diff options
Diffstat (limited to 'src/third_party/boost-1.69.0/boost/context/detail/fcontext.hpp')
-rw-r--r-- | src/third_party/boost-1.69.0/boost/context/detail/fcontext.hpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/third_party/boost-1.69.0/boost/context/detail/fcontext.hpp b/src/third_party/boost-1.69.0/boost/context/detail/fcontext.hpp new file mode 100644 index 00000000000..00cb24d9415 --- /dev/null +++ b/src/third_party/boost-1.69.0/boost/context/detail/fcontext.hpp @@ -0,0 +1,46 @@ + +// Copyright Oliver Kowalke 2009. +// 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_DETAIL_FCONTEXT_H +#define BOOST_CONTEXT_DETAIL_FCONTEXT_H + +#include <boost/config.hpp> +#include <boost/cstdint.hpp> + +#include <boost/context/detail/config.hpp> + +#ifdef BOOST_HAS_ABI_HEADERS +# include BOOST_ABI_PREFIX +#endif + +namespace boost { +namespace context { +namespace detail { + +typedef void* fcontext_t; + +struct transfer_t { + fcontext_t fctx; + void * data; +}; + +extern "C" BOOST_CONTEXT_DECL +transfer_t BOOST_CONTEXT_CALLDECL jump_fcontext( fcontext_t const to, void * vp); +extern "C" BOOST_CONTEXT_DECL +fcontext_t BOOST_CONTEXT_CALLDECL make_fcontext( void * sp, std::size_t size, void (* fn)( transfer_t) ); + +// based on an idea of Giovanni Derreta +extern "C" BOOST_CONTEXT_DECL +transfer_t BOOST_CONTEXT_CALLDECL ontop_fcontext( fcontext_t const to, void * vp, transfer_t (* fn)( transfer_t) ); + +}}} + +#ifdef BOOST_HAS_ABI_HEADERS +# include BOOST_ABI_SUFFIX +#endif + +#endif // BOOST_CONTEXT_DETAIL_FCONTEXT_H + |