libcopp  1.1.0
fcontext_arm_win.hpp
Go to the documentation of this file.
1 
2 // Copyright Oliver Kowalke 2009.
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 _COPP_BOOST_CONTEXT_DETAIL_FCONTEXT_ARM_WIN_H
8 #define _COPP_BOOST_CONTEXT_DETAIL_FCONTEXT_ARM_WIN_H
9 
10 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
11 #pragma once
12 #endif
13 
14 #include <cstddef>
15 
16 #include <cstddef>
17 #include <stdint.h>
18 
20 #include "libcopp/utils/features.h"
21 
22 #ifdef COPP_HAS_ABI_HEADERS
23 #include COPP_ABI_PREFIX
24 #endif
25 
26 
27 namespace copp {
28  namespace fcontext {
29 
30 
31  extern "C" {
32 
33 #define COPP_BOOST_CONTEXT_CALLDECL
34 
35  struct stack_t {
36  void *sp;
37  std::size_t size;
38  void *limit;
39 
40  stack_t() : sp(0), size(0), limit(0) {}
41  };
42 
43  struct fp_t {
44  uint32_t fc_freg[16];
45 
46  fp_t() : fc_freg() {}
47  };
48 
49  struct fcontext_t {
50  uint32_t fc_greg[11];
51  stack_t fc_stack;
52  fp_t fc_fp;
53  uint32_t fc_dealloc;
54 
55  fcontext_t() : fc_greg(), fc_stack(), fc_fp(), fc_dealloc(0) {}
56  };
57  }
58  }
59 }
60 
61 #ifdef COPP_HAS_ABI_HEADERS
62 #include COPP_ABI_SUFFIX
63 #endif
64 
65 
66 #endif // _COPP_BOOST_CONTEXT_DETAIL_FCONTEXT_ARM_WIN_H