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: u64This is the top part of the stack (stacks go backwards)
stack_lower: u64This is the bottom part of the stack (anything more below this is a stack overflow)
guard_size: u64Piece 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: u64Total 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