Struct GlobalJitAlloc

Source
pub struct GlobalJitAlloc;
Available on crate feature global_jit_alloc only.
Expand description

The default, global JIT allocator.

When the default_jit_alloc feature is enabled, this is currently implemented as a ZST deffering to a static jit_allocator2::JitAllocator behind a std::sync::Mutex (or a spin::Mutex under no_std).

When the default_jit_alloc feature is not enabled, defers to a JitAlloc implementation provided by a downstream crate using the global_jit_alloc macro.

Trait Implementations§

Source§

impl Clone for GlobalJitAlloc

Source§

fn clone(&self) -> GlobalJitAlloc

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Default for GlobalJitAlloc

Source§

fn default() -> GlobalJitAlloc

Returns the “default value” for a type. Read more
Source§

impl JitAlloc for GlobalJitAlloc

Source§

fn alloc(&self, size: usize) -> Result<(*const u8, *mut u8), JitAllocError>

Allocates size bytes in the executable memory region. Returns two pointers. One points to Read-Execute mapping and another to Read-Write mapping. All code writes must go to the Read-Write mapping.
Source§

unsafe fn release(&self, rx_ptr: *const u8) -> Result<(), JitAllocError>

Releases the memory allocated by alloc. Read more
Source§

unsafe fn flush_instruction_cache(&self, rx_ptr: *const u8, size: usize)

Flushes the instruction cache for (at least) the given slice of executable memory. Should be called after the JIT memory is ready to be executed. Read more
Source§

unsafe fn protect_jit_memory( &self, _ptr: *const u8, _size: usize, access: ProtectJitAccess, )

On hardened architectures with MAP_JIT-like memory flags, set the access for the current thread. Read more
Source§

impl Copy for GlobalJitAlloc

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<'a, T> ToBoxedDyn<dyn Any + 'a> for T
where T: 'a,

Source§

fn to_boxed_unsize(value: T) -> Box<dyn Any + 'a>

Constructs a Box<T> from Self, coercing into the unsized type.
Source§

impl<'a, T> ToBoxedDyn<dyn Send + 'a> for T
where T: Send + 'a,

Source§

fn to_boxed_unsize(value: T) -> Box<dyn Send + 'a>

Constructs a Box<T> from Self, coercing into the unsized type.
Source§

impl<'a, T> ToBoxedDyn<dyn Sync + Send + 'a> for T
where T: Send + Sync + 'a,

Source§

fn to_boxed_unsize(value: T) -> Box<dyn Sync + Send + 'a>

Constructs a Box<T> from Self, coercing into the unsized type.
Source§

impl<'a, T> ToBoxedDyn<dyn Sync + 'a> for T
where T: Sync + 'a,

Source§

fn to_boxed_unsize(value: T) -> Box<dyn Sync + 'a>

Constructs a Box<T> from Self, coercing into the unsized type.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Any for T
where T: ?Sized,