pub struct IrteLo(/* private fields */);Expand description
IRTE — low 64 bits.
Contains the interrupt remapping control fields:
- P (present), FPD, DM, RH, TM, DLM, IM, Vector, DST
Implementations§
Source§impl IrteLo
impl IrteLo
Sourcepub const fn with_p_checked(self, value: bool) -> Result<Self, ()>
pub const fn with_p_checked(self, value: bool) -> Result<Self, ()>
Present — 1 = this IRTE is valid.
Bits: 0..1
Sourcepub const fn set_p_checked(&mut self, value: bool) -> Result<(), ()>
pub const fn set_p_checked(&mut self, value: bool) -> Result<(), ()>
Present — 1 = this IRTE is valid.
Bits: 0..1
Sourcepub const fn fpd(&self) -> bool
pub const fn fpd(&self) -> bool
Fault Processing Disable — 1 = suppress fault recording for this entry.
Bits: 1..2
Sourcepub const fn with_fpd_checked(self, value: bool) -> Result<Self, ()>
pub const fn with_fpd_checked(self, value: bool) -> Result<Self, ()>
Fault Processing Disable — 1 = suppress fault recording for this entry.
Bits: 1..2
Sourcepub const fn with_fpd(self, value: bool) -> Self
pub const fn with_fpd(self, value: bool) -> Self
Fault Processing Disable — 1 = suppress fault recording for this entry.
Bits: 1..2
Sourcepub const fn set_fpd(&mut self, value: bool)
pub const fn set_fpd(&mut self, value: bool)
Fault Processing Disable — 1 = suppress fault recording for this entry.
Bits: 1..2
Sourcepub const fn set_fpd_checked(&mut self, value: bool) -> Result<(), ()>
pub const fn set_fpd_checked(&mut self, value: bool) -> Result<(), ()>
Fault Processing Disable — 1 = suppress fault recording for this entry.
Bits: 1..2
Sourcepub const fn with_dm_checked(self, value: bool) -> Result<Self, ()>
pub const fn with_dm_checked(self, value: bool) -> Result<Self, ()>
Destination Mode — 0 = physical, 1 = logical.
Bits: 2..3
Sourcepub const fn with_dm(self, value: bool) -> Self
pub const fn with_dm(self, value: bool) -> Self
Destination Mode — 0 = physical, 1 = logical.
Bits: 2..3
Sourcepub const fn set_dm(&mut self, value: bool)
pub const fn set_dm(&mut self, value: bool)
Destination Mode — 0 = physical, 1 = logical.
Bits: 2..3
Sourcepub const fn set_dm_checked(&mut self, value: bool) -> Result<(), ()>
pub const fn set_dm_checked(&mut self, value: bool) -> Result<(), ()>
Destination Mode — 0 = physical, 1 = logical.
Bits: 2..3
Sourcepub const fn rh(&self) -> bool
pub const fn rh(&self) -> bool
Redirection Hint — 0 = directed to single destination, 1 = may be redirected (for lowest priority delivery).
Bits: 3..4
Sourcepub const fn with_rh_checked(self, value: bool) -> Result<Self, ()>
pub const fn with_rh_checked(self, value: bool) -> Result<Self, ()>
Redirection Hint — 0 = directed to single destination, 1 = may be redirected (for lowest priority delivery).
Bits: 3..4
Sourcepub const fn with_rh(self, value: bool) -> Self
pub const fn with_rh(self, value: bool) -> Self
Redirection Hint — 0 = directed to single destination, 1 = may be redirected (for lowest priority delivery).
Bits: 3..4
Sourcepub const fn set_rh(&mut self, value: bool)
pub const fn set_rh(&mut self, value: bool)
Redirection Hint — 0 = directed to single destination, 1 = may be redirected (for lowest priority delivery).
Bits: 3..4
Sourcepub const fn set_rh_checked(&mut self, value: bool) -> Result<(), ()>
pub const fn set_rh_checked(&mut self, value: bool) -> Result<(), ()>
Redirection Hint — 0 = directed to single destination, 1 = may be redirected (for lowest priority delivery).
Bits: 3..4
Sourcepub const fn with_tm_checked(self, value: bool) -> Result<Self, ()>
pub const fn with_tm_checked(self, value: bool) -> Result<Self, ()>
Trigger Mode — 0 = edge, 1 = level.
Bits: 4..5
Sourcepub const fn set_tm_checked(&mut self, value: bool) -> Result<(), ()>
pub const fn set_tm_checked(&mut self, value: bool) -> Result<(), ()>
Trigger Mode — 0 = edge, 1 = level.
Bits: 4..5
Sourcepub const fn with_dlm_checked(self, value: u8) -> Result<Self, ()>
pub const fn with_dlm_checked(self, value: u8) -> Result<Self, ()>
Delivery Mode (3 bits).
Bits: 5..8
Sourcepub const fn set_dlm_checked(&mut self, value: u8) -> Result<(), ()>
pub const fn set_dlm_checked(&mut self, value: u8) -> Result<(), ()>
Delivery Mode (3 bits).
Bits: 5..8
Sourcepub const fn with_avail_checked(self, value: u8) -> Result<Self, ()>
pub const fn with_avail_checked(self, value: u8) -> Result<Self, ()>
Available for software use (4 bits).
Bits: 8..12
Sourcepub const fn with_avail(self, value: u8) -> Self
pub const fn with_avail(self, value: u8) -> Self
Available for software use (4 bits).
Bits: 8..12
Sourcepub const fn set_avail_checked(&mut self, value: u8) -> Result<(), ()>
pub const fn set_avail_checked(&mut self, value: u8) -> Result<(), ()>
Available for software use (4 bits).
Bits: 8..12
Sourcepub const fn im(&self) -> bool
pub const fn im(&self) -> bool
IRTE Mode — 0 = remapped interrupt, 1 = posted interrupt (not supported).
Bits: 15..16
Sourcepub const fn with_im_checked(self, value: bool) -> Result<Self, ()>
pub const fn with_im_checked(self, value: bool) -> Result<Self, ()>
IRTE Mode — 0 = remapped interrupt, 1 = posted interrupt (not supported).
Bits: 15..16
Sourcepub const fn with_im(self, value: bool) -> Self
pub const fn with_im(self, value: bool) -> Self
IRTE Mode — 0 = remapped interrupt, 1 = posted interrupt (not supported).
Bits: 15..16
Sourcepub const fn set_im(&mut self, value: bool)
pub const fn set_im(&mut self, value: bool)
IRTE Mode — 0 = remapped interrupt, 1 = posted interrupt (not supported).
Bits: 15..16
Sourcepub const fn set_im_checked(&mut self, value: bool) -> Result<(), ()>
pub const fn set_im_checked(&mut self, value: bool) -> Result<(), ()>
IRTE Mode — 0 = remapped interrupt, 1 = posted interrupt (not supported).
Bits: 15..16
Sourcepub const fn with_vector_checked(self, value: u8) -> Result<Self, ()>
pub const fn with_vector_checked(self, value: u8) -> Result<Self, ()>
Interrupt Vector (8 bits).
Bits: 16..24
Sourcepub const fn with_vector(self, value: u8) -> Self
pub const fn with_vector(self, value: u8) -> Self
Interrupt Vector (8 bits).
Bits: 16..24
Sourcepub const fn set_vector(&mut self, value: u8)
pub const fn set_vector(&mut self, value: u8)
Interrupt Vector (8 bits).
Bits: 16..24
Sourcepub const fn set_vector_checked(&mut self, value: u8) -> Result<(), ()>
pub const fn set_vector_checked(&mut self, value: u8) -> Result<(), ()>
Interrupt Vector (8 bits).
Bits: 16..24
Sourcepub const fn dst(&self) -> u32
pub const fn dst(&self) -> u32
Destination ID (32 bits).
- xAPIC mode (EIME=0): only bits 47:40 (8-bit APIC ID) are significant.
- x2APIC mode (EIME=1): full 32-bit APIC ID.
Bits: 32..64
Sourcepub const fn with_dst_checked(self, value: u32) -> Result<Self, ()>
pub const fn with_dst_checked(self, value: u32) -> Result<Self, ()>
Destination ID (32 bits).
- xAPIC mode (EIME=0): only bits 47:40 (8-bit APIC ID) are significant.
- x2APIC mode (EIME=1): full 32-bit APIC ID.
Bits: 32..64
Sourcepub const fn with_dst(self, value: u32) -> Self
pub const fn with_dst(self, value: u32) -> Self
Destination ID (32 bits).
- xAPIC mode (EIME=0): only bits 47:40 (8-bit APIC ID) are significant.
- x2APIC mode (EIME=1): full 32-bit APIC ID.
Bits: 32..64
Trait Implementations§
Source§impl FromBytes for IrteLowhere
u64: FromBytes,
impl FromBytes for IrteLowhere
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 IrteLowhere
u64: FromZeros,
impl FromZeros for IrteLowhere
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 IrteLowhere
u64: IntoBytes,
impl IntoBytes for IrteLowhere
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 IrteLowhere
Self: Sized,
impl KnownLayout for IrteLowhere
Self: Sized,
Source§type PointerMetadata = ()
type PointerMetadata = ()
Self. Read more§fn size_for_metadata(meta: Self::PointerMetadata) -> Option<usize>
fn size_for_metadata(meta: Self::PointerMetadata) -> Option<usize>
Self with the given pointer
metadata. Read more