1use super::*;
2use crate::execution_engine::*;
3
4pub type LLVMMemoryManagerCreateContextCallback = extern "C" fn(CtxCtx: *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 CreateContext: LLVMMemoryManagerCreateContextCallback,
14 NotifyTerminating: LLVMMemoryManagerNotifyTerminatingCallback,
15 AllocateCodeSection: LLVMMemoryManagerAllocateCodeSectionCallback,
16 AllocateDataSection: LLVMMemoryManagerAllocateDataSectionCallback,
17 FinalizeMemory: LLVMMemoryManagerFinalizeMemoryCallback,
18 Destroy: LLVMMemoryManagerDestroyCallback,
19 ) -> LLVMOrcObjectLayerRef;
20 pub fn LLVMOrcRTDyldObjectLinkingLayerRegisterJITEventListener(
21 RTDyldObjLinkingLayer: LLVMOrcObjectLayerRef,
22 Listener: LLVMJITEventListenerRef,
23 );
24}