From e48c212e0d5b45ed93ca27daa5e4420c65627c14 Mon Sep 17 00:00:00 2001 From: sbosse Date: Mon, 16 Mar 2026 11:09:34 +0100 Subject: [PATCH] Mon 16 Mar 11:09:06 CET 2026 --- src/ccall.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/ccall.c diff --git a/src/ccall.c b/src/ccall.c new file mode 100644 index 0000000..2b40a7a --- /dev/null +++ b/src/ccall.c @@ -0,0 +1,39 @@ +#include "config.h" +#include "types.h" +#include "error.h" +#include "lexer.h" +#include "ops.h" +#include "mem.h" +#include "stack.h" +#include "reg.h" +#include "utils.h" +#include "vm.h" +#include "printf.h" +#include "ccall.h" +#include "context.h" +#include "event.h" +#include "debug.h" + +/* + Table of xternal C function handlers. Must be initialized by host application. +*/ +ccall_t *ccalls=NULL; + + +void CCallInit(ccall_t *_ccalls) { + ccalls=_ccalls; + // ccall index jump list + int i=0,j=0; + char c; + do { + c=ccalls[i].name[0]; + j=i; + while (ccalls[j].name && ccalls[j].name[0]==c) j++; + if (ccalls[j].name) { + while (i