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