pub struct FeatureFlags(/* private fields */);
Implementations§
Source§impl FeatureFlags
impl FeatureFlags
Sourcepub const fn guest_specified_signal_parameters(&self) -> bool
pub const fn guest_specified_signal_parameters(&self) -> bool
Feature which allows the guest to specify an event flag and connection ID when opening a channel. If not used, the event flag defaults to the channel ID and the connection ID is specified by the host in the offer channel message.
Bits: 0..1
Sourcepub const fn with_guest_specified_signal_parameters_checked(
self,
value: bool,
) -> Result<Self, ()>
pub const fn with_guest_specified_signal_parameters_checked( self, value: bool, ) -> Result<Self, ()>
Feature which allows the guest to specify an event flag and connection ID when opening a channel. If not used, the event flag defaults to the channel ID and the connection ID is specified by the host in the offer channel message.
Bits: 0..1
Sourcepub const fn with_guest_specified_signal_parameters(self, value: bool) -> Self
pub const fn with_guest_specified_signal_parameters(self, value: bool) -> Self
Feature which allows the guest to specify an event flag and connection ID when opening a channel. If not used, the event flag defaults to the channel ID and the connection ID is specified by the host in the offer channel message.
Bits: 0..1
Sourcepub const fn set_guest_specified_signal_parameters(&mut self, value: bool)
pub const fn set_guest_specified_signal_parameters(&mut self, value: bool)
Feature which allows the guest to specify an event flag and connection ID when opening a channel. If not used, the event flag defaults to the channel ID and the connection ID is specified by the host in the offer channel message.
Bits: 0..1
Sourcepub const fn set_guest_specified_signal_parameters_checked(
&mut self,
value: bool,
) -> Result<(), ()>
pub const fn set_guest_specified_signal_parameters_checked( &mut self, value: bool, ) -> Result<(), ()>
Feature which allows the guest to specify an event flag and connection ID when opening a channel. If not used, the event flag defaults to the channel ID and the connection ID is specified by the host in the offer channel message.
Bits: 0..1
Sourcepub const fn channel_interrupt_redirection(&self) -> bool
pub const fn channel_interrupt_redirection(&self) -> bool
Indicates the REDIRECT_INTERRUPT
flag is supported in the OpenChannel flags.
Bits: 1..2
Sourcepub const fn with_channel_interrupt_redirection_checked(
self,
value: bool,
) -> Result<Self, ()>
pub const fn with_channel_interrupt_redirection_checked( self, value: bool, ) -> Result<Self, ()>
Indicates the REDIRECT_INTERRUPT
flag is supported in the OpenChannel flags.
Bits: 1..2
Sourcepub const fn with_channel_interrupt_redirection(self, value: bool) -> Self
pub const fn with_channel_interrupt_redirection(self, value: bool) -> Self
Indicates the REDIRECT_INTERRUPT
flag is supported in the OpenChannel flags.
Bits: 1..2
Sourcepub const fn set_channel_interrupt_redirection(&mut self, value: bool)
pub const fn set_channel_interrupt_redirection(&mut self, value: bool)
Indicates the REDIRECT_INTERRUPT
flag is supported in the OpenChannel flags.
Bits: 1..2
Sourcepub const fn set_channel_interrupt_redirection_checked(
&mut self,
value: bool,
) -> Result<(), ()>
pub const fn set_channel_interrupt_redirection_checked( &mut self, value: bool, ) -> Result<(), ()>
Indicates the REDIRECT_INTERRUPT
flag is supported in the OpenChannel flags.
Bits: 1..2
Sourcepub const fn modify_connection(&self) -> bool
pub const fn modify_connection(&self) -> bool
Indicates the MODIFY_CONNECTION
and MODIFY_CONNECTION_RESPONSE
messages are supported.
Bits: 2..3
Sourcepub const fn with_modify_connection_checked(
self,
value: bool,
) -> Result<Self, ()>
pub const fn with_modify_connection_checked( self, value: bool, ) -> Result<Self, ()>
Indicates the MODIFY_CONNECTION
and MODIFY_CONNECTION_RESPONSE
messages are supported.
Bits: 2..3
Sourcepub const fn with_modify_connection(self, value: bool) -> Self
pub const fn with_modify_connection(self, value: bool) -> Self
Indicates the MODIFY_CONNECTION
and MODIFY_CONNECTION_RESPONSE
messages are supported.
Bits: 2..3
Sourcepub const fn set_modify_connection(&mut self, value: bool)
pub const fn set_modify_connection(&mut self, value: bool)
Indicates the MODIFY_CONNECTION
and MODIFY_CONNECTION_RESPONSE
messages are supported.
Bits: 2..3
Sourcepub const fn set_modify_connection_checked(
&mut self,
value: bool,
) -> Result<(), ()>
pub const fn set_modify_connection_checked( &mut self, value: bool, ) -> Result<(), ()>
Indicates the MODIFY_CONNECTION
and MODIFY_CONNECTION_RESPONSE
messages are supported.
Bits: 2..3
Sourcepub const fn client_id(&self) -> bool
pub const fn client_id(&self) -> bool
Feature which allows a client (Windows, Linux, MiniVMBus, etc) to specify a well-known GUID to identify itself when initiating contact. If not used, the client ID is zero.
Bits: 3..4
Sourcepub const fn with_client_id_checked(self, value: bool) -> Result<Self, ()>
pub const fn with_client_id_checked(self, value: bool) -> Result<Self, ()>
Feature which allows a client (Windows, Linux, MiniVMBus, etc) to specify a well-known GUID to identify itself when initiating contact. If not used, the client ID is zero.
Bits: 3..4
Sourcepub const fn with_client_id(self, value: bool) -> Self
pub const fn with_client_id(self, value: bool) -> Self
Feature which allows a client (Windows, Linux, MiniVMBus, etc) to specify a well-known GUID to identify itself when initiating contact. If not used, the client ID is zero.
Bits: 3..4
Sourcepub const fn set_client_id(&mut self, value: bool)
pub const fn set_client_id(&mut self, value: bool)
Feature which allows a client (Windows, Linux, MiniVMBus, etc) to specify a well-known GUID to identify itself when initiating contact. If not used, the client ID is zero.
Bits: 3..4
Sourcepub const fn set_client_id_checked(&mut self, value: bool) -> Result<(), ()>
pub const fn set_client_id_checked(&mut self, value: bool) -> Result<(), ()>
Feature which allows a client (Windows, Linux, MiniVMBus, etc) to specify a well-known GUID to identify itself when initiating contact. If not used, the client ID is zero.
Bits: 3..4
Sourcepub const fn confidential_channels(&self) -> bool
pub const fn confidential_channels(&self) -> bool
Indicates the confidential_ring_buffer
and confidential_external_memory
offer flags are
supported.
Bits: 4..5
Sourcepub const fn with_confidential_channels_checked(
self,
value: bool,
) -> Result<Self, ()>
pub const fn with_confidential_channels_checked( self, value: bool, ) -> Result<Self, ()>
Indicates the confidential_ring_buffer
and confidential_external_memory
offer flags are
supported.
Bits: 4..5
Sourcepub const fn with_confidential_channels(self, value: bool) -> Self
pub const fn with_confidential_channels(self, value: bool) -> Self
Indicates the confidential_ring_buffer
and confidential_external_memory
offer flags are
supported.
Bits: 4..5
Sourcepub const fn set_confidential_channels(&mut self, value: bool)
pub const fn set_confidential_channels(&mut self, value: bool)
Indicates the confidential_ring_buffer
and confidential_external_memory
offer flags are
supported.
Bits: 4..5
Sourcepub const fn set_confidential_channels_checked(
&mut self,
value: bool,
) -> Result<(), ()>
pub const fn set_confidential_channels_checked( &mut self, value: bool, ) -> Result<(), ()>
Indicates the confidential_ring_buffer
and confidential_external_memory
offer flags are
supported.
Bits: 4..5
Sourcepub const fn pause_resume(&self) -> bool
pub const fn pause_resume(&self) -> bool
The server supports messages to pause and resume additional control messages.
Bits: 5..6
Sourcepub const fn with_pause_resume_checked(self, value: bool) -> Result<Self, ()>
pub const fn with_pause_resume_checked(self, value: bool) -> Result<Self, ()>
The server supports messages to pause and resume additional control messages.
Bits: 5..6
Sourcepub const fn with_pause_resume(self, value: bool) -> Self
pub const fn with_pause_resume(self, value: bool) -> Self
The server supports messages to pause and resume additional control messages.
Bits: 5..6
Sourcepub const fn set_pause_resume(&mut self, value: bool)
pub const fn set_pause_resume(&mut self, value: bool)
The server supports messages to pause and resume additional control messages.
Bits: 5..6
Sourcepub const fn set_pause_resume_checked(&mut self, value: bool) -> Result<(), ()>
pub const fn set_pause_resume_checked(&mut self, value: bool) -> Result<(), ()>
The server supports messages to pause and resume additional control messages.
Bits: 5..6
Sourcepub const fn server_specified_monitor_pages(&self) -> bool
pub const fn server_specified_monitor_pages(&self) -> bool
The guest supports having the server (host or paravisor) provide monitor page GPAs.
If this flag is present in the InitiateContact
message, the guest may still provide its
own monitor pages, which the server may ignore if it supports the flag. The server will
only set this flag in the VersionResponse
message if it is actually providing monitor
pages, which the guest must then use instead of its own.
If the server sets the flag in the VersionResponse
message, it must provide a non-zero
value for the VersionResponse3::child_to_parent_monitor_page_gpa
; the
VersionResponse3::parent_to_child_monitor_page_gpa
is optional and may be zero, in which
case the guest cannot cancel MNF interrupts from the host.
Bits: 6..7
Sourcepub const fn with_server_specified_monitor_pages_checked(
self,
value: bool,
) -> Result<Self, ()>
pub const fn with_server_specified_monitor_pages_checked( self, value: bool, ) -> Result<Self, ()>
The guest supports having the server (host or paravisor) provide monitor page GPAs.
If this flag is present in the InitiateContact
message, the guest may still provide its
own monitor pages, which the server may ignore if it supports the flag. The server will
only set this flag in the VersionResponse
message if it is actually providing monitor
pages, which the guest must then use instead of its own.
If the server sets the flag in the VersionResponse
message, it must provide a non-zero
value for the VersionResponse3::child_to_parent_monitor_page_gpa
; the
VersionResponse3::parent_to_child_monitor_page_gpa
is optional and may be zero, in which
case the guest cannot cancel MNF interrupts from the host.
Bits: 6..7
Sourcepub const fn with_server_specified_monitor_pages(self, value: bool) -> Self
pub const fn with_server_specified_monitor_pages(self, value: bool) -> Self
The guest supports having the server (host or paravisor) provide monitor page GPAs.
If this flag is present in the InitiateContact
message, the guest may still provide its
own monitor pages, which the server may ignore if it supports the flag. The server will
only set this flag in the VersionResponse
message if it is actually providing monitor
pages, which the guest must then use instead of its own.
If the server sets the flag in the VersionResponse
message, it must provide a non-zero
value for the VersionResponse3::child_to_parent_monitor_page_gpa
; the
VersionResponse3::parent_to_child_monitor_page_gpa
is optional and may be zero, in which
case the guest cannot cancel MNF interrupts from the host.
Bits: 6..7
Sourcepub const fn set_server_specified_monitor_pages(&mut self, value: bool)
pub const fn set_server_specified_monitor_pages(&mut self, value: bool)
The guest supports having the server (host or paravisor) provide monitor page GPAs.
If this flag is present in the InitiateContact
message, the guest may still provide its
own monitor pages, which the server may ignore if it supports the flag. The server will
only set this flag in the VersionResponse
message if it is actually providing monitor
pages, which the guest must then use instead of its own.
If the server sets the flag in the VersionResponse
message, it must provide a non-zero
value for the VersionResponse3::child_to_parent_monitor_page_gpa
; the
VersionResponse3::parent_to_child_monitor_page_gpa
is optional and may be zero, in which
case the guest cannot cancel MNF interrupts from the host.
Bits: 6..7
Sourcepub const fn set_server_specified_monitor_pages_checked(
&mut self,
value: bool,
) -> Result<(), ()>
pub const fn set_server_specified_monitor_pages_checked( &mut self, value: bool, ) -> Result<(), ()>
The guest supports having the server (host or paravisor) provide monitor page GPAs.
If this flag is present in the InitiateContact
message, the guest may still provide its
own monitor pages, which the server may ignore if it supports the flag. The server will
only set this flag in the VersionResponse
message if it is actually providing monitor
pages, which the guest must then use instead of its own.
If the server sets the flag in the VersionResponse
message, it must provide a non-zero
value for the VersionResponse3::child_to_parent_monitor_page_gpa
; the
VersionResponse3::parent_to_child_monitor_page_gpa
is optional and may be zero, in which
case the guest cannot cancel MNF interrupts from the host.
Bits: 6..7
Source§impl FeatureFlags
impl FeatureFlags
Sourcepub fn contains(&self, other: FeatureFlags) -> bool
pub fn contains(&self, other: FeatureFlags) -> bool
Returns true if other
contains only flags that are also set in self
.
Trait Implementations§
Source§impl BitAnd for FeatureFlags
impl BitAnd for FeatureFlags
Source§impl BitAndAssign for FeatureFlags
impl BitAndAssign for FeatureFlags
Source§fn bitand_assign(&mut self, rhs: Self)
fn bitand_assign(&mut self, rhs: Self)
&=
operation. Read moreSource§impl BitOr for FeatureFlags
impl BitOr for FeatureFlags
Source§impl Clone for FeatureFlags
impl Clone for FeatureFlags
Source§fn clone(&self) -> FeatureFlags
fn clone(&self) -> FeatureFlags
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for FeatureFlags
impl Debug for FeatureFlags
Source§impl Default for FeatureFlags
impl Default for FeatureFlags
Source§impl From<FeatureFlags> for u32
impl From<FeatureFlags> for u32
Source§fn from(v: FeatureFlags) -> u32
fn from(v: FeatureFlags) -> u32
Source§impl From<u32> for FeatureFlags
impl From<u32> for FeatureFlags
Source§impl FromBytes for FeatureFlagswhere
u32: FromBytes,
impl FromBytes for FeatureFlagswhere
u32: FromBytes,
§fn ref_from_bytes(
source: &[u8],
) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, Infallible>>where
Self: KnownLayout + Immutable,
fn ref_from_bytes(
source: &[u8],
) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, Infallible>>where
Self: KnownLayout + Immutable,
§fn ref_from_prefix(
source: &[u8],
) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, Infallible>>where
Self: KnownLayout + Immutable,
fn ref_from_prefix(
source: &[u8],
) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, Infallible>>where
Self: KnownLayout + Immutable,
§fn ref_from_suffix(
source: &[u8],
) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, Infallible>>where
Self: Immutable + KnownLayout,
fn ref_from_suffix(
source: &[u8],
) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, Infallible>>where
Self: Immutable + KnownLayout,
&Self
. Read more§fn mut_from_bytes(
source: &mut [u8],
) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, Infallible>>where
Self: IntoBytes + KnownLayout,
fn mut_from_bytes(
source: &mut [u8],
) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, Infallible>>where
Self: IntoBytes + KnownLayout,
§fn mut_from_prefix(
source: &mut [u8],
) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, Infallible>>where
Self: IntoBytes + KnownLayout,
fn mut_from_prefix(
source: &mut [u8],
) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, Infallible>>where
Self: IntoBytes + KnownLayout,
§fn mut_from_suffix(
source: &mut [u8],
) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, Infallible>>where
Self: IntoBytes + KnownLayout,
fn mut_from_suffix(
source: &mut [u8],
) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, Infallible>>where
Self: IntoBytes + KnownLayout,
Source§impl FromZeros for FeatureFlagswhere
u32: FromZeros,
impl FromZeros for FeatureFlagswhere
u32: FromZeros,
§fn new_zeroed() -> Selfwhere
Self: Sized,
fn new_zeroed() -> Selfwhere
Self: Sized,
Self
from zeroed bytes. Read more§fn new_box_zeroed() -> Result<Box<Self>, AllocError>where
Self: Sized,
fn new_box_zeroed() -> Result<Box<Self>, AllocError>where
Self: Sized,
Box<Self>
from zeroed bytes. Read more§fn new_vec_zeroed(len: usize) -> Result<Vec<Self>, AllocError>where
Self: Sized,
fn new_vec_zeroed(len: usize) -> Result<Vec<Self>, AllocError>where
Self: Sized,
Vec<Self>
from zeroed bytes. Read moreSource§impl IntoBytes for FeatureFlagswhere
u32: IntoBytes,
impl IntoBytes for FeatureFlagswhere
u32: IntoBytes,
§fn as_mut_bytes(&mut self) -> &mut [u8] ⓘwhere
Self: FromBytes,
fn as_mut_bytes(&mut self) -> &mut [u8] ⓘwhere
Self: FromBytes,
§fn write_to(&self, dst: &mut [u8]) -> Result<(), SizeError<&Self, &mut [u8]>>where
Self: Immutable,
fn write_to(&self, dst: &mut [u8]) -> Result<(), SizeError<&Self, &mut [u8]>>where
Self: Immutable,
Source§impl KnownLayout for FeatureFlagswhere
Self: Sized,
impl KnownLayout for FeatureFlagswhere
Self: Sized,
Source§type PointerMetadata = ()
type PointerMetadata = ()
Self
. Read more