xref: /aosp_15_r20/external/swiftshader/third_party/marl/src/osfiber_emscripten.h (revision 03ce13f70fcc45d86ee91b7ee4cab1936a95046e)
1 // Copyright 2019 The Marl Authors.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     https://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #ifndef MARL_BUILD_WASM
16 
17 #include <cstdint>
18 #include <cstddef>
19 #include <array>
20 #include <emscripten.h>
21 #include <emscripten/fiber.h>
22 
23 struct marl_fiber_context {
24   // callee-saved data
25   static constexpr size_t asyncify_stack_size = 1024 * 1024;
26   emscripten_fiber_t context;
27   std::array</*std::byte*/ char, asyncify_stack_size> asyncify_stack;
28 };
29 
30 #endif  // MARL_BUILD_ASM
31