Table of Contents

Class SimpleJitMemoryAllocatorBase

Namespace
Ubiquity.NET.Llvm.OrcJITv2
Assembly
Ubiquity.NET.Llvm.dll

Base class for a simple MCJIT style memory allocator

[Experimental("LLVMEXP005")]
public abstract class SimpleJitMemoryAllocatorBase : DisposableObject, IDisposable, IJitMemoryAllocator
Inheritance
SimpleJitMemoryAllocatorBase
Implements
Inherited Members

Remarks

Derived types need not be concerned with any of the low level native interop. Instead they simply implement the abstract methods to perform the required allocations. This base type handles all of the interop, including the reverse P/Invoke marshaling for callbacks.

Constructors

SimpleJitMemoryAllocatorBase()

Methods

AllocateCodeSection(nuint, uint, uint, LazyEncodedString)

Allocate a block of contiguous memory for use as code execution by the native code JIT engine

AllocateDataSection(nuint, uint, uint, LazyEncodedString, bool)

Allocate a block of contiguous memory for use as data by the native code JIT engine

Dispose(bool)

Abstract method that is implemented by derived types to perform the dispose operation

FinalizeMemory(out LazyEncodedString?)

Finalizes a previous allocation by applying page settings for the allocation

ReleaseContext()

Release the context for the memory. No further callbacks will occur for this allocator