#[non_exhaustive]pub struct ArenaPage {
pub user_addr: u64,
pub bytes: Vec<u8>,
}Expand description
One mapped arena page captured from guest memory.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.user_addr: u64User-side virtual address (32-bit window starting at
arena.user_vm_start). Operators correlate this with the
pointer values they see in BPF program output.
bytes: Vec<u8>One arena page’s worth of bytes read from the guest. Length
matches the guest kernel’s MMU page size: 4 KiB on x86_64
and on aarch64 with TCR_EL1.TG1=0b10; 16 KiB on aarch64
16 KiB-granule kernels (Apple Silicon style); 64 KiB on
aarch64 64 KiB-granule kernels. The resolution lives in
guest_page_size — the snapshot stamps every captured
page at that size.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for ArenaPage
impl<'de> Deserialize<'de> for ArenaPage
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ArenaPage
impl RefUnwindSafe for ArenaPage
impl Send for ArenaPage
impl Sync for ArenaPage
impl Unpin for ArenaPage
impl UnwindSafe for ArenaPage
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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>
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