1use super::*;
2use crate::execution_engine::*;
3
4pub type LLVMMemoryManagerCreateContextCallback =
5 extern "C" fn(CtxCtx: *mut ::libc::c_void) -> *mut ::libc::c_void;
6pub type LLVMMemoryManagerNotifyTerminatingCallback = extern "C" fn(CtxCtx: *mut ::libc::c_void);
7
8extern "C" {
9 pub fn LLVMOrcCreateRTDyldObjectLinkingLayerWithSectionMemoryManager(
10 ES: LLVMOrcExecutionSessionRef,
11 ) -> LLVMOrcObjectLayerRef;
12 pub fn LLVMOrcCreateRTDyldObjectLinkingLayerWithMCJITMemoryManagerLikeCallbacks(
13 ES: LLVMOrcExecutionSessionRef,
14 CreateContextCtx: *mut ::libc::c_void,
15 CreateContext: LLVMMemoryManagerCreateContextCallback,
16 NotifyTerminating: LLVMMemoryManagerNotifyTerminatingCallback,
17 AllocateCodeSection: LLVMMemoryManagerAllocateCodeSectionCallback,
18 AllocateDataSection: LLVMMemoryManagerAllocateDataSectionCallback,
19 FinalizeMemory: LLVMMemoryManagerFinalizeMemoryCallback,
20 Destroy: LLVMMemoryManagerDestroyCallback,
21 ) -> LLVMOrcObjectLayerRef;
22 pub fn LLVMOrcRTDyldObjectLinkingLayerRegisterJITEventListener(
23 RTDyldObjLinkingLayer: LLVMOrcObjectLayerRef,
24 Listener: LLVMJITEventListenerRef,
25 );
26}