summaryrefslogtreecommitdiff
path: root/ocaml-binary-annot/testsuite/tests/embedded/cmstub.c
diff options
context:
space:
mode:
Diffstat (limited to 'ocaml-binary-annot/testsuite/tests/embedded/cmstub.c')
-rw-r--r--ocaml-binary-annot/testsuite/tests/embedded/cmstub.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/ocaml-binary-annot/testsuite/tests/embedded/cmstub.c b/ocaml-binary-annot/testsuite/tests/embedded/cmstub.c
new file mode 100644
index 0000000000..56cd694431
--- /dev/null
+++ b/ocaml-binary-annot/testsuite/tests/embedded/cmstub.c
@@ -0,0 +1,17 @@
+#include <string.h>
+#include <caml/mlvalues.h>
+#include <caml/callback.h>
+
+/* Functions callable directly from C */
+
+int fib(int n)
+{
+ value * fib_closure = caml_named_value("fib");
+ return Int_val(callback(*fib_closure, Val_int(n)));
+}
+
+char * format_result(int n)
+{
+ value * format_result_closure = caml_named_value("format_result");
+ return strdup(String_val(callback(*format_result_closure, Val_int(n))));
+}