pub struct SyscallAllocFree {}👎Deprecated since 3.1.0: This crate has been marked for formal inclusion in the Agave Unstable API. From v4.0.0 onward, the
agave-unstable-api crate feature must be specified to acknowledge use of an interface that may break without warning.Expand description
Dynamic memory allocation syscall called when the SBF program calls
sol_alloc_free_(). The allocator is expected to allocate/free
from/to a given chunk of memory and enforce size restrictions. The
memory chunk is given to the allocator during allocator creation and
information about that memory (start address and size) is passed
to the VM to use for enforcement.
Implementations§
Source§impl SyscallAllocFree
impl SyscallAllocFree
Sourcepub fn rust(
invoke_context: &mut InvokeContext<'_, '_>,
size: u64,
free_addr: u64,
_arg3: u64,
_arg4: u64,
_arg5: u64,
_memory_mapping: &mut MemoryMapping<'_>,
) -> Result<u64, Box<dyn Error>>
👎Deprecated since 3.1.0: This crate has been marked for formal inclusion in the Agave Unstable API. From v4.0.0 onward, the agave-unstable-api crate feature must be specified to acknowledge use of an interface that may break without warning.
pub fn rust( invoke_context: &mut InvokeContext<'_, '_>, size: u64, free_addr: u64, _arg3: u64, _arg4: u64, _arg5: u64, _memory_mapping: &mut MemoryMapping<'_>, ) -> Result<u64, Box<dyn Error>>
agave-unstable-api crate feature must be specified to acknowledge use of an interface that may break without warning.Rust interface
Sourcepub fn vm(
invoke_context: *mut EbpfVm<'_, InvokeContext<'_, '_>>,
size: u64,
free_addr: u64,
_arg3: u64,
_arg4: u64,
_arg5: u64,
)
👎Deprecated since 3.1.0: This crate has been marked for formal inclusion in the Agave Unstable API. From v4.0.0 onward, the agave-unstable-api crate feature must be specified to acknowledge use of an interface that may break without warning.
pub fn vm( invoke_context: *mut EbpfVm<'_, InvokeContext<'_, '_>>, size: u64, free_addr: u64, _arg3: u64, _arg4: u64, _arg5: u64, )
agave-unstable-api crate feature must be specified to acknowledge use of an interface that may break without warning.VM interface
Auto Trait Implementations§
impl Freeze for SyscallAllocFree
impl RefUnwindSafe for SyscallAllocFree
impl Send for SyscallAllocFree
impl Sync for SyscallAllocFree
impl Unpin for SyscallAllocFree
impl UnwindSafe for SyscallAllocFree
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more