llvm_sys/orc2/
ee.rs

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}