Skip to main content

llvm_sys/orc2/
ee.rs

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}