use libc::c_char; use wasmer_runtime_core::vm; #[repr(C)] pub struct LLVMModule { _private: [u8; 0], } #[allow(non_camel_case_types, dead_code)] #[derive(Debug, Copy, Clone, PartialEq, Eq)] #[repr(C)] pub enum MemProtect { NONE, READ, READ_WRITE, READ_EXECUTE, } #[allow(non_camel_case_types, dead_code)] #[derive(Debug, Copy, Clone, PartialEq, Eq)] #[repr(C)] pub enum LLVMResult { OK, ALLOCATE_FAILURE, PROTECT_FAILURE, DEALLOC_FAILURE, OBJECT_LOAD_FAILURE, } #[repr(C)] pub struct Callbacks { pub alloc_memory: extern "C" fn(usize, MemProtect, &mut *mut u8, &mut usize) -> LLVMResult, pub protect_memory: extern "C" fn(*mut u8, usize, MemProtect) -> LLVMResult, pub dealloc_memory: extern "C" fn(*mut u8, usize) -> LLVMResult, pub lookup_vm_symbol: extern "C" fn(*const c_char, usize) -> *const vm::Func, pub visit_fde: extern "C" fn(*mut u8, usize, extern "C" fn(*mut u8)), }