arudradey's picture
Upload folder using huggingface_hub
00df61d verified
Raw
History Blame Contribute Delete
1.77 kB
/*
* Copyright 2019 The Emscripten Authors. All rights reserved.
* Emscripten is available under two separate licenses, the MIT license and the
* University of Illinois/NCSA Open Source License. Both these licenses can be
* found in the LICENSE file.
*/
#pragma once
#include <emscripten/emscripten.h>
#include <stddef.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct asyncify_data_s {
void *stack_ptr; /** Current position in the Asyncify stack (*not* the C stack) */
void *stack_limit; /** Where the Asyncify stack ends. */
int rewind_id; /** Interned ID of the rewind entry point; opaque to application. */
} asyncify_data_t;
typedef struct emscripten_fiber_s {
void *stack_base; /** Where the C stack starts (NOTE: grows down). */
void *stack_limit; /** Where the C stack ends. */
void *stack_ptr; /** Current position in the C stack. */
em_arg_callback_func entry; /** Function to call when resuming this context. If NULL, asyncify_data is used to rewind the call stack. */
void *user_data; /** Opaque pointer, passed as-is to the entry function. */
asyncify_data_t asyncify_data;
} emscripten_fiber_t;
void emscripten_fiber_init(
emscripten_fiber_t * _Nonnull fiber,
em_arg_callback_func entry_func,
void *entry_func_arg,
void * _Nonnull c_stack,
size_t c_stack_size,
void * _Nonnull asyncify_stack,
size_t asyncify_stack_size
);
void emscripten_fiber_init_from_current_context(
emscripten_fiber_t * _Nonnull fiber,
void * _Nonnull asyncify_stack,
size_t asyncify_stack_size
);
void emscripten_fiber_swap(
emscripten_fiber_t * _Nonnull old_fiber,
emscripten_fiber_t * _Nonnull new_fibe
);
#ifdef __cplusplus
}
#endif