Skip to main content

llvm_sys/orc2/
ee.rs

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}