libcopp  2.2.0
fcontext_ppc.hpp
Go to the documentation of this file.
1 // Copyright 2023 owent
2 
3 #pragma once
4 
5 #include <libcopp/utils/config/libcopp_build_features.h>
6 
7 // clang-format off
8 #include <libcopp/utils/config/stl_include_prefix.h> // NOLINT(build/include_order)
9 // clang-format on
10 #include <stdint.h>
11 #include <cstddef>
12 // clang-format off
13 #include <libcopp/utils/config/stl_include_suffix.h> // NOLINT(build/include_order)
14 // clang-format on
15 
17 #include "libcopp/utils/features.h"
18 
19 #ifdef COPP_HAS_ABI_HEADERS
20 # include COPP_ABI_PREFIX
21 #endif
22 
23 LIBCOPP_COPP_NAMESPACE_BEGIN
24 namespace fcontext {
25 
26 extern "C" {
27 
28 #define COPP_BOOST_CONTEXT_CALLDECL
29 
30 struct stack_t {
31  void *sp;
32  std::size_t size;
33 
34  stack_t() : sp(0), size(0) {}
35 };
36 
37 struct fp_t {
38  uint64_t fc_freg[19];
39 
40  fp_t() : fc_freg() {}
41 };
42 
43 struct fcontext_t {
44 #if defined(__powerpc64__)
45  uint64_t fc_greg[23];
46 #else
47  uint32_t fc_greg[23];
48 #endif
49  stack_t fc_stack;
50  fp_t fc_fp;
51 
53 };
54 }
55 } // namespace fcontext
56 LIBCOPP_COPP_NAMESPACE_END
57 
58 #ifdef COPP_HAS_ABI_HEADERS
59 # include COPP_ABI_SUFFIX
60 #endif
void * fcontext_t
Definition: fcontext.hpp:27
uint32_t fc_greg[11]
uint32_t fc_freg[16]
std::size_t size