Struct libafl_bolts::shmem::RcShMemProvider
source · pub struct RcShMemProvider<SP>where
SP: ShMemProvider,{ /* private fields */ }
Expand description
A Reference Counted ShMemProvider
,
that can use internal mutability.
Useful if the ShMemProvider
needs to keep local state.
Implementations§
source§impl<SP> RcShMemProvider<ServedShMemProvider<SP>>where
SP: ShMemProvider + Debug,
impl<SP> RcShMemProvider<ServedShMemProvider<SP>>where
SP: ShMemProvider + Debug,
sourcepub fn on_restart(&mut self)
pub fn on_restart(&mut self)
Forward to ServedShMemProvider::on_restart
Trait Implementations§
source§impl<SP> Clone for RcShMemProvider<SP>where
SP: ShMemProvider + Clone,
impl<SP> Clone for RcShMemProvider<SP>where
SP: ShMemProvider + Clone,
source§fn clone(&self) -> RcShMemProvider<SP>
fn clone(&self) -> RcShMemProvider<SP>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<SP> Debug for RcShMemProvider<SP>where
SP: ShMemProvider + Debug,
impl<SP> Debug for RcShMemProvider<SP>where
SP: ShMemProvider + Debug,
source§impl<SP> Default for RcShMemProvider<SP>where
SP: ShMemProvider + Debug,
impl<SP> Default for RcShMemProvider<SP>where
SP: ShMemProvider + Debug,
source§impl<SP> ShMemProvider for RcShMemProvider<SP>where
SP: ShMemProvider + Debug,
impl<SP> ShMemProvider for RcShMemProvider<SP>where
SP: ShMemProvider + Debug,
source§fn pre_fork(&mut self) -> Result<(), Error>
fn pre_fork(&mut self) -> Result<(), Error>
This method should be called before a fork or a thread creation event, allowing the ShMemProvider
to
get ready for a potential reset of thread specific info, and for potential reconnects.
source§fn post_fork(&mut self, is_child: bool) -> Result<(), Error>
fn post_fork(&mut self, is_child: bool) -> Result<(), Error>
After fork, make sure everything gets set up correctly internally.
§type ShMem = RcShMem<SP>
type ShMem = RcShMem<SP>
The actual shared map handed out by this
ShMemProvider
.source§fn new_shmem(&mut self, map_size: usize) -> Result<Self::ShMem, Error>
fn new_shmem(&mut self, map_size: usize) -> Result<Self::ShMem, Error>
Create a new shared memory mapping
source§fn shmem_from_id_and_size(
&mut self,
id: ShMemId,
size: usize
) -> Result<Self::ShMem, Error>
fn shmem_from_id_and_size( &mut self, id: ShMemId, size: usize ) -> Result<Self::ShMem, Error>
Get a mapping given its id and size
source§fn release_shmem(&mut self, map: &mut Self::ShMem)
fn release_shmem(&mut self, map: &mut Self::ShMem)
Release the resources associated with the given
ShMem
source§fn clone_ref(&mut self, mapping: &Self::ShMem) -> Result<Self::ShMem, Error>
fn clone_ref(&mut self, mapping: &Self::ShMem) -> Result<Self::ShMem, Error>
Create a new sharedmap reference from an existing
id
and len
source§fn new_shmem_object<T: Sized + 'static>(&mut self) -> Result<Self::ShMem, Error>
fn new_shmem_object<T: Sized + 'static>(&mut self) -> Result<Self::ShMem, Error>
Create a new shared memory mapping to hold an object of the given type
source§fn new_shmem_objects_array<T: Sized + 'static>(
&mut self,
len: usize
) -> Result<Self::ShMem, Error>
fn new_shmem_objects_array<T: Sized + 'static>( &mut self, len: usize ) -> Result<Self::ShMem, Error>
Create a new shared memory mapping to hold an array of objects of the given type
source§fn shmem_object_from_id<T: Sized + 'static>(
&mut self,
id: ShMemId
) -> Result<Self::ShMem, Error>
fn shmem_object_from_id<T: Sized + 'static>( &mut self, id: ShMemId ) -> Result<Self::ShMem, Error>
Get a mapping given its id to hold an object of the given type
source§fn shmem_from_description(
&mut self,
description: ShMemDescription
) -> Result<Self::ShMem, Error>
fn shmem_from_description( &mut self, description: ShMemDescription ) -> Result<Self::ShMem, Error>
Get a mapping given a description
Auto Trait Implementations§
impl<SP> !RefUnwindSafe for RcShMemProvider<SP>
impl<SP> !Send for RcShMemProvider<SP>
impl<SP> !Sync for RcShMemProvider<SP>
impl<SP> Unpin for RcShMemProvider<SP>
impl<SP> !UnwindSafe for RcShMemProvider<SP>
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<Tail, T> Prepend<T> for Tail
impl<Tail, T> Prepend<T> for Tail
§type PreprendResult = Tail
type PreprendResult = Tail
The Resulting
TupleList
, of an Prepend::prepend()
call,
including the prepended entry.source§fn prepend(self, value: T) -> (T, <Tail as Prepend<T>>::PreprendResult)
fn prepend(self, value: T) -> (T, <Tail as Prepend<T>>::PreprendResult)
Prepend a value to this tuple, returning a new tuple with prepended value.