pub struct TranslateGvaControlFlagsX64(/* private fields */);
Implementations§
Source§impl TranslateGvaControlFlagsX64
impl TranslateGvaControlFlagsX64
Sourcepub const fn validate_read(&self) -> bool
pub const fn validate_read(&self) -> bool
Request data read access
Bits: 0..1
Sourcepub const fn with_validate_read(self, value: bool) -> Self
pub const fn with_validate_read(self, value: bool) -> Self
Request data read access
Bits: 0..1
Sourcepub fn set_validate_read(&mut self, value: bool)
pub fn set_validate_read(&mut self, value: bool)
Request data read access
Bits: 0..1
Sourcepub const fn validate_write(&self) -> bool
pub const fn validate_write(&self) -> bool
Request data write access
Bits: 1..2
Sourcepub const fn with_validate_write(self, value: bool) -> Self
pub const fn with_validate_write(self, value: bool) -> Self
Request data write access
Bits: 1..2
Sourcepub fn set_validate_write(&mut self, value: bool)
pub fn set_validate_write(&mut self, value: bool)
Request data write access
Bits: 1..2
Sourcepub const fn validate_execute(&self) -> bool
pub const fn validate_execute(&self) -> bool
Request instruction fetch access.
Bits: 2..3
Sourcepub const fn with_validate_execute(self, value: bool) -> Self
pub const fn with_validate_execute(self, value: bool) -> Self
Request instruction fetch access.
Bits: 2..3
Sourcepub fn set_validate_execute(&mut self, value: bool)
pub fn set_validate_execute(&mut self, value: bool)
Request instruction fetch access.
Bits: 2..3
Sourcepub const fn privilege_exempt(&self) -> bool
pub const fn privilege_exempt(&self) -> bool
Don’t enforce any checks related to access mode (supervisor vs. user; SMEP and SMAP are treated as disabled).
Bits: 3..4
Sourcepub const fn with_privilege_exempt(self, value: bool) -> Self
pub const fn with_privilege_exempt(self, value: bool) -> Self
Don’t enforce any checks related to access mode (supervisor vs. user; SMEP and SMAP are treated as disabled).
Bits: 3..4
Sourcepub fn set_privilege_exempt(&mut self, value: bool)
pub fn set_privilege_exempt(&mut self, value: bool)
Don’t enforce any checks related to access mode (supervisor vs. user; SMEP and SMAP are treated as disabled).
Bits: 3..4
Sourcepub const fn set_page_table_bits(&self) -> bool
pub const fn set_page_table_bits(&self) -> bool
Set the appropriate page table bits (i.e. access/dirty bit)
Bits: 4..5
Sourcepub const fn with_set_page_table_bits(self, value: bool) -> Self
pub const fn with_set_page_table_bits(self, value: bool) -> Self
Set the appropriate page table bits (i.e. access/dirty bit)
Bits: 4..5
Sourcepub fn set_set_page_table_bits(&mut self, value: bool)
pub fn set_set_page_table_bits(&mut self, value: bool)
Set the appropriate page table bits (i.e. access/dirty bit)
Bits: 4..5
Sourcepub const fn tlb_flush_inhibit(&self) -> bool
pub const fn tlb_flush_inhibit(&self) -> bool
Lock the TLB
Bits: 5..6
Sourcepub const fn with_tlb_flush_inhibit(self, value: bool) -> Self
pub const fn with_tlb_flush_inhibit(self, value: bool) -> Self
Lock the TLB
Bits: 5..6
Sourcepub fn set_tlb_flush_inhibit(&mut self, value: bool)
pub fn set_tlb_flush_inhibit(&mut self, value: bool)
Lock the TLB
Bits: 5..6
Sourcepub const fn supervisor_access(&self) -> bool
pub const fn supervisor_access(&self) -> bool
Treat the access as a supervisor mode access irrespective of current mode.
Bits: 6..7
Sourcepub const fn with_supervisor_access(self, value: bool) -> Self
pub const fn with_supervisor_access(self, value: bool) -> Self
Treat the access as a supervisor mode access irrespective of current mode.
Bits: 6..7
Sourcepub fn set_supervisor_access(&mut self, value: bool)
pub fn set_supervisor_access(&mut self, value: bool)
Treat the access as a supervisor mode access irrespective of current mode.
Bits: 6..7
Sourcepub const fn user_access(&self) -> bool
pub const fn user_access(&self) -> bool
Treat the access as a user mode access irrespective of current mode.
Bits: 7..8
Sourcepub const fn with_user_access(self, value: bool) -> Self
pub const fn with_user_access(self, value: bool) -> Self
Treat the access as a user mode access irrespective of current mode.
Bits: 7..8
Sourcepub fn set_user_access(&mut self, value: bool)
pub fn set_user_access(&mut self, value: bool)
Treat the access as a user mode access irrespective of current mode.
Bits: 7..8
Sourcepub const fn enforce_smap(&self) -> bool
pub const fn enforce_smap(&self) -> bool
Enforce the SMAP restriction on supervisor data access to user mode addresses if CR4.SMAP=1 irrespective of current EFLAGS.AC i.e. the behavior for “implicit supervisor-mode accesses” (e.g. to the GDT, etc.) and when EFLAGS.AC=0. Does nothing if CR4.SMAP=0.
Bits: 8..9
Sourcepub const fn with_enforce_smap(self, value: bool) -> Self
pub const fn with_enforce_smap(self, value: bool) -> Self
Enforce the SMAP restriction on supervisor data access to user mode addresses if CR4.SMAP=1 irrespective of current EFLAGS.AC i.e. the behavior for “implicit supervisor-mode accesses” (e.g. to the GDT, etc.) and when EFLAGS.AC=0. Does nothing if CR4.SMAP=0.
Bits: 8..9
Sourcepub fn set_enforce_smap(&mut self, value: bool)
pub fn set_enforce_smap(&mut self, value: bool)
Enforce the SMAP restriction on supervisor data access to user mode addresses if CR4.SMAP=1 irrespective of current EFLAGS.AC i.e. the behavior for “implicit supervisor-mode accesses” (e.g. to the GDT, etc.) and when EFLAGS.AC=0. Does nothing if CR4.SMAP=0.
Bits: 8..9
Sourcepub const fn override_smap(&self) -> bool
pub const fn override_smap(&self) -> bool
Don’t enforce the SMAP restriction on supervisor data access to user mode addresses irrespective of current EFLAGS.AC i.e. the behavior when EFLAGS.AC=1.
Bits: 9..10
Sourcepub const fn with_override_smap(self, value: bool) -> Self
pub const fn with_override_smap(self, value: bool) -> Self
Don’t enforce the SMAP restriction on supervisor data access to user mode addresses irrespective of current EFLAGS.AC i.e. the behavior when EFLAGS.AC=1.
Bits: 9..10
Sourcepub fn set_override_smap(&mut self, value: bool)
pub fn set_override_smap(&mut self, value: bool)
Don’t enforce the SMAP restriction on supervisor data access to user mode addresses irrespective of current EFLAGS.AC i.e. the behavior when EFLAGS.AC=1.
Bits: 9..10
Sourcepub const fn shadow_stack(&self) -> bool
pub const fn shadow_stack(&self) -> bool
Treat the access as a shadow stack access.
Bits: 10..11
Sourcepub const fn with_shadow_stack(self, value: bool) -> Self
pub const fn with_shadow_stack(self, value: bool) -> Self
Treat the access as a shadow stack access.
Bits: 10..11
Sourcepub fn set_shadow_stack(&mut self, value: bool)
pub fn set_shadow_stack(&mut self, value: bool)
Treat the access as a shadow stack access.
Bits: 10..11
Source§impl TranslateGvaControlFlagsX64
impl TranslateGvaControlFlagsX64
pub fn input_vtl(&self) -> HvInputVtl
pub fn with_input_vtl(self, input_vtl: HvInputVtl) -> Self
pub fn set_input_vtl(&mut self, input_vtl: HvInputVtl)
Trait Implementations§
Source§impl Clone for TranslateGvaControlFlagsX64
impl Clone for TranslateGvaControlFlagsX64
Source§fn clone(&self) -> TranslateGvaControlFlagsX64
fn clone(&self) -> TranslateGvaControlFlagsX64
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for TranslateGvaControlFlagsX64
impl Debug for TranslateGvaControlFlagsX64
Source§impl From<TranslateGvaControlFlagsX64> for u64
impl From<TranslateGvaControlFlagsX64> for u64
Source§fn from(v: TranslateGvaControlFlagsX64) -> u64
fn from(v: TranslateGvaControlFlagsX64) -> u64
Source§impl From<u64> for TranslateGvaControlFlagsX64
impl From<u64> for TranslateGvaControlFlagsX64
Source§impl FromBytes for TranslateGvaControlFlagsX64where
u64: FromBytes,
impl FromBytes for TranslateGvaControlFlagsX64where
u64: 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 TranslateGvaControlFlagsX64where
u64: FromZeros,
impl FromZeros for TranslateGvaControlFlagsX64where
u64: 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 TranslateGvaControlFlagsX64where
u64: IntoBytes,
impl IntoBytes for TranslateGvaControlFlagsX64where
u64: 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 TranslateGvaControlFlagsX64where
Self: Sized,
impl KnownLayout for TranslateGvaControlFlagsX64where
Self: Sized,
Source§type PointerMetadata = ()
type PointerMetadata = ()
Self
. Read more