Struct WasiMemoryLayout
pub struct WasiMemoryLayout {
pub stack_upper: u64,
pub stack_lower: u64,
pub guard_size: u64,
pub stack_size: u64,
pub tls_base: Option<u64>,
}
Expand description
Represents the memory layout of the parts that the thread itself uses Represents the memory layout of the parts that the thread itself uses
Fields§
§stack_upper: u64
This is the top part of the stack (stacks go backwards)
stack_lower: u64
This is the bottom part of the stack (anything more below this is a stack overflow)
guard_size: u64
Piece of memory that is marked as none readable/writable so stack overflows cause an exception TODO: This field will need to be used to mark the guard memory as inaccessible
stack_size: u64
Total size of the stack
tls_base: Option<u64>
Pointer to the thread’s TLS (Thread Local Storage) memory, only filled in when it’s known. This is mainly used by the dynamic linker; especially so since we can’t even find the TLS area for a non-PIE module that doesn’t export its __tls_base. For DL modules, this is the TLS base of the main module.
Trait Implementations§
§impl Clone for WasiMemoryLayout
impl Clone for WasiMemoryLayout
§fn clone(&self) -> WasiMemoryLayout
fn clone(&self) -> WasiMemoryLayout
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for WasiMemoryLayout
impl Debug for WasiMemoryLayout
§impl Default for WasiMemoryLayout
impl Default for WasiMemoryLayout
§fn default() -> WasiMemoryLayout
fn default() -> WasiMemoryLayout
§impl<'de> Deserialize<'de> for WasiMemoryLayout
impl<'de> Deserialize<'de> for WasiMemoryLayout
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<WasiMemoryLayout, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<WasiMemoryLayout, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl From<&ArchivedJournalWasiMemoryLayout> for WasiMemoryLayout
impl From<&ArchivedJournalWasiMemoryLayout> for WasiMemoryLayout
Source§fn from(value: &ArchivedJournalWasiMemoryLayout) -> WasiMemoryLayout
fn from(value: &ArchivedJournalWasiMemoryLayout) -> WasiMemoryLayout
Source§impl From<JournalWasiMemoryLayout> for WasiMemoryLayout
impl From<JournalWasiMemoryLayout> for WasiMemoryLayout
Source§fn from(value: JournalWasiMemoryLayout) -> WasiMemoryLayout
fn from(value: JournalWasiMemoryLayout) -> WasiMemoryLayout
Source§impl From<WasiMemoryLayout> for JournalWasiMemoryLayout
impl From<WasiMemoryLayout> for JournalWasiMemoryLayout
Source§fn from(value: WasiMemoryLayout) -> JournalWasiMemoryLayout
fn from(value: WasiMemoryLayout) -> JournalWasiMemoryLayout
§impl Hash for WasiMemoryLayout
impl Hash for WasiMemoryLayout
§impl PartialEq for WasiMemoryLayout
impl PartialEq for WasiMemoryLayout
§impl Serialize for WasiMemoryLayout
impl Serialize for WasiMemoryLayout
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl Eq for WasiMemoryLayout
impl StructuralPartialEq for WasiMemoryLayout
Auto Trait Implementations§
impl Freeze for WasiMemoryLayout
impl RefUnwindSafe for WasiMemoryLayout
impl Send for WasiMemoryLayout
impl Sync for WasiMemoryLayout
impl Unpin for WasiMemoryLayout
impl UnwindSafe for WasiMemoryLayout
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
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> ⓘ
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> ⓘ
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