diff options
Diffstat (limited to 'boost/context/detail/fcontext_arm_mac.hpp')
-rw-r--r-- | boost/context/detail/fcontext_arm_mac.hpp | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/boost/context/detail/fcontext_arm_mac.hpp b/boost/context/detail/fcontext_arm_mac.hpp new file mode 100644 index 0000000000..a8416efd0c --- /dev/null +++ b/boost/context/detail/fcontext_arm_mac.hpp @@ -0,0 +1,70 @@ + +// 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_ARM_MAC_H +#define BOOST_CONTEXT_DETAIL_FCONTEXT_ARM_MAC_H + +#include <cstddef> + +#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 { + +extern "C" { + +#define BOOST_CONTEXT_CALLDECL + +struct stack_t +{ + void * sp; + std::size_t size; + + stack_t() : + sp( 0), size( 0) + {} +}; + +struct fp_t +{ + boost::uint32_t fc_freg[16]; + + fp_t() : + fc_freg() + {} +}; + +struct fcontext_t +{ + boost::uint32_t fc_greg[11]; + stack_t fc_stack; + fp_t fc_fp; + void * fc_unwind_sjlj; + + fcontext_t() : + fc_greg(), + fc_stack(), + fc_fp(), + fc_unwind_sjlj( 0) + {} +}; + +} + +}} + +#ifdef BOOST_HAS_ABI_HEADERS +# include BOOST_ABI_SUFFIX +#endif + +#endif // BOOST_CONTEXT_DETAIL_FCONTEXT_ARM_MAC_H |