Struct MemoryVtlType

Source
#[repr(transparent)]
pub struct MemoryVtlType(pub u32);
Expand description

The memory type reported from the bootshim to usermode, for which VTL a given memory range is for.

Tuple Fields§

§0: u32

Implementations§

Source§

impl MemoryVtlType

Source

pub const VTL0: MemoryVtlType

This memory is for VTL0.

Source

pub const VTL2_RAM: MemoryVtlType

This memory is used by VTL2 as regular ram.

Source

pub const VTL2_CONFIG: MemoryVtlType

This memory holds VTL2 config data, which is marked as reserved to the kernel.

Source

pub const VTL2_SIDECAR_IMAGE: MemoryVtlType

This memory is used by the VTL2 sidecar as it’s image, and is marked as reserved to the kernel.

Source

pub const VTL2_SIDECAR_NODE: MemoryVtlType

This memory is used by the VTL2 sidecar as node memory, and is marked as reserved to the kernel.

Source

pub const VTL0_MMIO: MemoryVtlType

This range is mmio for VTL0.

Source

pub const VTL2_MMIO: MemoryVtlType

This range is mmio for VTL2.

Source

pub const VTL2_RESERVED: MemoryVtlType

This memory holds VTL2 data which should be preserved by the kernel and usermode. Today, this is only used for SNP: VMSA, CPUID pages, and secrets pages.

Source

pub const VTL2_GPA_POOL: MemoryVtlType

This memory is used by VTL2 usermode as a persisted GPA page pool. This memory is part of VTL2’s address space, not VTL0’s. It is marked as reserved to the kernel.

Source

pub const VTL2_TDX_PAGE_TABLES: MemoryVtlType

This memory is used by VTL2 for TDX AP startup page tables, and is marked as reserved to the kernel.

Source

pub const VTL2_BOOTSHIM_LOG_BUFFER: MemoryVtlType

This memory is used by VTL2 to store in-memory bootshim logs. It is marked as reserved to the kernel.

Source

pub const VTL2_PERSISTED_STATE_HEADER: MemoryVtlType

This memory is used by VTL2 to store a persisted state header. This memory is marked as reserved to the kernel.

Source

pub const VTL2_PERSISTED_STATE_PROTOBUF: MemoryVtlType

This memory is used by VTL2 to store the persisted protobuf payload. This memory is marked as reserved to the kernel.

Source§

impl MemoryVtlType

Source

pub fn ram(&self) -> bool

Returns true if this range is a ram type.

Source

pub fn vtl2(&self) -> bool

Returns true if this range is used by VTL2.

Trait Implementations§

Source§

impl Clone for MemoryVtlType

Source§

fn clone(&self) -> MemoryVtlType

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MemoryVtlType

Source§

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

Formats the value using the given formatter. Read more
Source§

impl DefaultEncoding for MemoryVtlType

Source§

type Encoding = TableEncoder

The encoding to use for the serialization. Read more
Source§

impl DescribeTable for MemoryVtlType

Source§

const DESCRIPTION: MessageDescription<'static>

The protobuf message description for this type.
Source§

impl Hash for MemoryVtlType

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for MemoryVtlType

Source§

fn cmp(&self, other: &MemoryVtlType) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for MemoryVtlType

Source§

fn eq(&self, other: &MemoryVtlType) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for MemoryVtlType

Source§

fn partial_cmp(&self, other: &MemoryVtlType) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<'encoding, AnyR: 'static> StructDecodeMetadata<'encoding, AnyR> for MemoryVtlType

Source§

const DECODERS: &'static [ErasedDecoderEntry]

The list of decoder vtables.
Source§

impl<AnyR: 'static> StructEncodeMetadata<AnyR> for MemoryVtlType

Source§

const ENCODERS: &'static [ErasedEncoderEntry]

The list of encoder vtables.
Source§

impl StructMetadata for MemoryVtlType

Source§

const NUMBERS: &'static [u32]

The field numbers for each field.
Source§

const OFFSETS: &'static [usize]

The byte offset to each field within the struct.
Source§

impl Copy for MemoryVtlType

Source§

impl Eq for MemoryVtlType

Source§

impl StructuralPartialEq for MemoryVtlType

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> DescribedProtobuf for T
where T: DefaultEncoding + Protobuf, <T as DefaultEncoding>::Encoding: DescribeMessage<T>,

§

const DESCRIPTION: MessageDescription<'static>

The message description.
§

const TYPE_URL: TypeUrl<'static> = _

The type URL for this message.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.

§

impl<T> MeshField for T
where T: DefaultEncoding, <T as DefaultEncoding>::Encoding: FieldEncode<T, Resource> + for<'a> FieldDecode<'a, T, Resource> + Send + Sync,

§

type Encoding = <T as DefaultEncoding>::Encoding

§

impl<T> MeshPayload for T
where T: DefaultEncoding + Any + Send + 'static, <T as DefaultEncoding>::Encoding: MessageEncode<T, Resource> + for<'a> MessageDecode<'a, T, Resource> + FieldEncode<T, Resource> + for<'a> FieldDecode<'a, T, Resource> + Send + Sync,

§

type Encoding = <T as DefaultEncoding>::Encoding

§

impl<T> Protobuf for T
where T: DefaultEncoding, <T as DefaultEncoding>::Encoding: MessageEncode<T, NoResources> + for<'a> MessageDecode<'a, T, NoResources> + FieldEncode<T, NoResources> + for<'a> FieldDecode<'a, T, NoResources>,

§

type Encoding = <T as DefaultEncoding>::Encoding

The default encoding for Self.
§

impl<T> SerializeMessage for T
where T: 'static + MeshPayload + Send,

§

type Concrete = T

The underlying concrete message type.
§

fn compute_message_size(&mut self, sizer: MessageSizer<'_>)

Computes the message size, as in [MessageEncode::compute_message_size].
§

fn write_message(self, writer: MessageWriter<'_, '_, Resource>)

Writes the message, as in [MessageEncode::write_message].
§

fn extract(self) -> <T as SerializeMessage>::Concrete

Extract the concrete message.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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

Source§

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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more