#ifndef FZL_VM_EXTERN_H #define FZL_VM_EXTERN_H #include #include #include // Loaded extern function definition typedef struct { void *func_ptr; ffi_cif cif; ffi_type **arg_types; } fzl_vm_sym_t; // Extern object descriptor typedef struct { void **libs; size_t libs_loaded; fzl_vm_sym_t *syms; size_t syms_loaded; } fzl_vm_extern_t; // Load externs fzl_vm_extern_t *fzl_vm_init_externs(fzl_vm_reader_t *reader); // Get last error from externs loader char *fzl_vm_externs_geterror(); // Close and free externs void fzl_vm_free_externs(fzl_vm_extern_t *ex); #endif // FZL_VM_EXTERN_H