]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/coroutine2/doc/attributes.qbk
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / coroutine2 / doc / attributes.qbk
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
8 [section:attributes Attributes]
9
10 Class `attributes` is used to specify parameters required to setup a
11 coroutine's context.
12
13 enum flag_unwind_t
14 {
15 stack_unwind,
16 no_stack_unwind
17 };
18
19 enum flag_fpu_t
20 {
21 fpu_preserved,
22 fpu_not_preserved
23 };
24
25 struct attributes
26 {
27 std::size_t size;
28 flag_unwind_t do_unwind;
29 flag_fpu_t preserve_fpu;
30
31 attributes() noexcept;
32
33 explicit attributes( std::size_t size_) noexcept;
34
35 explicit attributes( flag_unwind_t do_unwind_) noexcept;
36
37 explicit attributes( flag_fpu_t preserve_fpu_) noexcept;
38
39 explicit attributes( std::size_t size_, flag_unwind_t do_unwind_) noexcept;
40
41 explicit attributes( std::size_t size_, flag_fpu_t preserve_fpu_) noexcept;
42
43 explicit attributes( flag_unwind_t do_unwind_, flag_fpu_t preserve_fpu_) noexcept;
44
45 explicit attributes( std::size_t size_, flag_unwind_t do_unwind_, flag_fpu_t preserve_fpu_) noexcept;
46 };
47
48 [heading `attributes()`]
49 [variablelist
50 [[Effects:] [Default constructor using `boost::context::default_stacksize()`, does unwind
51 the stack after coroutine/generator is complete and preserves FPU registers.]]
52 [[Throws:] [Nothing.]]
53 ]
54
55 [heading `attributes( std::size_t size)`]
56 [variablelist
57 [[Effects:] [Argument `size` defines stack size of the new coroutine.
58 Stack unwinding after termination and preserving FPU registers is set by
59 default.]]
60 [[Throws:] [Nothing.]]
61 ]
62
63 [heading `attributes( flag_unwind_t do_unwind)`]
64 [variablelist
65 [[Effects:] [Argument `do_unwind` determines if stack will be unwound after
66 termination or not. The default stacksize is used for the new coroutine
67 and FPU registers are preserved.]]
68 [[Throws:] [Nothing.]]
69 ]
70
71 [heading `attributes( flag_fpu_t preserve_fpu)`]
72 [variablelist
73 [[Effects:] [Argument `preserve_fpu` determines if FPU register have to be
74 preserved across context switches. The default stacksize is used for the
75 new coroutine and its stack will be unwound after termination.]]
76 [[Throws:] [Nothing.]]
77 ]
78
79 [heading `attributes( std::size_t size, flag_unwind_t do_unwind)`]
80 [variablelist
81 [[Effects:] [Arguments `size` and `do_unwind` are given by the user.
82 FPU registers are preserved across each context switch.]]
83 [[Throws:] [Nothing.]]
84 ]
85
86 [heading `attributes( std::size_t size, flag_fpu_t preserve_fpu)`]
87 [variablelist
88 [[Effects:] [Arguments `size` and `preserve_fpu` are given by the user.
89 The stack is automatically unwound after coroutine/generator terminates.]]
90 [[Throws:] [Nothing.]]
91 ]
92
93 [heading `attributes( flag_unwind_t do_unwind, flag_fpu_t preserve_fpu)`]
94 [variablelist
95 [[Effects:] [Arguments `do_unwind` and `preserve_fpu` are given by the user.
96 The stack gets a default value of `boost::context::default_stacksize()`.]]
97 [[Throws:] [Nothing.]]
98 ]
99
100 [heading `attributes( std::size_t size, flag_unwind_t do_unwind, flag_fpu_t preserve_fpu)`]
101 [variablelist
102 [[Effects:] [Arguments `size`, `do_unwind` and `preserve_fpu` are given by the
103 user.]]
104 [[Throws:] [Nothing.]]
105 ]
106
107 [endsect]