summaryrefslogtreecommitdiff
path: root/wasm/asyncify.h
diff options
context:
space:
mode:
Diffstat (limited to 'wasm/asyncify.h')
-rw-r--r--wasm/asyncify.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/wasm/asyncify.h b/wasm/asyncify.h
new file mode 100644
index 0000000000..49eb125593
--- /dev/null
+++ b/wasm/asyncify.h
@@ -0,0 +1,23 @@
+#ifndef RB_WASM_SUPPORT_ASYNCIFY_H
+#define RB_WASM_SUPPORT_ASYNCIFY_H
+
+__attribute__((import_module("asyncify"), import_name("start_unwind")))
+void asyncify_start_unwind(void *buf);
+#define asyncify_start_unwind(buf) do { \
+ extern void *rb_asyncify_unwind_buf; \
+ rb_asyncify_unwind_buf = (buf); \
+ asyncify_start_unwind((buf)); \
+ } while (0)
+__attribute__((import_module("asyncify"), import_name("stop_unwind")))
+void asyncify_stop_unwind(void);
+#define asyncify_stop_unwind() do { \
+ extern void *rb_asyncify_unwind_buf; \
+ rb_asyncify_unwind_buf = NULL; \
+ asyncify_stop_unwind(); \
+ } while (0)
+__attribute__((import_module("asyncify"), import_name("start_rewind")))
+void asyncify_start_rewind(void *buf);
+__attribute__((import_module("asyncify"), import_name("stop_rewind")))
+void asyncify_stop_rewind(void);
+
+#endif