Struct libafl_bolts::llmp::LlmpPage

source ·
#[repr(C)]
pub struct LlmpPage { pub magic: u64, pub sender_id: ClientId, pub receivers_joined_count: AtomicU16, pub receivers_left_count: AtomicU16, pub current_msg_id: AtomicU64, pub size_total: usize, pub size_used: usize, pub max_alloc_size: usize, pub messages: [LlmpMsg; 0], }
Expand description

Contents of the share mem pages, used by llmp internally

Fields§

§magic: u64

to check if this page got initialized properly

§sender_id: ClientId

The id of the sender

§receivers_joined_count: AtomicU16

Set to != 1 by the receiver, once it got mapped. It’s not safe for the sender to unmap this page before (The os may have tidied up the memory when the receiver starts to map)

§receivers_left_count: AtomicU16

Set to != 1 by the receiver, once it left again after joining. It’s not safe for the sender to re-map this page before this is equal to receivers_joined_count

§current_msg_id: AtomicU64

The current message ID

§size_total: usize

How much space is available on this page in bytes

§size_used: usize

How much space is used on this page in bytes

§max_alloc_size: usize

The maximum amount of bytes that ever got allocated on this page in one go. An inidactor of what to use as size for future pages

§messages: [LlmpMsg; 0]

Pointer to the messages, from here on.

Trait Implementations§

source§

impl Debug for LlmpPage

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

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> 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<Tail, T> Prepend<T> for 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)

Prepend a value to this tuple, returning a new tuple with prepended value.
source§

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

§

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>,

§

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> Ungil for T
where T: Send,